40 lines
1.2 KiB
Python
40 lines
1.2 KiB
Python
import json
|
|
|
|
RESPONSE = u"""
|
|
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title>Clear-Site-Data</title>
|
|
<script src="test_utils.sub.js"></script>
|
|
</head>
|
|
<body>
|
|
<script>
|
|
/**
|
|
* A map between a datatype name and whether it is empty.
|
|
* @property Object.<string, boolean>
|
|
*/
|
|
var report = {};
|
|
|
|
Promise.all(TestUtils.DATATYPES.map(function(datatype) {
|
|
return datatype.isEmpty().then(function(isEmpty) {
|
|
report[datatype.name] = isEmpty;
|
|
});
|
|
})).then(function() {
|
|
window.top.postMessage(report, "*");
|
|
});
|
|
</script>
|
|
</body>
|
|
</html>
|
|
"""
|
|
|
|
# A support server that receives a list of datatypes in the GET query
|
|
# and returns a Clear-Site-Data header with those datatypes. The content
|
|
# of the response is a html site using postMessage to report the status
|
|
# of the datatypes, so that if used in an iframe, it can inform the
|
|
# embedder whether the data deletion succeeded.
|
|
def main(request, response):
|
|
types = [key for key in request.GET.keys()]
|
|
header = b",".join(b"\"" + type + b"\"" for type in types)
|
|
return ([(b"Clear-Site-Data", header),
|
|
(b"Content-Type", b"text/html")],
|
|
RESPONSE)
|