Bug 1472491: Part 5w - Add PageMetadataChild actor. r=mconley draft
authorKris Maglione <maglione.k@gmail.com>
Sun, 29 Jul 2018 23:08:52 -0700
changeset 828458 861d15a74541ce6dcc7542554fca946c18b89116
parent 828457 491517ca82f6f0fbb4354c58d22415d906386b25
child 828459 b5361531f26d4cbc51489d867e8e34a1c97fb6f9
push id118680
push usermaglione.k@gmail.com
push dateFri, 10 Aug 2018 23:04:22 +0000
reviewersmconley
bugs1472491
milestone63.0a1
Bug 1472491: Part 5w - Add PageMetadataChild actor. r=mconley MozReview-Commit-ID: DpTG8tTJCL4
browser/actors/PageMetadataChild.jsm
browser/actors/moz.build
browser/base/content/content.js
browser/components/nsBrowserGlue.js
new file mode 100644
--- /dev/null
+++ b/browser/actors/PageMetadataChild.jsm
@@ -0,0 +1,33 @@
+/* vim: set ts=2 sw=2 sts=2 et tw=80: */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+"use strict";
+
+var EXPORTED_SYMBOLS = ["PageMetadataChild"];
+
+ChromeUtils.import("resource://gre/modules/ActorChild.jsm");
+
+ChromeUtils.defineModuleGetter(this, "ContextMenuChild",
+                               "resource:///modules/ContextMenuChild.jsm");
+ChromeUtils.defineModuleGetter(this, "PageMetadata",
+                               "resource://gre/modules/PageMetadata.jsm");
+
+class PageMetadataChild extends ActorChild {
+  receiveMessage(message) {
+    switch (message.name) {
+      case "PageMetadata:GetPageData": {
+        let target = ContextMenuChild.getTarget(this.mm, message);
+        let result = PageMetadata.getData(this.content.document, target);
+        this.mm.sendAsyncMessage("PageMetadata:PageDataResult", result);
+        break;
+      }
+      case "PageMetadata:GetMicroformats": {
+        let target = ContextMenuChild.getTarget(this.mm, message);
+        let result = PageMetadata.getMicroformats(this.content.document, target);
+        this.mm.sendAsyncMessage("PageMetadata:MicroformatsResult", result);
+        break;
+      }
+    }
+  }
+}
--- a/browser/actors/moz.build
+++ b/browser/actors/moz.build
@@ -23,12 +23,13 @@ FINAL_TARGET_FILES.actors += [
     'ClickHandlerChild.jsm',
     'ContentSearchChild.jsm',
     'ContextMenuChild.jsm',
     'DOMFullscreenChild.jsm',
     'LightWeightThemeInstallChild.jsm',
     'NetErrorChild.jsm',
     'OfflineAppsChild.jsm',
     'PageInfoChild.jsm',
+    'PageMetadataChild.jsm',
     'PageStyleChild.jsm',
     'PluginChild.jsm',
     'URIFixupChild.jsm',
 ]
--- a/browser/base/content/content.js
+++ b/browser/base/content/content.js
@@ -17,17 +17,16 @@ var global = this;
 
 XPCOMUtils.defineLazyModuleGetters(this, {
   ContentLinkHandler: "resource:///modules/ContentLinkHandler.jsm",
   ContentMetaHandler: "resource:///modules/ContentMetaHandler.jsm",
   ContentWebRTC: "resource:///modules/ContentWebRTC.jsm",
   LoginFormFactory: "resource://gre/modules/LoginManagerContent.jsm",
   InsecurePasswordUtils: "resource://gre/modules/InsecurePasswordUtils.jsm",
   FormSubmitObserver: "resource:///modules/FormSubmitObserver.jsm",
-  PageMetadata: "resource://gre/modules/PageMetadata.jsm",
   ContextMenuChild: "resource:///modules/ContextMenuChild.jsm",
 });
 
 XPCOMUtils.defineLazyGetter(this, "LoginManagerContent", () => {
   let tmp = {};
   ChromeUtils.import("resource://gre/modules/LoginManagerContent.jsm", tmp);
   tmp.LoginManagerContent.setupEventListeners(global);
   return tmp.LoginManagerContent;
@@ -76,33 +75,8 @@ addEventListener("DOMWindowFocus", funct
 // it is actually needed.
 var ContentWebRTCShim = message => ContentWebRTC.receiveMessage(message);
 
 addMessageListener("rtcpeer:Allow", ContentWebRTCShim);
 addMessageListener("rtcpeer:Deny", ContentWebRTCShim);
 addMessageListener("webrtc:Allow", ContentWebRTCShim);
 addMessageListener("webrtc:Deny", ContentWebRTCShim);
 addMessageListener("webrtc:StopSharing", ContentWebRTCShim);
-
-var PageMetadataMessenger = {
-  init() {
-    addMessageListener("PageMetadata:GetPageData", this);
-    addMessageListener("PageMetadata:GetMicroformats", this);
-    this.init = null;
-  },
-  receiveMessage(message) {
-    switch (message.name) {
-      case "PageMetadata:GetPageData": {
-        let target = ContextMenuChild.getTarget(global, message);
-        let result = PageMetadata.getData(content.document, target);
-        sendAsyncMessage("PageMetadata:PageDataResult", result);
-        break;
-      }
-      case "PageMetadata:GetMicroformats": {
-        let target = ContextMenuChild.getTarget(global, message);
-        let result = PageMetadata.getMicroformats(content.document, target);
-        sendAsyncMessage("PageMetadata:MicroformatsResult", result);
-        break;
-      }
-    }
-  }
-};
-PageMetadataMessenger.init();
--- a/browser/components/nsBrowserGlue.js
+++ b/browser/components/nsBrowserGlue.js
@@ -164,16 +164,26 @@ let ACTORS = {
 
   PageInfo: {
     child: {
       module: "resource:///actors/PageInfoChild.jsm",
       messages: ["PageInfo:getData"],
     },
   },
 
+  PageMetadata: {
+    child: {
+      module: "resource:///actors/PageMetadataChild.jsm",
+      messages: [
+        "PageMetadata:GetPageData",
+        "PageMetadata:GetMicroformats",
+      ],
+    },
+  },
+
   PageStyle: {
     child: {
       module: "resource:///actors/PageStyleChild.jsm",
       group: "browsers",
       events: {
         "pageshow": {},
       },
       messages: [