Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(688)

Unified Diff: third_party/WebKit/LayoutTests/http/tests/fetch/chromium/resources/data-saver-worker.php

Issue 2884183002: Add Data-Saver LayoutTest for Worker and SharedWorker (Closed)
Patch Set: Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..72e17f352774aa4b5628b69232040e75fae1e1e8
--- /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}));
falken 2017/05/16 08:45:53 METHODS and REQUESTS?
horo 2017/05/16 10:25:22 Done.
+
+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);
falken 2017/05/16 08:45:53 nit: indentation
horo 2017/05/16 10:25:22 Done.
+ });

Powered by Google App Engine
This is Rietveld 408576698