Skip to content

Commit bb97eb4

Browse files
committed
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
1 parent 824f490 commit bb97eb4

File tree

27 files changed

+128
-109
lines changed

27 files changed

+128
-109
lines changed

browser/base/content/browser.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1738,7 +1738,7 @@ var gBrowserInit = {
17381738
* The functions scheduled here will fire from idle callbacks
17391739
* once every window has finished being restored by session
17401740
* restore, and after the equivalent only-once tasks
1741-
* have run (from _scheduleStartupIdleTasks in nsBrowserGlue.js).
1741+
* have run (from _scheduleStartupIdleTasks in BrowserGlue.jsm).
17421742
*/
17431743
_schedulePerWindowIdleTasks() {
17441744
// Bail out if the window has been closed in the meantime.

browser/base/content/test/performance/browser_startup.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,16 +24,16 @@ const startupPhases = {
2424
// Anything loaded during app-startup must have a compelling reason
2525
// to run before we have even selected the user profile.
2626
// Consider loading your code after first paint instead,
27-
// eg. from nsBrowserGlue.js' _onFirstWindowLoaded method).
27+
// eg. from BrowserGlue.jsm' _onFirstWindowLoaded method).
2828
"before profile selection": {whitelist: {
2929
components: new Set([
30-
"nsBrowserGlue.js",
3130
"MainProcessSingleton.js",
3231

3332
// Bugs to fix: The following components shouldn't be initialized that early.
3433
"PushComponents.js", // bug 1369436
3534
]),
3635
modules: new Set([
36+
"resource:///modules/BrowserGlue.jsm",
3737
"resource://gre/modules/AppConstants.jsm",
3838
"resource://gre/modules/ActorManagerParent.jsm",
3939
"resource://gre/modules/CustomElementsListener.jsm",
Lines changed: 0 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,3 @@
1-
# nsBrowserContentHandler.js
2-
component {5d0ce354-df01-421a-83fb-7ead0990c24e} nsBrowserContentHandler.js application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
3-
contract @mozilla.org/browser/clh;1 {5d0ce354-df01-421a-83fb-7ead0990c24e} application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
4-
component {47cd0651-b1be-4a0f-b5c4-10e5a573ef71} nsBrowserContentHandler.js application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
5-
contract @mozilla.org/browser/final-clh;1 {47cd0651-b1be-4a0f-b5c4-10e5a573ef71} application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
6-
contract @mozilla.org/uriloader/content-handler;1?type=text/html {5d0ce354-df01-421a-83fb-7ead0990c24e} application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
7-
contract @mozilla.org/uriloader/content-handler;1?type=application/vnd.mozilla.xul+xml {5d0ce354-df01-421a-83fb-7ead0990c24e} application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
8-
contract @mozilla.org/uriloader/content-handler;1?type=image/svg+xml {5d0ce354-df01-421a-83fb-7ead0990c24e} application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
9-
contract @mozilla.org/uriloader/content-handler;1?type=text/rdf {5d0ce354-df01-421a-83fb-7ead0990c24e} application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
10-
contract @mozilla.org/uriloader/content-handler;1?type=text/xml {5d0ce354-df01-421a-83fb-7ead0990c24e} application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
11-
contract @mozilla.org/uriloader/content-handler;1?type=application/xhtml+xml {5d0ce354-df01-421a-83fb-7ead0990c24e} application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
12-
contract @mozilla.org/uriloader/content-handler;1?type=text/css {5d0ce354-df01-421a-83fb-7ead0990c24e} application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
13-
contract @mozilla.org/uriloader/content-handler;1?type=text/plain {5d0ce354-df01-421a-83fb-7ead0990c24e} application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
14-
contract @mozilla.org/uriloader/content-handler;1?type=image/gif {5d0ce354-df01-421a-83fb-7ead0990c24e} application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
15-
contract @mozilla.org/uriloader/content-handler;1?type=image/jpeg {5d0ce354-df01-421a-83fb-7ead0990c24e} application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
16-
contract @mozilla.org/uriloader/content-handler;1?type=image/jpg {5d0ce354-df01-421a-83fb-7ead0990c24e} application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
17-
contract @mozilla.org/uriloader/content-handler;1?type=image/png {5d0ce354-df01-421a-83fb-7ead0990c24e} application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
18-
contract @mozilla.org/uriloader/content-handler;1?type=image/bmp {5d0ce354-df01-421a-83fb-7ead0990c24e} application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
19-
contract @mozilla.org/uriloader/content-handler;1?type=image/x-icon {5d0ce354-df01-421a-83fb-7ead0990c24e} application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
20-
contract @mozilla.org/uriloader/content-handler;1?type=image/vnd.microsoft.icon {5d0ce354-df01-421a-83fb-7ead0990c24e} application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
21-
contract @mozilla.org/uriloader/content-handler;1?type=application/http-index-format {5d0ce354-df01-421a-83fb-7ead0990c24e} application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
22-
category command-line-handler m-browser @mozilla.org/browser/clh;1 application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
23-
category command-line-handler x-default @mozilla.org/browser/final-clh;1 application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
24-
category command-line-validator b-browser @mozilla.org/browser/clh;1 application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
25-
261
# nsBrowserGlue.js
272

283
# 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
327
# browser: {ec8030f7-c20a-464f-9b0e-13a3a9e97384}
338
# mobile/android: {aa3c5121-dab2-40e2-81ca-7ea25febc110}
349

35-
component {eab9012e-5f74-4cbc-b2b5-a590235513cc} nsBrowserGlue.js
36-
contract @mozilla.org/browser/browserglue;1 {eab9012e-5f74-4cbc-b2b5-a590235513cc}
3710
category app-startup nsBrowserGlue service,@mozilla.org/browser/browserglue;1 application={ec8030f7-c20a-464f-9b0e-13a3a9e97384} application={aa3c5121-dab2-40e2-81ca-7ea25febc110}
38-
component {d8903bf6-68d5-4e97-bcd1-e4d3012f721a} nsBrowserGlue.js
39-
contract @mozilla.org/content-permission/prompt;1 {d8903bf6-68d5-4e97-bcd1-e4d3012f721a}
40-
41-
# RegisterProtocolHandler support
42-
component {efbd7b87-9b15-4684-abf0-dc2679daadb1} WebProtocolHandlerRegistrar.js process=main
43-
contract @mozilla.org/embeddor.implemented/web-protocol-handler-registrar;1 {efbd7b87-9b15-4684-abf0-dc2679daadb1} process=main

browser/components/nsBrowserContentHandler.js renamed to browser/components/BrowserContentHandler.jsm

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
* License, v. 2.0. If a copy of the MPL was not distributed with this
33
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
44

5+
var EXPORTED_SYMBOLS = ["nsBrowserContentHandler", "nsDefaultCommandLineHandler"];
6+
57
const {XPCOMUtils} = ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
68
const {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
79
const {AppConstants} = ChromeUtils.import("resource://gre/modules/AppConstants.jsm");
@@ -178,7 +180,7 @@ function getPostUpdateOverridePage(defaultOverridePage) {
178180

179181
/**
180182
* Open a browser window. If this is the initial launch, this function will
181-
* attempt to use the navigator:blank window opened by nsBrowserGlue.js during
183+
* attempt to use the navigator:blank window opened by BrowserGlue.jsm during
182184
* early startup.
183185
*
184186
* @param cmdLine
@@ -325,18 +327,12 @@ function doSearch(searchTerm, cmdLine) {
325327
}
326328

327329
function nsBrowserContentHandler() {
330+
if (!gBrowserContentHandler) {
331+
gBrowserContentHandler = this;
332+
}
333+
return gBrowserContentHandler;
328334
}
329335
nsBrowserContentHandler.prototype = {
330-
classID: Components.ID("{5d0ce354-df01-421a-83fb-7ead0990c24e}"),
331-
332-
_xpcom_factory: {
333-
createInstance: function bch_factory_ci(outer, iid) {
334-
if (outer)
335-
throw Cr.NS_ERROR_NO_AGGREGATION;
336-
return gBrowserContentHandler.QueryInterface(iid);
337-
},
338-
},
339-
340336
/* nsISupports */
341337
QueryInterface: ChromeUtils.generateQI([Ci.nsICommandLineHandler,
342338
Ci.nsIBrowserHandler,
@@ -733,8 +729,6 @@ function nsDefaultCommandLineHandler() {
733729
}
734730

735731
nsDefaultCommandLineHandler.prototype = {
736-
classID: Components.ID("{47cd0651-b1be-4a0f-b5c4-10e5a573ef71}"),
737-
738732
/* nsISupports */
739733
QueryInterface: ChromeUtils.generateQI(["nsICommandLineHandler"]),
740734

@@ -836,6 +830,3 @@ nsDefaultCommandLineHandler.prototype = {
836830

837831
helpInfo: "",
838832
};
839-
840-
var components = [nsBrowserContentHandler, nsDefaultCommandLineHandler];
841-
this.NSGetFactory = XPCOMUtils.generateNSGetFactory(components);
Lines changed: 13 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
* License, v. 2.0. If a copy of the MPL was not distributed with this
33
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
44

5+
var EXPORTED_SYMBOLS = ["BrowserGlue", "ContentPermissionPrompt"];
6+
57
const XULNS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
68

79
const {XPCOMUtils} = ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
@@ -365,10 +367,7 @@ let ACTORS = {
365367
TelemetryTimestamps.add("blankWindowShown");
366368
})();
367369

368-
XPCOMUtils.defineLazyGlobalGetters(this, ["fetch"]);
369-
370370
XPCOMUtils.defineLazyServiceGetters(this, {
371-
WindowsUIUtils: ["@mozilla.org/windows-ui-utils;1", "nsIWindowsUIUtils"],
372371
aboutNewTabService: ["@mozilla.org/browser/aboutnewtab-service;1", "nsIAboutNewTabService"],
373372
});
374373
XPCOMUtils.defineLazyGetter(this, "WeaveService", () =>
@@ -381,22 +380,18 @@ XPCOMUtils.defineLazyModuleGetters(this, {
381380
AboutPrivateBrowsingHandler: "resource:///modules/aboutpages/AboutPrivateBrowsingHandler.jsm",
382381
AddonManager: "resource://gre/modules/AddonManager.jsm",
383382
AppMenuNotifications: "resource://gre/modules/AppMenuNotifications.jsm",
384-
AsyncPrefs: "resource://gre/modules/AsyncPrefs.jsm",
385383
AsyncShutdown: "resource://gre/modules/AsyncShutdown.jsm",
386384
AutoCompletePopup: "resource://gre/modules/AutoCompletePopup.jsm",
387385
Blocklist: "resource://gre/modules/Blocklist.jsm",
388386
BookmarkHTMLUtils: "resource://gre/modules/BookmarkHTMLUtils.jsm",
389387
BookmarkJSONUtils: "resource://gre/modules/BookmarkJSONUtils.jsm",
390388
BrowserUsageTelemetry: "resource:///modules/BrowserUsageTelemetry.jsm",
391389
BrowserWindowTracker: "resource:///modules/BrowserWindowTracker.jsm",
392-
ContentClick: "resource:///modules/ContentClick.jsm",
393390
ContextualIdentityService: "resource://gre/modules/ContextualIdentityService.jsm",
394-
CustomizableUI: "resource:///modules/CustomizableUI.jsm",
395391
DateTimePickerParent: "resource://gre/modules/DateTimePickerParent.jsm",
396392
Discovery: "resource:///modules/Discovery.jsm",
397393
ExtensionsUI: "resource:///modules/ExtensionsUI.jsm",
398394
FileSource: "resource://gre/modules/L10nRegistry.jsm",
399-
FormValidationHandler: "resource:///modules/FormValidationHandler.jsm",
400395
FxAccounts: "resource://gre/modules/FxAccounts.jsm",
401396
HomePage: "resource:///modules/HomePage.jsm",
402397
HybridContentTelemetry: "resource://gre/modules/HybridContentTelemetry.jsm",
@@ -405,8 +400,6 @@ XPCOMUtils.defineLazyModuleGetters(this, {
405400
LanguagePrompt: "resource://gre/modules/LanguagePrompt.jsm",
406401
LightweightThemeManager: "resource://gre/modules/LightweightThemeManager.jsm",
407402
LiveBookmarkMigrator: "resource:///modules/LiveBookmarkMigrator.jsm",
408-
LoginHelper: "resource://gre/modules/LoginHelper.jsm",
409-
LoginManagerParent: "resource://gre/modules/LoginManagerParent.jsm",
410403
NewTabUtils: "resource://gre/modules/NewTabUtils.jsm",
411404
Normandy: "resource://normandy/Normandy.jsm",
412405
ObjectUtils: "resource://gre/modules/ObjectUtils.jsm",
@@ -415,15 +408,12 @@ XPCOMUtils.defineLazyModuleGetters(this, {
415408
PageThumbs: "resource://gre/modules/PageThumbs.jsm",
416409
PdfJs: "resource://pdf.js/PdfJs.jsm",
417410
PermissionUI: "resource:///modules/PermissionUI.jsm",
418-
PictureInPicture: "resource://gre/modules/PictureInPicture.jsm",
419411
PingCentre: "resource:///modules/PingCentre.jsm",
420412
PlacesBackups: "resource://gre/modules/PlacesBackups.jsm",
421413
PlacesUtils: "resource://gre/modules/PlacesUtils.jsm",
422414
PluralForm: "resource://gre/modules/PluralForm.jsm",
423415
PrivateBrowsingUtils: "resource://gre/modules/PrivateBrowsingUtils.jsm",
424416
ProcessHangMonitor: "resource:///modules/ProcessHangMonitor.jsm",
425-
ReaderParent: "resource:///modules/ReaderParent.jsm",
426-
RemotePrompt: "resource:///modules/RemotePrompt.jsm",
427417
RemoteSettings: "resource://services-settings/remote-settings.js",
428418
SafeBrowsing: "resource://gre/modules/SafeBrowsing.jsm",
429419
Sanitizer: "resource:///modules/Sanitizer.jsm",
@@ -439,6 +429,17 @@ XPCOMUtils.defineLazyModuleGetters(this, {
439429
WindowsRegistry: "resource://gre/modules/WindowsRegistry.jsm",
440430
});
441431

432+
// eslint-disable-next-line no-unused-vars
433+
XPCOMUtils.defineLazyModuleGetters(this, {
434+
AsyncPrefs: "resource://gre/modules/AsyncPrefs.jsm",
435+
ContentClick: "resource:///modules/ContentClick.jsm",
436+
FormValidationHandler: "resource:///modules/FormValidationHandler.jsm",
437+
LoginManagerParent: "resource://gre/modules/LoginManagerParent.jsm",
438+
PictureInPicture: "resource://gre/modules/PictureInPicture.jsm",
439+
ReaderParent: "resource:///modules/ReaderParent.jsm",
440+
RemotePrompt: "resource:///modules/RemotePrompt.jsm",
441+
});
442+
442443
/* global ContentPrefServiceParent:false, ContentSearch:false,
443444
UpdateListener:false, webrtcUI:false */
444445

@@ -466,7 +467,6 @@ if (AppConstants.MOZ_CRASHREPORTER) {
466467
XPCOMUtils.defineLazyModuleGetters(this, {
467468
PluginCrashReporter: "resource:///modules/ContentCrashHandlers.jsm",
468469
UnsubmittedCrashHandler: "resource:///modules/ContentCrashHandlers.jsm",
469-
CrashSubmit: "resource://gre/modules/CrashSubmit.jsm",
470470
});
471471
}
472472

@@ -2985,13 +2985,8 @@ BrowserGlue.prototype = {
29852985
}
29862986
},
29872987

2988-
// for XPCOM
2989-
classID: Components.ID("{eab9012e-5f74-4cbc-b2b5-a590235513cc}"),
2990-
29912988
QueryInterface: ChromeUtils.generateQI([Ci.nsIObserver,
29922989
Ci.nsISupportsWeakReference]),
2993-
2994-
_xpcom_factory: XPCOMUtils.generateSingletonFactory(BrowserGlue),
29952990
};
29962991

29972992
var ContentBlockingCategoriesPrefs = {
@@ -3489,9 +3484,6 @@ var JawsScreenReaderVersionCheck = {
34893484
},
34903485
};
34913486

3492-
var components = [BrowserGlue, ContentPermissionPrompt];
3493-
this.NSGetFactory = XPCOMUtils.generateNSGetFactory(components);
3494-
34953487
// Listen for UITour messages.
34963488
// Do it here instead of the UITour module itself so that the UITour module is lazy loaded
34973489
// when the first message is received.

browser/components/components.conf

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
2+
# vim: set filetype=python:
3+
# This Source Code Form is subject to the terms of the Mozilla Public
4+
# License, v. 2.0. If a copy of the MPL was not distributed with this
5+
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
6+
7+
Classes = [
8+
{
9+
'cid': '{5d0ce354-df01-421a-83fb-7ead0990c24e}',
10+
'contract_ids': [
11+
'@mozilla.org/browser/clh;1',
12+
'@mozilla.org/uriloader/content-handler;1?type=application/http-index-format',
13+
'@mozilla.org/uriloader/content-handler;1?type=application/vnd.mozilla.xul+xml',
14+
'@mozilla.org/uriloader/content-handler;1?type=application/xhtml+xml',
15+
'@mozilla.org/uriloader/content-handler;1?type=image/bmp',
16+
'@mozilla.org/uriloader/content-handler;1?type=image/gif',
17+
'@mozilla.org/uriloader/content-handler;1?type=image/jpeg',
18+
'@mozilla.org/uriloader/content-handler;1?type=image/jpg',
19+
'@mozilla.org/uriloader/content-handler;1?type=image/png',
20+
'@mozilla.org/uriloader/content-handler;1?type=image/svg+xml',
21+
'@mozilla.org/uriloader/content-handler;1?type=image/vnd.microsoft.icon',
22+
'@mozilla.org/uriloader/content-handler;1?type=image/x-icon',
23+
'@mozilla.org/uriloader/content-handler;1?type=text/css',
24+
'@mozilla.org/uriloader/content-handler;1?type=text/html',
25+
'@mozilla.org/uriloader/content-handler;1?type=text/plain',
26+
'@mozilla.org/uriloader/content-handler;1?type=text/rdf',
27+
'@mozilla.org/uriloader/content-handler;1?type=text/xml',
28+
],
29+
'jsm': 'resource:///modules/BrowserContentHandler.jsm',
30+
'constructor': 'nsBrowserContentHandler',
31+
'categories': {
32+
'command-line-handler': 'm-browser',
33+
'command-line-validator': 'b-browser',
34+
},
35+
},
36+
{
37+
'cid': '{47cd0651-b1be-4a0f-b5c4-10e5a573ef71}',
38+
'contract_ids': ['@mozilla.org/browser/final-clh;1'],
39+
'jsm': 'resource:///modules/BrowserContentHandler.jsm',
40+
'constructor': 'nsDefaultCommandLineHandler',
41+
'categories': {'command-line-handler': 'x-default'},
42+
},
43+
{
44+
'cid': '{eab9012e-5f74-4cbc-b2b5-a590235513cc}',
45+
'contract_ids': ['@mozilla.org/browser/browserglue;1'],
46+
'jsm': 'resource:///modules/BrowserGlue.jsm',
47+
'constructor': 'BrowserGlue',
48+
},
49+
{
50+
'cid': '{d8903bf6-68d5-4e97-bcd1-e4d3012f721a}',
51+
'contract_ids': ['@mozilla.org/content-permission/prompt;1'],
52+
'jsm': 'resource:///modules/BrowserGlue.jsm',
53+
'constructor': 'ContentPermissionPrompt',
54+
},
55+
]

browser/components/moz.build

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,15 +74,19 @@ XPIDL_SOURCES += [
7474

7575
XPIDL_MODULE = 'browsercompsbase'
7676

77+
XPCOM_MANIFESTS += [
78+
'components.conf',
79+
]
80+
7781
EXTRA_COMPONENTS += [
7882
'BrowserComponents.manifest',
79-
'nsBrowserContentHandler.js',
80-
'nsBrowserGlue.js',
8183
'tests/startupRecorder.js',
8284
'tests/testComponents.manifest',
8385
]
8486

8587
EXTRA_JS_MODULES += [
88+
'BrowserContentHandler.jsm',
89+
'BrowserGlue.jsm',
8690
'distribution.js',
8791
]
8892

browser/components/protocolhandler/WebProtocolHandlerRegistrar.js renamed to browser/components/protocolhandler/WebProtocolHandlerRegistrar.jsm

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@
33
* License, v. 2.0. If a copy of the MPL was not distributed with this
44
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
55

6+
var EXPORTED_SYMBOLS = ["WebProtocolHandlerRegistrar"];
7+
68
const {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
7-
const {XPCOMUtils} = ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
89

910
const STRING_BUNDLE_URI = "chrome://browser/locale/feeds/subscribe.properties";
1011

@@ -146,13 +147,8 @@ WebProtocolHandlerRegistrar.prototype = {
146147
[addButton]);
147148
},
148149

149-
classID: Components.ID("{efbd7b87-9b15-4684-abf0-dc2679daadb1}"),
150-
151150
/**
152151
* See nsISupports
153152
*/
154153
QueryInterface: ChromeUtils.generateQI([Ci.nsIWebProtocolHandlerRegistrar]),
155154
};
156-
157-
this.NSGetFactory =
158-
XPCOMUtils.generateNSGetFactory([WebProtocolHandlerRegistrar]);
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
2+
# vim: set filetype=python:
3+
# This Source Code Form is subject to the terms of the Mozilla Public
4+
# License, v. 2.0. If a copy of the MPL was not distributed with this
5+
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
6+
7+
Classes = [
8+
{
9+
'cid': '{efbd7b87-9b15-4684-abf0-dc2679daadb1}',
10+
'contract_ids': ['@mozilla.org/embeddor.implemented/web-protocol-handler-registrar;1'],
11+
'jsm': 'resource:///modules/WebProtocolHandlerRegistrar.jsm',
12+
'constructor': 'WebProtocolHandlerRegistrar',
13+
'processes': ProcessSelector.MAIN_PROCESS_ONLY,
14+
},
15+
]

browser/components/protocolhandler/moz.build

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,12 @@
77
MOCHITEST_MANIFESTS += ['test/mochitest.ini']
88
BROWSER_CHROME_MANIFESTS += ['test/browser/browser.ini']
99

10-
EXTRA_COMPONENTS += [
11-
'WebProtocolHandlerRegistrar.js',
10+
EXTRA_JS_MODULES += [
11+
'WebProtocolHandlerRegistrar.jsm',
12+
]
13+
14+
XPCOM_MANIFESTS += [
15+
'components.conf',
1216
]
1317

1418
with Files('**'):

0 commit comments

Comments
 (0)