Bug 1287007 - Move extension.getViews to child draft
authorRob Wu <rob@robwu.nl>
Wed, 07 Sep 2016 22:54:07 -0700
changeset 428429 2956bd9354eba1b49e30a7b07ca41c19920b1659
parent 428428 abc42f270dd242499e12f65a15341dc3226a0192
child 428430 e78174dc7c7595e70a514ba50dddb901fe74aa44
push id33305
push userbmo:rob@robwu.nl
push dateSun, 23 Oct 2016 20:56:25 +0000
bugs1287007
milestone52.0a1
Bug 1287007 - Move extension.getViews to child MozReview-Commit-ID: SG2pmulzaP
toolkit/components/extensions/ext-c-extension.js
toolkit/components/extensions/ext-extension.js
--- a/toolkit/components/extensions/ext-c-extension.js
+++ b/toolkit/components/extensions/ext-c-extension.js
@@ -18,8 +18,36 @@ function extensionApiFactory(context) {
         return PrivateBrowsingUtils.isContentWindowPrivate(context.contentWindow);
       },
     },
   };
 }
 
 extensions.registerSchemaAPI("extension", "addon_child", extensionApiFactory);
 extensions.registerSchemaAPI("extension", "content_child", extensionApiFactory);
+extensions.registerSchemaAPI("extension", "addon_child", context => {
+  return {
+    extension: {
+      getViews: function(fetchProperties) {
+        let result = Cu.cloneInto([], context.cloneScope);
+
+        for (let view of context.extension.views) {
+          if (!view.active) {
+            continue;
+          }
+          if (fetchProperties !== null) {
+            if (fetchProperties.type !== null && view.viewType != fetchProperties.type) {
+              continue;
+            }
+
+            if (fetchProperties.windowId !== null && view.windowId != fetchProperties.windowId) {
+              continue;
+            }
+          }
+
+          result.push(view.contentWindow);
+        }
+
+        return result;
+      },
+    },
+  };
+});
--- a/toolkit/components/extensions/ext-extension.js
+++ b/toolkit/components/extensions/ext-extension.js
@@ -1,39 +1,14 @@
 "use strict";
 
 extensions.registerSchemaAPI("extension", "addon_parent", context => {
-  let {extension} = context;
   return {
     extension: {
-      getViews: function(fetchProperties) {
-        let result = Cu.cloneInto([], context.cloneScope);
-
-        for (let view of extension.views) {
-          if (!view.active) {
-            continue;
-          }
-          if (fetchProperties !== null) {
-            if (fetchProperties.type !== null && view.viewType != fetchProperties.type) {
-              continue;
-            }
-
-            if (fetchProperties.windowId !== null && view.windowId != fetchProperties.windowId) {
-              continue;
-            }
-          }
-
-          result.push(view.contentWindow);
-        }
-
-        return result;
-      },
-
       get lastError() {
-        // TODO(robwu): See comment about lastError in ext-runtime.js
         return context.lastError;
       },
 
       isAllowedIncognitoAccess() {
         return Promise.resolve(true);
       },
 
       isAllowedFileSchemeAccess() {