Bug 1472491: Part 5w - Add PageMetadataChild actor. r=mconley
MozReview-Commit-ID: DpTG8tTJCL4
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: [