Chromium Code Reviews| Index: chrome/test/data/extensions/api_test/service_worker/events/sw.js |
| diff --git a/chrome/test/data/extensions/api_test/service_worker/events/sw.js b/chrome/test/data/extensions/api_test/service_worker/events/sw.js |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..dcf1e502f7d6ab8b42303a5dd49895cc385bce5b |
| --- /dev/null |
| +++ b/chrome/test/data/extensions/api_test/service_worker/events/sw.js |
| @@ -0,0 +1,55 @@ |
| +// Copyright 2017 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +var expectedEventData; |
| +var capturedEventData; |
| + |
| +function expect(data) { |
| + expectedEventData = data; |
| + capturedEventData = []; |
| +} |
| + |
| +var messagePort = null; |
| +function sendMessage(msg) { messagePort.postMessage(msg); } |
| + |
| +function checkExpectations() { |
| + if (capturedEventData.length < expectedEventData.length) { |
| + return; |
| + } |
| + |
| + var passed = JSON.stringify(expectedEventData) == |
| + JSON.stringify(capturedEventData); |
| + if (passed) { |
| + sendMessage('chrome.tabs.onUpdated callback'); |
| + } else { |
| + sendMessage('FAILURE'); |
| + } |
| +} |
| + |
| +self.onmessage = function(e) { |
| + var data = e.data; |
| + messagePort = e.ports[0]; |
| + if (data == 'addOnUpdatedListener') { |
| + addOnUpdatedListener(); |
| + e.ports[0].postMessage('listener-added'); |
| + } |
| +}; |
| + |
| +function addOnUpdatedListener() { |
| + var getURL = chrome.extension.getURL; |
|
Devlin
2017/06/01 04:54:49
nit: probably not worth caching this for the one u
lazyboy
2017/06/01 23:33:29
Done.
|
| + chrome.tabs.onUpdated.addListener(function(tabId, info, tab) { |
| + console.log('onUpdated, tabId: ' + tabId + ', info: ' + |
| + JSON.stringify(info) + ', tab: ' + JSON.stringify(tab)); |
| + capturedEventData.push(info); |
| + checkExpectations(); |
| + }); |
| + |
| + var url = getURL('on_updated.html'); |
| + expect([ |
| + {status: 'loading', 'url': url}, |
| + {status: 'complete'}, |
| + {title: 'foo'}, |
| + {title: 'bar'} |
| + ]); |
| +}; |