Bug 1280404 - Implement chrome.webNavigation.onTabReplaced, r?aswan draft
authorBob Silverberg <bsilverberg@mozilla.com>
Wed, 14 Sep 2016 15:57:21 -0400
changeset 413762 1620888b3f1a546ca42aac6240dddeec051d28b5
parent 413053 f5d043ce6d36a3c461cbd829d4a4a38394b7c436
child 531291 ea5c7eed0fec763b41df01f94e5cf7a3415bd192
push id29499
push userbmo:bob.silverberg@gmail.com
push dateWed, 14 Sep 2016 19:58:14 +0000
reviewersaswan
bugs1280404
milestone51.0a1
Bug 1280404 - Implement chrome.webNavigation.onTabReplaced, r?aswan MozReview-Commit-ID: 6K167oHyqz2
toolkit/components/extensions/ext-webNavigation.js
toolkit/components/extensions/schemas/web_navigation.json
toolkit/components/extensions/test/mochitest/test_ext_webnavigation.html
--- a/toolkit/components/extensions/ext-webNavigation.js
+++ b/toolkit/components/extensions/ext-webNavigation.js
@@ -156,16 +156,17 @@ function convertGetFrameResult(tabId, da
     frameId: ExtensionManagement.getFrameId(data.windowId),
     parentFrameId: ExtensionManagement.getParentFrameId(data.parentWindowId, data.windowId),
   };
 }
 
 extensions.registerSchemaAPI("webNavigation", "addon_parent", context => {
   return {
     webNavigation: {
+      onTabReplaced: ignoreEvent(context, "webNavigation.onTabReplaced"),
       onBeforeNavigate: new WebNavigationEventManager(context, "onBeforeNavigate").api(),
       onCommitted: new WebNavigationEventManager(context, "onCommitted").api(),
       onDOMContentLoaded: new WebNavigationEventManager(context, "onDOMContentLoaded").api(),
       onCompleted: new WebNavigationEventManager(context, "onCompleted").api(),
       onErrorOccurred: new WebNavigationEventManager(context, "onErrorOccurred").api(),
       onReferenceFragmentUpdated: new WebNavigationEventManager(context, "onReferenceFragmentUpdated").api(),
       onHistoryStateUpdated: new WebNavigationEventManager(context, "onHistoryStateUpdated").api(),
       onCreatedNavigationTarget: ignoreEvent(context, "webNavigation.onCreatedNavigationTarget"),
--- a/toolkit/components/extensions/schemas/web_navigation.json
+++ b/toolkit/components/extensions/schemas/web_navigation.json
@@ -335,17 +335,16 @@
             "optional": true,
             "$ref": "EventUrlFilters",
             "description": "Conditions that the URL being navigated to must satisfy. The 'schemes' and 'ports' fields of UrlFilter are ignored for this event."
           }
         ]
       },
       {
         "name": "onTabReplaced",
-        "unsupported": true,
         "type": "function",
         "description": "Fired when the contents of the tab is replaced by a different (usually previously pre-rendered) tab.",
         "parameters": [
           {
             "type": "object",
             "name": "details",
             "properties": {
               "replacedTabId": {"type": "integer", "description": "The ID of the tab that was replaced."},
--- a/toolkit/components/extensions/test/mochitest/test_ext_webnavigation.html
+++ b/toolkit/components/extensions/test/mochitest/test_ext_webnavigation.html
@@ -16,16 +16,17 @@
 
 /* globals sendMouseEvent */
 
 function backgroundScript() {
   const BASE = "http://mochi.test:8888/tests/toolkit/components/extensions/test/mochitest";
   const URL = BASE + "/file_WebNavigation_page1.html";
 
   const EVENTS = [
+    "onTabReplaced",
     "onBeforeNavigate",
     "onCommitted",
     "onDOMContentLoaded",
     "onCompleted",
     "onErrorOccurred",
     "onReferenceFragmentUpdated",
     "onHistoryStateUpdated",
   ];