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

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: incoporated falken's comment and add expected.txt for virtual/off-main-thread-fetch 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..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);
+ });

Powered by Google App Engine
This is Rietveld 408576698