Commit bb97eb46 authored by Kris Maglione's avatar Kris Maglione
Browse files

Bug 1524688: Part 2 - Convert BrowserGlue and friends to static registration. r=mconley

--HG--
rename : browser/components/nsBrowserContentHandler.js => browser/components/BrowserContentHandler.jsm
rename : browser/components/nsBrowserGlue.js => browser/components/BrowserGlue.jsm
rename : browser/components/protocolhandler/WebProtocolHandlerRegistrar.js => browser/components/protocolhandler/WebProtocolHandlerRegistrar.jsm
extra : source : 9201a7ea3c543310df1612b57ab72b883c94e07e
parent 824f4907
...@@ -1738,7 +1738,7 @@ var gBrowserInit = { ...@@ -1738,7 +1738,7 @@ var gBrowserInit = {
* The functions scheduled here will fire from idle callbacks * The functions scheduled here will fire from idle callbacks
* once every window has finished being restored by session * once every window has finished being restored by session
* restore, and after the equivalent only-once tasks * restore, and after the equivalent only-once tasks
* have run (from _scheduleStartupIdleTasks in nsBrowserGlue.js). * have run (from _scheduleStartupIdleTasks in BrowserGlue.jsm).
*/ */
_schedulePerWindowIdleTasks() { _schedulePerWindowIdleTasks() {
// Bail out if the window has been closed in the meantime. // Bail out if the window has been closed in the meantime.
......
...@@ -24,16 +24,16 @@ const startupPhases = { ...@@ -24,16 +24,16 @@ const startupPhases = {
// Anything loaded during app-startup must have a compelling reason // Anything loaded during app-startup must have a compelling reason
// to run before we have even selected the user profile. // to run before we have even selected the user profile.
// Consider loading your code after first paint instead, // Consider loading your code after first paint instead,
// eg. from nsBrowserGlue.js' _onFirstWindowLoaded method). // eg. from BrowserGlue.jsm' _onFirstWindowLoaded method).
"before profile selection": {whitelist: { "before profile selection": {whitelist: {
components: new Set([ components: new Set([
"nsBrowserGlue.js",
"MainProcessSingleton.js", "MainProcessSingleton.js",
// Bugs to fix: The following components shouldn't be initialized that early. // Bugs to fix: The following components shouldn't be initialized that early.
"PushComponents.js", // bug 1369436 "PushComponents.js", // bug 1369436
]), ]),
modules: new Set([ modules: new Set([
"resource:///modules/BrowserGlue.jsm",
"resource://gre/modules/AppConstants.jsm", "resource://gre/modules/AppConstants.jsm",
"resource://gre/modules/ActorManagerParent.jsm", "resource://gre/modules/ActorManagerParent.jsm",
"resource://gre/modules/CustomElementsListener.jsm", "resource://gre/modules/CustomElementsListener.jsm",
......
# nsBrowserContentHandler.js
component {5d0ce354-df01-421a-83fb-7ead0990c24e} nsBrowserContentHandler.js application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
contract @mozilla.org/browser/clh;1 {5d0ce354-df01-421a-83fb-7ead0990c24e} application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
component {47cd0651-b1be-4a0f-b5c4-10e5a573ef71} nsBrowserContentHandler.js application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
contract @mozilla.org/browser/final-clh;1 {47cd0651-b1be-4a0f-b5c4-10e5a573ef71} application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
contract @mozilla.org/uriloader/content-handler;1?type=text/html {5d0ce354-df01-421a-83fb-7ead0990c24e} application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
contract @mozilla.org/uriloader/content-handler;1?type=application/vnd.mozilla.xul+xml {5d0ce354-df01-421a-83fb-7ead0990c24e} application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
contract @mozilla.org/uriloader/content-handler;1?type=image/svg+xml {5d0ce354-df01-421a-83fb-7ead0990c24e} application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
contract @mozilla.org/uriloader/content-handler;1?type=text/rdf {5d0ce354-df01-421a-83fb-7ead0990c24e} application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
contract @mozilla.org/uriloader/content-handler;1?type=text/xml {5d0ce354-df01-421a-83fb-7ead0990c24e} application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
contract @mozilla.org/uriloader/content-handler;1?type=application/xhtml+xml {5d0ce354-df01-421a-83fb-7ead0990c24e} application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
contract @mozilla.org/uriloader/content-handler;1?type=text/css {5d0ce354-df01-421a-83fb-7ead0990c24e} application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
contract @mozilla.org/uriloader/content-handler;1?type=text/plain {5d0ce354-df01-421a-83fb-7ead0990c24e} application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
contract @mozilla.org/uriloader/content-handler;1?type=image/gif {5d0ce354-df01-421a-83fb-7ead0990c24e} application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
contract @mozilla.org/uriloader/content-handler;1?type=image/jpeg {5d0ce354-df01-421a-83fb-7ead0990c24e} application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
contract @mozilla.org/uriloader/content-handler;1?type=image/jpg {5d0ce354-df01-421a-83fb-7ead0990c24e} application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
contract @mozilla.org/uriloader/content-handler;1?type=image/png {5d0ce354-df01-421a-83fb-7ead0990c24e} application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
contract @mozilla.org/uriloader/content-handler;1?type=image/bmp {5d0ce354-df01-421a-83fb-7ead0990c24e} application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
contract @mozilla.org/uriloader/content-handler;1?type=image/x-icon {5d0ce354-df01-421a-83fb-7ead0990c24e} application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
contract @mozilla.org/uriloader/content-handler;1?type=image/vnd.microsoft.icon {5d0ce354-df01-421a-83fb-7ead0990c24e} application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
contract @mozilla.org/uriloader/content-handler;1?type=application/http-index-format {5d0ce354-df01-421a-83fb-7ead0990c24e} application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
category command-line-handler m-browser @mozilla.org/browser/clh;1 application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
category command-line-handler x-default @mozilla.org/browser/final-clh;1 application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
category command-line-validator b-browser @mozilla.org/browser/clh;1 application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
# nsBrowserGlue.js # nsBrowserGlue.js
# This component must restrict its registration for the app-startup category # This component must restrict its registration for the app-startup category
...@@ -32,12 +7,4 @@ category command-line-validator b-browser @mozilla.org/browser/clh;1 application ...@@ -32,12 +7,4 @@ category command-line-validator b-browser @mozilla.org/browser/clh;1 application
# browser: {ec8030f7-c20a-464f-9b0e-13a3a9e97384} # browser: {ec8030f7-c20a-464f-9b0e-13a3a9e97384}
# mobile/android: {aa3c5121-dab2-40e2-81ca-7ea25febc110} # mobile/android: {aa3c5121-dab2-40e2-81ca-7ea25febc110}
component {eab9012e-5f74-4cbc-b2b5-a590235513cc} nsBrowserGlue.js
contract @mozilla.org/browser/browserglue;1 {eab9012e-5f74-4cbc-b2b5-a590235513cc}
category app-startup nsBrowserGlue service,@mozilla.org/browser/browserglue;1 application={ec8030f7-c20a-464f-9b0e-13a3a9e97384} application={aa3c5121-dab2-40e2-81ca-7ea25febc110} category app-startup nsBrowserGlue service,@mozilla.org/browser/browserglue;1 application={ec8030f7-c20a-464f-9b0e-13a3a9e97384} application={aa3c5121-dab2-40e2-81ca-7ea25febc110}
component {d8903bf6-68d5-4e97-bcd1-e4d3012f721a} nsBrowserGlue.js
contract @mozilla.org/content-permission/prompt;1 {d8903bf6-68d5-4e97-bcd1-e4d3012f721a}
# RegisterProtocolHandler support
component {efbd7b87-9b15-4684-abf0-dc2679daadb1} WebProtocolHandlerRegistrar.js process=main
contract @mozilla.org/embeddor.implemented/web-protocol-handler-registrar;1 {efbd7b87-9b15-4684-abf0-dc2679daadb1} process=main
...@@ -2,6 +2,8 @@ ...@@ -2,6 +2,8 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this * 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/. */ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
var EXPORTED_SYMBOLS = ["nsBrowserContentHandler", "nsDefaultCommandLineHandler"];
const {XPCOMUtils} = ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm"); const {XPCOMUtils} = ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
const {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm"); const {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
const {AppConstants} = ChromeUtils.import("resource://gre/modules/AppConstants.jsm"); const {AppConstants} = ChromeUtils.import("resource://gre/modules/AppConstants.jsm");
...@@ -178,7 +180,7 @@ function getPostUpdateOverridePage(defaultOverridePage) { ...@@ -178,7 +180,7 @@ function getPostUpdateOverridePage(defaultOverridePage) {
/** /**
* Open a browser window. If this is the initial launch, this function will * Open a browser window. If this is the initial launch, this function will
* attempt to use the navigator:blank window opened by nsBrowserGlue.js during * attempt to use the navigator:blank window opened by BrowserGlue.jsm during
* early startup. * early startup.
* *
* @param cmdLine * @param cmdLine
...@@ -325,18 +327,12 @@ function doSearch(searchTerm, cmdLine) { ...@@ -325,18 +327,12 @@ function doSearch(searchTerm, cmdLine) {
} }
function nsBrowserContentHandler() { function nsBrowserContentHandler() {
if (!gBrowserContentHandler) {
gBrowserContentHandler = this;
}
return gBrowserContentHandler;
} }
nsBrowserContentHandler.prototype = { nsBrowserContentHandler.prototype = {
classID: Components.ID("{5d0ce354-df01-421a-83fb-7ead0990c24e}"),
_xpcom_factory: {
createInstance: function bch_factory_ci(outer, iid) {
if (outer)
throw Cr.NS_ERROR_NO_AGGREGATION;
return gBrowserContentHandler.QueryInterface(iid);
},
},
/* nsISupports */ /* nsISupports */
QueryInterface: ChromeUtils.generateQI([Ci.nsICommandLineHandler, QueryInterface: ChromeUtils.generateQI([Ci.nsICommandLineHandler,
Ci.nsIBrowserHandler, Ci.nsIBrowserHandler,
...@@ -733,8 +729,6 @@ function nsDefaultCommandLineHandler() { ...@@ -733,8 +729,6 @@ function nsDefaultCommandLineHandler() {
} }
nsDefaultCommandLineHandler.prototype = { nsDefaultCommandLineHandler.prototype = {
classID: Components.ID("{47cd0651-b1be-4a0f-b5c4-10e5a573ef71}"),
/* nsISupports */ /* nsISupports */
QueryInterface: ChromeUtils.generateQI(["nsICommandLineHandler"]), QueryInterface: ChromeUtils.generateQI(["nsICommandLineHandler"]),
...@@ -836,6 +830,3 @@ nsDefaultCommandLineHandler.prototype = { ...@@ -836,6 +830,3 @@ nsDefaultCommandLineHandler.prototype = {
helpInfo: "", helpInfo: "",
}; };
var components = [nsBrowserContentHandler, nsDefaultCommandLineHandler];
this.NSGetFactory = XPCOMUtils.generateNSGetFactory(components);
...@@ -2,6 +2,8 @@ ...@@ -2,6 +2,8 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this * 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/. */ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
var EXPORTED_SYMBOLS = ["BrowserGlue", "ContentPermissionPrompt"];
const XULNS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; const XULNS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
const {XPCOMUtils} = ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm"); const {XPCOMUtils} = ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
...@@ -365,10 +367,7 @@ let ACTORS = { ...@@ -365,10 +367,7 @@ let ACTORS = {
TelemetryTimestamps.add("blankWindowShown"); TelemetryTimestamps.add("blankWindowShown");
})(); })();
XPCOMUtils.defineLazyGlobalGetters(this, ["fetch"]);
XPCOMUtils.defineLazyServiceGetters(this, { XPCOMUtils.defineLazyServiceGetters(this, {
WindowsUIUtils: ["@mozilla.org/windows-ui-utils;1", "nsIWindowsUIUtils"],
aboutNewTabService: ["@mozilla.org/browser/aboutnewtab-service;1", "nsIAboutNewTabService"], aboutNewTabService: ["@mozilla.org/browser/aboutnewtab-service;1", "nsIAboutNewTabService"],
}); });
XPCOMUtils.defineLazyGetter(this, "WeaveService", () => XPCOMUtils.defineLazyGetter(this, "WeaveService", () =>
...@@ -381,7 +380,6 @@ XPCOMUtils.defineLazyModuleGetters(this, { ...@@ -381,7 +380,6 @@ XPCOMUtils.defineLazyModuleGetters(this, {
AboutPrivateBrowsingHandler: "resource:///modules/aboutpages/AboutPrivateBrowsingHandler.jsm", AboutPrivateBrowsingHandler: "resource:///modules/aboutpages/AboutPrivateBrowsingHandler.jsm",
AddonManager: "resource://gre/modules/AddonManager.jsm", AddonManager: "resource://gre/modules/AddonManager.jsm",
AppMenuNotifications: "resource://gre/modules/AppMenuNotifications.jsm", AppMenuNotifications: "resource://gre/modules/AppMenuNotifications.jsm",
AsyncPrefs: "resource://gre/modules/AsyncPrefs.jsm",
AsyncShutdown: "resource://gre/modules/AsyncShutdown.jsm", AsyncShutdown: "resource://gre/modules/AsyncShutdown.jsm",
AutoCompletePopup: "resource://gre/modules/AutoCompletePopup.jsm", AutoCompletePopup: "resource://gre/modules/AutoCompletePopup.jsm",
Blocklist: "resource://gre/modules/Blocklist.jsm", Blocklist: "resource://gre/modules/Blocklist.jsm",
...@@ -389,14 +387,11 @@ XPCOMUtils.defineLazyModuleGetters(this, { ...@@ -389,14 +387,11 @@ XPCOMUtils.defineLazyModuleGetters(this, {
BookmarkJSONUtils: "resource://gre/modules/BookmarkJSONUtils.jsm", BookmarkJSONUtils: "resource://gre/modules/BookmarkJSONUtils.jsm",
BrowserUsageTelemetry: "resource:///modules/BrowserUsageTelemetry.jsm", BrowserUsageTelemetry: "resource:///modules/BrowserUsageTelemetry.jsm",
BrowserWindowTracker: "resource:///modules/BrowserWindowTracker.jsm", BrowserWindowTracker: "resource:///modules/BrowserWindowTracker.jsm",
ContentClick: "resource:///modules/ContentClick.jsm",
ContextualIdentityService: "resource://gre/modules/ContextualIdentityService.jsm", ContextualIdentityService: "resource://gre/modules/ContextualIdentityService.jsm",
CustomizableUI: "resource:///modules/CustomizableUI.jsm",
DateTimePickerParent: "resource://gre/modules/DateTimePickerParent.jsm", DateTimePickerParent: "resource://gre/modules/DateTimePickerParent.jsm",
Discovery: "resource:///modules/Discovery.jsm", Discovery: "resource:///modules/Discovery.jsm",
ExtensionsUI: "resource:///modules/ExtensionsUI.jsm", ExtensionsUI: "resource:///modules/ExtensionsUI.jsm",
FileSource: "resource://gre/modules/L10nRegistry.jsm", FileSource: "resource://gre/modules/L10nRegistry.jsm",
FormValidationHandler: "resource:///modules/FormValidationHandler.jsm",
FxAccounts: "resource://gre/modules/FxAccounts.jsm", FxAccounts: "resource://gre/modules/FxAccounts.jsm",
HomePage: "resource:///modules/HomePage.jsm", HomePage: "resource:///modules/HomePage.jsm",
HybridContentTelemetry: "resource://gre/modules/HybridContentTelemetry.jsm", HybridContentTelemetry: "resource://gre/modules/HybridContentTelemetry.jsm",
...@@ -405,8 +400,6 @@ XPCOMUtils.defineLazyModuleGetters(this, { ...@@ -405,8 +400,6 @@ XPCOMUtils.defineLazyModuleGetters(this, {
LanguagePrompt: "resource://gre/modules/LanguagePrompt.jsm", LanguagePrompt: "resource://gre/modules/LanguagePrompt.jsm",
LightweightThemeManager: "resource://gre/modules/LightweightThemeManager.jsm", LightweightThemeManager: "resource://gre/modules/LightweightThemeManager.jsm",
LiveBookmarkMigrator: "resource:///modules/LiveBookmarkMigrator.jsm", LiveBookmarkMigrator: "resource:///modules/LiveBookmarkMigrator.jsm",
LoginHelper: "resource://gre/modules/LoginHelper.jsm",
LoginManagerParent: "resource://gre/modules/LoginManagerParent.jsm",
NewTabUtils: "resource://gre/modules/NewTabUtils.jsm", NewTabUtils: "resource://gre/modules/NewTabUtils.jsm",
Normandy: "resource://normandy/Normandy.jsm", Normandy: "resource://normandy/Normandy.jsm",
ObjectUtils: "resource://gre/modules/ObjectUtils.jsm", ObjectUtils: "resource://gre/modules/ObjectUtils.jsm",
...@@ -415,15 +408,12 @@ XPCOMUtils.defineLazyModuleGetters(this, { ...@@ -415,15 +408,12 @@ XPCOMUtils.defineLazyModuleGetters(this, {
PageThumbs: "resource://gre/modules/PageThumbs.jsm", PageThumbs: "resource://gre/modules/PageThumbs.jsm",
PdfJs: "resource://pdf.js/PdfJs.jsm", PdfJs: "resource://pdf.js/PdfJs.jsm",
PermissionUI: "resource:///modules/PermissionUI.jsm", PermissionUI: "resource:///modules/PermissionUI.jsm",
PictureInPicture: "resource://gre/modules/PictureInPicture.jsm",
PingCentre: "resource:///modules/PingCentre.jsm", PingCentre: "resource:///modules/PingCentre.jsm",
PlacesBackups: "resource://gre/modules/PlacesBackups.jsm", PlacesBackups: "resource://gre/modules/PlacesBackups.jsm",
PlacesUtils: "resource://gre/modules/PlacesUtils.jsm", PlacesUtils: "resource://gre/modules/PlacesUtils.jsm",
PluralForm: "resource://gre/modules/PluralForm.jsm", PluralForm: "resource://gre/modules/PluralForm.jsm",
PrivateBrowsingUtils: "resource://gre/modules/PrivateBrowsingUtils.jsm", PrivateBrowsingUtils: "resource://gre/modules/PrivateBrowsingUtils.jsm",
ProcessHangMonitor: "resource:///modules/ProcessHangMonitor.jsm", ProcessHangMonitor: "resource:///modules/ProcessHangMonitor.jsm",
ReaderParent: "resource:///modules/ReaderParent.jsm",
RemotePrompt: "resource:///modules/RemotePrompt.jsm",
RemoteSettings: "resource://services-settings/remote-settings.js", RemoteSettings: "resource://services-settings/remote-settings.js",
SafeBrowsing: "resource://gre/modules/SafeBrowsing.jsm", SafeBrowsing: "resource://gre/modules/SafeBrowsing.jsm",
Sanitizer: "resource:///modules/Sanitizer.jsm", Sanitizer: "resource:///modules/Sanitizer.jsm",
...@@ -439,6 +429,17 @@ XPCOMUtils.defineLazyModuleGetters(this, { ...@@ -439,6 +429,17 @@ XPCOMUtils.defineLazyModuleGetters(this, {
WindowsRegistry: "resource://gre/modules/WindowsRegistry.jsm", WindowsRegistry: "resource://gre/modules/WindowsRegistry.jsm",
}); });
// eslint-disable-next-line no-unused-vars
XPCOMUtils.defineLazyModuleGetters(this, {
AsyncPrefs: "resource://gre/modules/AsyncPrefs.jsm",
ContentClick: "resource:///modules/ContentClick.jsm",
FormValidationHandler: "resource:///modules/FormValidationHandler.jsm",
LoginManagerParent: "resource://gre/modules/LoginManagerParent.jsm",
PictureInPicture: "resource://gre/modules/PictureInPicture.jsm",
ReaderParent: "resource:///modules/ReaderParent.jsm",
RemotePrompt: "resource:///modules/RemotePrompt.jsm",
});
/* global ContentPrefServiceParent:false, ContentSearch:false, /* global ContentPrefServiceParent:false, ContentSearch:false,
UpdateListener:false, webrtcUI:false */ UpdateListener:false, webrtcUI:false */
...@@ -466,7 +467,6 @@ if (AppConstants.MOZ_CRASHREPORTER) { ...@@ -466,7 +467,6 @@ if (AppConstants.MOZ_CRASHREPORTER) {
XPCOMUtils.defineLazyModuleGetters(this, { XPCOMUtils.defineLazyModuleGetters(this, {
PluginCrashReporter: "resource:///modules/ContentCrashHandlers.jsm", PluginCrashReporter: "resource:///modules/ContentCrashHandlers.jsm",
UnsubmittedCrashHandler: "resource:///modules/ContentCrashHandlers.jsm", UnsubmittedCrashHandler: "resource:///modules/ContentCrashHandlers.jsm",
CrashSubmit: "resource://gre/modules/CrashSubmit.jsm",
}); });
} }
...@@ -2985,13 +2985,8 @@ BrowserGlue.prototype = { ...@@ -2985,13 +2985,8 @@ BrowserGlue.prototype = {
} }
}, },
// for XPCOM
classID: Components.ID("{eab9012e-5f74-4cbc-b2b5-a590235513cc}"),
QueryInterface: ChromeUtils.generateQI([Ci.nsIObserver, QueryInterface: ChromeUtils.generateQI([Ci.nsIObserver,
Ci.nsISupportsWeakReference]), Ci.nsISupportsWeakReference]),
_xpcom_factory: XPCOMUtils.generateSingletonFactory(BrowserGlue),
}; };
var ContentBlockingCategoriesPrefs = { var ContentBlockingCategoriesPrefs = {
...@@ -3489,9 +3484,6 @@ var JawsScreenReaderVersionCheck = { ...@@ -3489,9 +3484,6 @@ var JawsScreenReaderVersionCheck = {
}, },
}; };
var components = [BrowserGlue, ContentPermissionPrompt];
this.NSGetFactory = XPCOMUtils.generateNSGetFactory(components);
// Listen for UITour messages. // Listen for UITour messages.
// Do it here instead of the UITour module itself so that the UITour module is lazy loaded // Do it here instead of the UITour module itself so that the UITour module is lazy loaded
// when the first message is received. // when the first message is received.
......
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# vim: set filetype=python:
# 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/.
Classes = [
{
'cid': '{5d0ce354-df01-421a-83fb-7ead0990c24e}',
'contract_ids': [
'@mozilla.org/browser/clh;1',
'@mozilla.org/uriloader/content-handler;1?type=application/http-index-format',
'@mozilla.org/uriloader/content-handler;1?type=application/vnd.mozilla.xul+xml',
'@mozilla.org/uriloader/content-handler;1?type=application/xhtml+xml',
'@mozilla.org/uriloader/content-handler;1?type=image/bmp',
'@mozilla.org/uriloader/content-handler;1?type=image/gif',
'@mozilla.org/uriloader/content-handler;1?type=image/jpeg',
'@mozilla.org/uriloader/content-handler;1?type=image/jpg',
'@mozilla.org/uriloader/content-handler;1?type=image/png',
'@mozilla.org/uriloader/content-handler;1?type=image/svg+xml',
'@mozilla.org/uriloader/content-handler;1?type=image/vnd.microsoft.icon',
'@mozilla.org/uriloader/content-handler;1?type=image/x-icon',
'@mozilla.org/uriloader/content-handler;1?type=text/css',
'@mozilla.org/uriloader/content-handler;1?type=text/html',
'@mozilla.org/uriloader/content-handler;1?type=text/plain',
'@mozilla.org/uriloader/content-handler;1?type=text/rdf',
'@mozilla.org/uriloader/content-handler;1?type=text/xml',
],
'jsm': 'resource:///modules/BrowserContentHandler.jsm',
'constructor': 'nsBrowserContentHandler',
'categories': {
'command-line-handler': 'm-browser',
'command-line-validator': 'b-browser',
},
},
{
'cid': '{47cd0651-b1be-4a0f-b5c4-10e5a573ef71}',
'contract_ids': ['@mozilla.org/browser/final-clh;1'],
'jsm': 'resource:///modules/BrowserContentHandler.jsm',
'constructor': 'nsDefaultCommandLineHandler',
'categories': {'command-line-handler': 'x-default'},
},
{
'cid': '{eab9012e-5f74-4cbc-b2b5-a590235513cc}',
'contract_ids': ['@mozilla.org/browser/browserglue;1'],
'jsm': 'resource:///modules/BrowserGlue.jsm',
'constructor': 'BrowserGlue',
},
{
'cid': '{d8903bf6-68d5-4e97-bcd1-e4d3012f721a}',
'contract_ids': ['@mozilla.org/content-permission/prompt;1'],
'jsm': 'resource:///modules/BrowserGlue.jsm',
'constructor': 'ContentPermissionPrompt',
},
]
...@@ -74,15 +74,19 @@ XPIDL_SOURCES += [ ...@@ -74,15 +74,19 @@ XPIDL_SOURCES += [
XPIDL_MODULE = 'browsercompsbase' XPIDL_MODULE = 'browsercompsbase'
XPCOM_MANIFESTS += [
'components.conf',
]
EXTRA_COMPONENTS += [ EXTRA_COMPONENTS += [
'BrowserComponents.manifest', 'BrowserComponents.manifest',
'nsBrowserContentHandler.js',
'nsBrowserGlue.js',
'tests/startupRecorder.js', 'tests/startupRecorder.js',
'tests/testComponents.manifest', 'tests/testComponents.manifest',
] ]
EXTRA_JS_MODULES += [ EXTRA_JS_MODULES += [
'BrowserContentHandler.jsm',
'BrowserGlue.jsm',
'distribution.js', 'distribution.js',
] ]
......
...@@ -3,8 +3,9 @@ ...@@ -3,8 +3,9 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this * 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/. */ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
var EXPORTED_SYMBOLS = ["WebProtocolHandlerRegistrar"];
const {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm"); const {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
const {XPCOMUtils} = ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
const STRING_BUNDLE_URI = "chrome://browser/locale/feeds/subscribe.properties"; const STRING_BUNDLE_URI = "chrome://browser/locale/feeds/subscribe.properties";
...@@ -146,13 +147,8 @@ WebProtocolHandlerRegistrar.prototype = { ...@@ -146,13 +147,8 @@ WebProtocolHandlerRegistrar.prototype = {
[addButton]); [addButton]);
}, },
classID: Components.ID("{efbd7b87-9b15-4684-abf0-dc2679daadb1}"),
/** /**
* See nsISupports * See nsISupports
*/ */
QueryInterface: ChromeUtils.generateQI([Ci.nsIWebProtocolHandlerRegistrar]), QueryInterface: ChromeUtils.generateQI([Ci.nsIWebProtocolHandlerRegistrar]),
}; };
this.NSGetFactory =
XPCOMUtils.generateNSGetFactory([WebProtocolHandlerRegistrar]);
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# vim: set filetype=python:
# 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/.
Classes = [
{
'cid': '{efbd7b87-9b15-4684-abf0-dc2679daadb1}',
'contract_ids': ['@mozilla.org/embeddor.implemented/web-protocol-handler-registrar;1'],
'jsm': 'resource:///modules/WebProtocolHandlerRegistrar.jsm',
'constructor': 'WebProtocolHandlerRegistrar',
'processes': ProcessSelector.MAIN_PROCESS_ONLY,
},
]
...@@ -7,8 +7,12 @@ ...@@ -7,8 +7,12 @@
MOCHITEST_MANIFESTS += ['test/mochitest.ini'] MOCHITEST_MANIFESTS += ['test/mochitest.ini']
BROWSER_CHROME_MANIFESTS += ['test/browser/browser.ini'] BROWSER_CHROME_MANIFESTS += ['test/browser/browser.ini']
EXTRA_COMPONENTS += [ EXTRA_JS_MODULES += [
'WebProtocolHandlerRegistrar.js', 'WebProtocolHandlerRegistrar.jsm',
]
XPCOM_MANIFESTS += [
'components.conf',
] ]
with Files('**'): with Files('**'):
......
...@@ -265,7 +265,7 @@ function testDefaultArgs() { ...@@ -265,7 +265,7 @@ function testDefaultArgs() {
testShowNotification(); testShowNotification();
} }
// nsBrowserGlue.js _showUpdateNotification notification tests // BrowserGlue.jsm _showUpdateNotification notification tests
const BG_NOTIFY_TESTS = [ const BG_NOTIFY_TESTS = [
{ {
description: "'silent showNotification' actions should not display a notification", description: "'silent showNotification' actions should not display a notification",
...@@ -292,7 +292,7 @@ const BG_NOTIFY_TESTS = [ ...@@ -292,7 +292,7 @@ const BG_NOTIFY_TESTS = [
]; ];
// Test showing a notification after an update // Test showing a notification after an update
// _showUpdateNotification in nsBrowserGlue.js // _showUpdateNotification in BrowserGlue.jsm
function testShowNotification() { function testShowNotification() {
// Catches any windows opened by these tests (e.g. alert windows) and closes // Catches any windows opened by these tests (e.g. alert windows) and closes
// them // them
......
...@@ -79,7 +79,7 @@ startupRecorder.prototype = { ...@@ -79,7 +79,7 @@ startupRecorder.prototype = {
if (topic == "app-startup") { if (topic == "app-startup") {
// We can't ensure our observer will be called first or last, so the list of // We can't ensure our observer will be called first or last, so the list of
// topics we observe here should avoid the topics used to trigger things // topics we observe here should avoid the topics used to trigger things
// during startup (eg. the topics observed by nsBrowserGlue.js). // during startup (eg. the topics observed by BrowserGlue.jsm).
let topics = [ let topics = [
"profile-do-change", // This catches stuff loaded during app-startup "profile-do-change", // This catches stuff loaded during app-startup
"toplevel-window-ready", // Catches stuff from final-ui-startup "toplevel-window-ready", // Catches stuff from final-ui-startup
......
...@@ -109,7 +109,7 @@ var PdfJs = { ...@@ -109,7 +109,7 @@ var PdfJs = {
earlyInit() { earlyInit() {
// Note: Please keep this in sync with the duplicated logic in // Note: Please keep this in sync with the duplicated logic in
// nsBrowserGlue.js. // BrowserGlue.jsm.
Services.ppmm.sharedData.set("pdfjs.enabled", this.checkEnabled()); Services.ppmm.sharedData.set("pdfjs.enabled", this.checkEnabled());
}, },
......
...@@ -174,8 +174,6 @@ ...@@ -174,8 +174,6 @@
@BINPATH@/components/nsDNSServiceDiscovery.js @BINPATH@/components/nsDNSServiceDiscovery.js
#endif #endif
@RESPATH@/browser/components/BrowserComponents.manifest @RESPATH@/browser/components/BrowserComponents.manifest
@RESPATH@/browser/components/nsBrowserContentHandler.js
@RESPATH@/browser/components/nsBrowserGlue.js
@RESPATH@/browser/components/devtools-startup.manifest @RESPATH@/browser/components/devtools-startup.manifest
@RESPATH@/browser/components/devtools-startup.js @RESPATH@/browser/components/devtools-startup.js
@RESPATH@/browser/components/aboutdebugging-registration.js @RESPATH@/browser/components/aboutdebugging-registration.js
...@@ -193,7 +191,6 @@ ...@@ -193,7 +191,6 @@
@RESPATH@/browser/components/EnterprisePolicies.js @RESPATH@/browser/components/EnterprisePolicies.js
@RESPATH@/browser/components/EnterprisePoliciesContent.js @RESPATH@/browser/components/EnterprisePoliciesContent.js
@RESPATH@/browser/components/EnterprisePolicies.manifest @RESPATH@/browser/components/EnterprisePolicies.manifest
@RESPATH@/browser/components/WebProtocolHandlerRegistrar.js
@RESPATH@/components/Downloads.manifest @RESPATH@/components/Downloads.manifest
@RESPATH@/components/DownloadLegacy.js @RESPATH@/components/DownloadLegacy.js
@RESPATH@/components/PageThumbsComponents.manifest @RESPATH@/components/PageThumbsComponents.manifest
......
...@@ -15,7 +15,7 @@ ChromeUtils.defineModuleGetter(this, "PrivateBrowsingUtils", ...@@ -15,7 +15,7 @@ ChromeUtils.defineModuleGetter(this, "PrivateBrowsingUtils",
"resource://gre/modules/PrivateBrowsingUtils.jsm"); "resource://gre/modules/PrivateBrowsingUtils.jsm");
var ContentClick = { var ContentClick = {
// Listeners are added in nsBrowserGlue.js // Listeners are added in BrowserGlue.jsm
receiveMessage(message) { receiveMessage(message) {
switch (message.name) { switch (message.name) {
case "Content:Click": case "Content:Click":
......
...@@ -153,7 +153,7 @@ var ContentSearch = { ...@@ -153,7 +153,7 @@ var ContentSearch = {
}); });
}, },