Index: third_party/WebKit/LayoutTests/http/tests/fetch/chromium/resources/data-saver-worker.php |
diff --git a/third_party/WebKit/LayoutTests/http/tests/fetch/chromium/resources/data-saver-worker.php b/third_party/WebKit/LayoutTests/http/tests/fetch/chromium/resources/data-saver-worker.php |
new file mode 100644 |
index 0000000000000000000000000000000000000000..3a8c9d2191011984021c43a9704c418a8b9f6714 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/http/tests/fetch/chromium/resources/data-saver-worker.php |
@@ -0,0 +1,33 @@ |
+<?php |
+header('Content-Type: text/javascript'); |
+echo 'var result = {};' . "\n"; |
+echo 'result["worker_script_header"] = '; |
+if (isset($_SERVER['HTTP_SAVE_DATA'])) { |
+ echo '"Save-Data: ' . $_SERVER['HTTP_SAVE_DATA'] . '";' . "\n"; |
+} else { |
+ echo '"No Save-Data";' . "\n"; |
+} |
+?> |
+ |
+var CHECK_PATH = './check-save-data-header.php'; |
+var METHODS = ['GET', 'POST', 'PUT']; |
+var REQUESTS = |
+ METHODS.map(method => new Request(CHECK_PATH, {method: method})); |
+ |
+if (!self.postMessage) { |
+ // For Shared Worker |
+ var postMessagePromise = |
+ new Promise(resolve => { self.postMessage = resolve; }); |
+ self.addEventListener('connect', event => { |
+ postMessagePromise.then(data => event.ports[0].postMessage(data)); |
+ }); |
+} |
+ |
+Promise.all(REQUESTS.map(request => fetch(request))) |
+ .then(responses => Promise.all(responses.map(response => response.text()))) |
+ .then(texts => { |
+ for (var i = 0; i < METHODS.length; ++i) { |
+ result[METHODS[i]] = texts[i]; |
+ } |
+ self.postMessage(result); |
+ }); |