Index: chrome/test/data/extensions/api_test/events_are_unregistered/page1.js |
diff --git a/chrome/test/data/extensions/api_test/events_are_unregistered/page1.js b/chrome/test/data/extensions/api_test/events_are_unregistered/page1.js |
index c5ea62ebdcd2a7078eac8ab55303fb3256ea695f..0572535a5944b544b3ca5630b52de7872d8f3a3f 100644 |
--- a/chrome/test/data/extensions/api_test/events_are_unregistered/page1.js |
+++ b/chrome/test/data/extensions/api_test/events_are_unregistered/page1.js |
@@ -2,23 +2,68 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
+'use strict'; |
+ |
// Register for events in 4 configurations, then navigate to page2.html, which |
// will notify success and succeed the test on the C++ side. The C++ code |
// asserts that the events have been unregistered. |
+// |
+// Unfiltered events. |
+// |
+ |
// A single listener. |
chrome.browserAction.onClicked.addListener(function() {}); |
// Multiple listeners for the same event. |
chrome.runtime.onStartup.addListener(function() {}); |
chrome.runtime.onStartup.addListener(function() {}); |
// A single listener, which previously had multiple listeners. |
-chrome.runtime.onSuspend.addListener(function() {}); |
-chrome.runtime.onSuspend.addListener(function() {}); |
-chrome.runtime.onSuspend.removeListener(function() {}); |
+{ |
+ let singleListener = function() {}; |
+ chrome.runtime.onSuspend.addListener(singleListener); |
+ chrome.runtime.onSuspend.addListener(function() {}); |
+ chrome.runtime.onSuspend.removeListener(singleListener); |
+} |
// No listeners, which previously had listeners (all were removed). |
-chrome.runtime.onInstalled.addListener(function() {}); |
-chrome.runtime.onInstalled.addListener(function() {}); |
-chrome.runtime.onInstalled.removeListener(function() {}); |
-chrome.runtime.onInstalled.removeListener(function() {}); |
+{ |
+ let listener1 = function() {}; |
+ let listener2 = function() {}; |
+ chrome.runtime.onInstalled.addListener(listener1); |
+ chrome.runtime.onInstalled.addListener(listener2); |
+ chrome.runtime.onInstalled.removeListener(listener1); |
+ chrome.runtime.onInstalled.removeListener(listener2); |
+} |
+ |
+// |
+// Filtered events. |
+// |
+ |
+function filterPort(portNumber) { |
+ return {url: [{ports: [portNumber]}]}; |
+} |
+ |
+// A single listener. |
+chrome.webNavigation.onBeforeNavigate.addListener(function() {}); |
+// Multiple, different listeners. |
+chrome.webNavigation.onCommitted.addListener(function() {}); |
+chrome.webNavigation.onCommitted.addListener(function() {}); |
+// Different listeners with the same filter. |
+chrome.webNavigation.onDOMContentLoaded.addListener( |
+ function() {}, filterPort(80)); |
+chrome.webNavigation.onDOMContentLoaded.addListener( |
+ function() {}, filterPort(80)); |
+// Different listeners with different filters, same event added twice. |
+{ |
+ let singleListener = function() {}; |
+ chrome.webNavigation.onCompleted.addListener( |
+ function() {}, filterPort(80)); |
+ chrome.webNavigation.onCompleted.addListener( |
+ function() {}, filterPort(81)); |
+ chrome.webNavigation.onCompleted.addListener( |
+ function() {}, filterPort(81)); |
+ chrome.webNavigation.onCompleted.addListener( |
+ singleListener, filterPort(82)); |
+ chrome.webNavigation.onCompleted.removeListener(singleListener); |
+} |
location.assign('page2.html'); |