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

Side by Side Diff: third_party/WebKit/LayoutTests/http/tests/notifications/instrumentation-service-worker.js

Issue 1935703003: Layout Tests: Remove stringifyDOMObject() helper (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@test-idlattr
Patch Set: Update expectation for test w/ line # change Created 4 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 unified diff | Download patch
« no previous file with comments | « no previous file | third_party/WebKit/LayoutTests/http/tests/resources/testharness-helpers.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 importScripts('/resources/testharness-helpers.js'); 1 // Deep-copies the attributes of |notification|. Note that the
2 2 // robustness of this function (and also |assert_object_equals| in
3 // For copying Notification.data. Currently a deep copy algorithm is used. Note
4 // that the robustness of this function (and also |assert_object_equals| in
5 // testharness.js) affects the types of possible testing can be done. 3 // testharness.js) affects the types of possible testing can be done.
6 // TODO(peter): change this to a structured clone algorithm. 4 // TODO(peter): change this to a structured clone algorithm.
7 function cloneObject(src) { 5 function cloneNotification(notification) {
8 if (typeof src != 'object' || src === null) 6 function deepCopy(src) {
9 return src; 7 if (typeof src !== 'object' || src === null)
10 var dst = Array.isArray(src) ? [] : {}; 8 return src;
11 for (var property in src) { 9 var dst = Array.isArray(src) ? [] : {};
12 if (src.hasOwnProperty(property)) 10 for (var property in src) {
13 dst[property] = cloneObject(src[property]); 11 if (typeof src[property] === 'function')
12 continue;
13 dst[property] = deepCopy(src[property]);
14 }
15 return dst;
14 } 16 }
15 return dst;
16 }
17 17
18 // Copies the serializable attributes of |notification|. 18 return deepCopy(notification);
19 function cloneNotification(notification) {
20 var copiedNotification = JSON.parse(stringifyDOMObject(notification));
21 copiedNotification.data = cloneObject(notification.data);
22 return copiedNotification;
23 } 19 }
24 20
25 // Allows a document to exercise the Notifications API within a service worker b y sending commands. 21 // Allows a document to exercise the Notifications API within a service worker b y sending commands.
26 var messagePort = null; 22 var messagePort = null;
27 23
28 // All urls of requests that have been routed through the fetch event handler. 24 // All urls of requests that have been routed through the fetch event handler.
29 var fetchHistory = []; 25 var fetchHistory = [];
30 26
31 addEventListener('install', event => { 27 addEventListener('install', event => {
32 event.waitUntil(skipWaiting()); 28 event.waitUntil(skipWaiting());
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
122 addEventListener('notificationclose', event => { 118 addEventListener('notificationclose', event => {
123 var notificationCopy = cloneNotification(event.notification); 119 var notificationCopy = cloneNotification(event.notification);
124 messagePort.postMessage({ command: 'close', 120 messagePort.postMessage({ command: 'close',
125 notification: notificationCopy }); 121 notification: notificationCopy });
126 }); 122 });
127 123
128 addEventListener('fetch', event => { 124 addEventListener('fetch', event => {
129 fetchHistory.push(event.request.url); 125 fetchHistory.push(event.request.url);
130 event.respondWith(fetch(event.request)); 126 event.respondWith(fetch(event.request));
131 }); 127 });
OLDNEW
« no previous file with comments | « no previous file | third_party/WebKit/LayoutTests/http/tests/resources/testharness-helpers.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698