зеркало из https://github.com/mozilla/gecko-dev.git
Backed out 6 changesets (bug 1464542) for xpcshell failures on test_Services.js. CLOSED TREE
Backed out changeset b50af9005851 (bug 1464542) Backed out changeset 9d3a0ea2cf65 (bug 1464542) Backed out changeset 71c3475fcbc2 (bug 1464542) Backed out changeset 51ff93220a95 (bug 1464542) Backed out changeset e84de1547c09 (bug 1464542) Backed out changeset bbecc16d08eb (bug 1464542)
This commit is contained in:
Родитель
595a699c3e
Коммит
b355fcc4bf
|
@ -5,7 +5,18 @@
|
||||||
const { UrlClassifierTestUtils } = ChromeUtils.import(
|
const { UrlClassifierTestUtils } = ChromeUtils.import(
|
||||||
"resource://testing-common/UrlClassifierTestUtils.jsm"
|
"resource://testing-common/UrlClassifierTestUtils.jsm"
|
||||||
);
|
);
|
||||||
Services.cookies.QueryInterface(Ci.nsICookieService);
|
XPCOMUtils.defineLazyServiceGetter(
|
||||||
|
Services,
|
||||||
|
"cookies",
|
||||||
|
"@mozilla.org/cookieService;1",
|
||||||
|
"nsICookieService"
|
||||||
|
);
|
||||||
|
XPCOMUtils.defineLazyServiceGetter(
|
||||||
|
Services,
|
||||||
|
"cookiemgr",
|
||||||
|
"@mozilla.org/cookiemanager;1",
|
||||||
|
"nsICookieManager"
|
||||||
|
);
|
||||||
|
|
||||||
function restore_prefs() {
|
function restore_prefs() {
|
||||||
Services.prefs.clearUserPref("network.cookie.cookieBehavior");
|
Services.prefs.clearUserPref("network.cookie.cookieBehavior");
|
||||||
|
@ -70,12 +81,12 @@ async function test_cookie_settings({
|
||||||
expectedThirdPartyCookies = 0;
|
expectedThirdPartyCookies = 0;
|
||||||
}
|
}
|
||||||
is(
|
is(
|
||||||
Services.cookies.countCookiesFromHost(firstPartyURI.host),
|
Services.cookiemgr.countCookiesFromHost(firstPartyURI.host),
|
||||||
expectedFirstPartyCookies,
|
expectedFirstPartyCookies,
|
||||||
"Number of first-party cookies should match expected"
|
"Number of first-party cookies should match expected"
|
||||||
);
|
);
|
||||||
is(
|
is(
|
||||||
Services.cookies.countCookiesFromHost(thirdPartyURI.host),
|
Services.cookiemgr.countCookiesFromHost(thirdPartyURI.host),
|
||||||
expectedThirdPartyCookies,
|
expectedThirdPartyCookies,
|
||||||
"Number of third-party cookies should match expected"
|
"Number of third-party cookies should match expected"
|
||||||
);
|
);
|
||||||
|
|
|
@ -193,7 +193,7 @@ const clearLocalStorage = async function(options) {
|
||||||
Services.obs.notifyObservers(null, "extension:purge-localStorage");
|
Services.obs.notifyObservers(null, "extension:purge-localStorage");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Services.domStorageManager.nextGenLocalStorageEnabled) {
|
if (Services.lsm.nextGenLocalStorageEnabled) {
|
||||||
// Ideally we could reuse the logic in Sanitizer.jsm or nsIClearDataService,
|
// Ideally we could reuse the logic in Sanitizer.jsm or nsIClearDataService,
|
||||||
// but this API exposes an ability to wipe data at a much finger granularity
|
// but this API exposes an ability to wipe data at a much finger granularity
|
||||||
// than those APIs. So custom logic is used here to wipe only the QM
|
// than those APIs. So custom logic is used here to wipe only the QM
|
||||||
|
|
|
@ -56,10 +56,7 @@ add_task(async function testLocalStorage() {
|
||||||
await browser.tabs.sendMessage(tabs[0].id, "checkLocalStorageCleared");
|
await browser.tabs.sendMessage(tabs[0].id, "checkLocalStorageCleared");
|
||||||
await browser.tabs.sendMessage(tabs[1].id, "checkLocalStorageSet");
|
await browser.tabs.sendMessage(tabs[1].id, "checkLocalStorageSet");
|
||||||
|
|
||||||
if (
|
if (SpecialPowers.Services.lsm.nextGenLocalStorageEnabled === false) {
|
||||||
SpecialPowers.Services.domStorageManager.nextGenLocalStorageEnabled ===
|
|
||||||
false
|
|
||||||
) {
|
|
||||||
// This assertion fails when localStorage is using the legacy
|
// This assertion fails when localStorage is using the legacy
|
||||||
// implementation (See Bug 1595431).
|
// implementation (See Bug 1595431).
|
||||||
browser.test.log("Skipped assertion on nextGenLocalStorageEnabled=false");
|
browser.test.log("Skipped assertion on nextGenLocalStorageEnabled=false");
|
||||||
|
|
|
@ -173,6 +173,9 @@
|
||||||
|
|
||||||
; JavaScript components
|
; JavaScript components
|
||||||
@RESPATH@/browser/components/BrowserComponents.manifest
|
@RESPATH@/browser/components/BrowserComponents.manifest
|
||||||
|
@RESPATH@/components/EnterprisePolicies.js
|
||||||
|
@RESPATH@/components/EnterprisePoliciesContent.js
|
||||||
|
@RESPATH@/components/EnterprisePolicies.manifest
|
||||||
@RESPATH@/components/toolkitsearch.manifest
|
@RESPATH@/components/toolkitsearch.manifest
|
||||||
@RESPATH@/components/extensions.manifest
|
@RESPATH@/components/extensions.manifest
|
||||||
#ifdef MOZ_UPDATER
|
#ifdef MOZ_UPDATER
|
||||||
|
|
|
@ -29,11 +29,8 @@ idl_deps_dir := .deps
|
||||||
dist_idl_dir := $(DIST)/idl
|
dist_idl_dir := $(DIST)/idl
|
||||||
dist_include_dir := $(DIST)/include
|
dist_include_dir := $(DIST)/include
|
||||||
dist_xpcrs_dir := $(DIST)/xpcrs
|
dist_xpcrs_dir := $(DIST)/xpcrs
|
||||||
stub_file := xptdata.stub
|
|
||||||
process_py := $(topsrcdir)/python/mozbuild/mozbuild/action/xpidl-process.py
|
process_py := $(topsrcdir)/python/mozbuild/mozbuild/action/xpidl-process.py
|
||||||
target_file := $(topobjdir)/xpcom/reflect/xptinfo/xptdata.cpp
|
generated_file := $(topobjdir)/xpcom/reflect/xptinfo/xptdata.cpp
|
||||||
xptdata_h := $(dist_include_dir)/xptdata.h
|
|
||||||
generated_files := $(target_file) $(xptdata_h)
|
|
||||||
code_gen_py := $(topsrcdir)/xpcom/reflect/xptinfo/xptcodegen.py
|
code_gen_py := $(topsrcdir)/xpcom/reflect/xptinfo/xptcodegen.py
|
||||||
code_gen_deps := $(topsrcdir)/xpcom/ds/tools/perfecthash.py
|
code_gen_deps := $(topsrcdir)/xpcom/ds/tools/perfecthash.py
|
||||||
|
|
||||||
|
@ -62,21 +59,17 @@ xpt_files := $(addsuffix .xpt,$(xpidl_modules))
|
||||||
|
|
||||||
depends_files := $(foreach root,$(xpidl_modules),$(idl_deps_dir)/$(root).pp)
|
depends_files := $(foreach root,$(xpidl_modules),$(idl_deps_dir)/$(root).pp)
|
||||||
|
|
||||||
GARBAGE += $(stub_file) $(xpt_files) $(depends_files) $(target_file)
|
GARBAGE += $(xpt_files) $(depends_files) $(generated_file)
|
||||||
|
|
||||||
ifdef COMPILE_ENVIRONMENT
|
ifdef COMPILE_ENVIRONMENT
|
||||||
xpidl:: $(generated_files)
|
xpidl:: $(generated_file)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# See bug 1420119 for why we need the semicolon.
|
|
||||||
$(target_file) $(xptdata_h) : $(stub_file) ;
|
|
||||||
|
|
||||||
$(xpt_files): $(process_py) $(call mkdir_deps,$(idl_deps_dir) $(dist_include_dir) $(dist_xpcrs_dir))
|
$(xpt_files): $(process_py) $(call mkdir_deps,$(idl_deps_dir) $(dist_include_dir) $(dist_xpcrs_dir))
|
||||||
|
|
||||||
$(stub_file) : $(xpt_files) $(code_gen_py) $(code_gen_deps)
|
$(generated_file): $(xpt_files) $(code_gen_py) $(code_gen_deps)
|
||||||
$(REPORT_BUILD)
|
$(REPORT_BUILD)
|
||||||
$(PYTHON3) $(code_gen_py) $(generated_files) $(xpt_files)
|
$(PYTHON3) $(code_gen_py) $(generated_file) $(xpt_files)
|
||||||
@touch $@
|
|
||||||
|
|
||||||
-include $(depends_files)
|
-include $(depends_files)
|
||||||
|
|
||||||
|
|
|
@ -56,10 +56,8 @@ Classes = [
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'name': 'URIFixup',
|
'name': 'URIFixup',
|
||||||
'js_name': 'uriFixup',
|
|
||||||
'cid': '{c6cf88b7-452e-47eb-bdc9-86e3561648ef}',
|
'cid': '{c6cf88b7-452e-47eb-bdc9-86e3561648ef}',
|
||||||
'contract_ids': ['@mozilla.org/docshell/uri-fixup;1'],
|
'contract_ids': ['@mozilla.org/docshell/uri-fixup;1'],
|
||||||
'interfaces': ['nsIURIFixup'],
|
|
||||||
'jsm': 'resource://gre/modules/URIFixup.jsm',
|
'jsm': 'resource://gre/modules/URIFixup.jsm',
|
||||||
'constructor': 'URIFixup',
|
'constructor': 'URIFixup',
|
||||||
},
|
},
|
||||||
|
|
|
@ -6,10 +6,8 @@
|
||||||
|
|
||||||
Classes = [
|
Classes = [
|
||||||
{
|
{
|
||||||
'js_name': 'droppedLinkHandler',
|
|
||||||
'cid': '{1f34bc80-1bc7-11d6-a384-d705dd0746fc}',
|
'cid': '{1f34bc80-1bc7-11d6-a384-d705dd0746fc}',
|
||||||
'contract_ids': ['@mozilla.org/content/dropped-link-handler;1'],
|
'contract_ids': ['@mozilla.org/content/dropped-link-handler;1'],
|
||||||
'interfaces': ['nsIDroppedLinkHandler'],
|
|
||||||
'jsm': 'resource://gre/modules/ContentAreaDropListener.jsm',
|
'jsm': 'resource://gre/modules/ContentAreaDropListener.jsm',
|
||||||
'constructor': 'ContentAreaDropListener',
|
'constructor': 'ContentAreaDropListener',
|
||||||
},
|
},
|
||||||
|
|
|
@ -327,25 +327,6 @@ inline void AssignJSLinearString(nsAString& dest, JSLinearString* s) {
|
||||||
js::CopyLinearStringChars(dest.BeginWriting(), s, len);
|
js::CopyLinearStringChars(dest.BeginWriting(), s, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void AssignJSLinearString(nsACString& dest, JSLinearString* s) {
|
|
||||||
size_t len = js::GetLinearStringLength(s);
|
|
||||||
static_assert(js::MaxStringLength < (1 << 30),
|
|
||||||
"Shouldn't overflow here or in SetCapacity");
|
|
||||||
dest.SetLength(len);
|
|
||||||
js::CopyLinearStringChars(dest.BeginWriting(), s, len);
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename T>
|
|
||||||
class nsTAutoJSLinearString : public nsTAutoString<T> {
|
|
||||||
public:
|
|
||||||
explicit nsTAutoJSLinearString(JSLinearString* str) {
|
|
||||||
AssignJSLinearString(*this, str);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
using nsAutoJSLinearString = nsTAutoJSLinearString<char16_t>;
|
|
||||||
using nsAutoJSLinearCString = nsTAutoJSLinearString<char>;
|
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
class nsTAutoJSString : public nsTAutoString<T> {
|
class nsTAutoJSString : public nsTAutoString<T> {
|
||||||
public:
|
public:
|
||||||
|
|
|
@ -133,7 +133,7 @@ TestInterfaceJS.prototype = {
|
||||||
testThrowNsresultFromNative(x) {
|
testThrowNsresultFromNative(x) {
|
||||||
// We want to throw an exception that we generate from an nsresult thrown
|
// We want to throw an exception that we generate from an nsresult thrown
|
||||||
// by a C++ component.
|
// by a C++ component.
|
||||||
Services.io.notImplemented();
|
Services.netUtils.notImplemented();
|
||||||
},
|
},
|
||||||
|
|
||||||
testThrowCallbackError(callback) {
|
testThrowCallbackError(callback) {
|
||||||
|
|
|
@ -10,7 +10,7 @@ async function testSteps() {
|
||||||
];
|
];
|
||||||
|
|
||||||
async function isPreloaded(principal) {
|
async function isPreloaded(principal) {
|
||||||
return Services.domStorageManager.isPreloaded(principal);
|
return Services.lsm.isPreloaded(principal);
|
||||||
}
|
}
|
||||||
|
|
||||||
info("Setting prefs");
|
info("Setting prefs");
|
||||||
|
|
|
@ -185,7 +185,11 @@ ImageObjectProcessor.prototype.process = function(
|
||||||
};
|
};
|
||||||
let value = extractor.extractValue(spec);
|
let value = extractor.extractValue(spec);
|
||||||
if (value) {
|
if (value) {
|
||||||
value = Services.io.parseRequestContentType(value, charset, hadCharset);
|
value = Services.netUtils.parseRequestContentType(
|
||||||
|
value,
|
||||||
|
charset,
|
||||||
|
hadCharset
|
||||||
|
);
|
||||||
}
|
}
|
||||||
return value || undefined;
|
return value || undefined;
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,7 +19,7 @@ Services.scriptloader.loadSubScript(
|
||||||
/* import-globals-from helper_localStorage_e10s.js */
|
/* import-globals-from helper_localStorage_e10s.js */
|
||||||
|
|
||||||
function waitForLocalStorageFlush() {
|
function waitForLocalStorageFlush() {
|
||||||
if (Services.domStorageManager.nextGenLocalStorageEnabled) {
|
if (Services.lsm.nextGenLocalStorageEnabled) {
|
||||||
return new Promise(resolve => executeSoon(resolve));
|
return new Promise(resolve => executeSoon(resolve));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -45,7 +45,7 @@ function waitForLocalStorageFlush() {
|
||||||
* notifications, but correctness is guaranteed after the second notification.
|
* notifications, but correctness is guaranteed after the second notification.
|
||||||
*/
|
*/
|
||||||
function triggerAndWaitForLocalStorageFlush() {
|
function triggerAndWaitForLocalStorageFlush() {
|
||||||
if (Services.domStorageManager.nextGenLocalStorageEnabled) {
|
if (Services.lsm.nextGenLocalStorageEnabled) {
|
||||||
return new Promise(resolve => executeSoon(resolve));
|
return new Promise(resolve => executeSoon(resolve));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -76,7 +76,7 @@ function clearOriginStorageEnsuringNoPreload() {
|
||||||
HELPER_PAGE_ORIGIN
|
HELPER_PAGE_ORIGIN
|
||||||
);
|
);
|
||||||
|
|
||||||
if (Services.domStorageManager.nextGenLocalStorageEnabled) {
|
if (Services.lsm.nextGenLocalStorageEnabled) {
|
||||||
let request = Services.qms.clearStoragesForPrincipal(
|
let request = Services.qms.clearStoragesForPrincipal(
|
||||||
principal,
|
principal,
|
||||||
"default",
|
"default",
|
||||||
|
@ -114,8 +114,8 @@ async function verifyTabPreload(knownTab, expectStorageExists) {
|
||||||
let principal = Services.scriptSecurityManager.createContentPrincipalFromOrigin(
|
let principal = Services.scriptSecurityManager.createContentPrincipalFromOrigin(
|
||||||
origin
|
origin
|
||||||
);
|
);
|
||||||
if (Services.domStorageManager.nextGenLocalStorageEnabled) {
|
if (Services.lsm.nextGenLocalStorageEnabled) {
|
||||||
return Services.domStorageManager.isPreloaded(principal);
|
return Services.lsm.isPreloaded(principal);
|
||||||
}
|
}
|
||||||
return !!Services.domStorageManager.getStorage(
|
return !!Services.domStorageManager.getStorage(
|
||||||
null,
|
null,
|
||||||
|
|
|
@ -87,7 +87,7 @@ requestLongerTimeout(4);
|
||||||
* Verify snapshotting of our localStorage implementation in multi-e10s setup.
|
* Verify snapshotting of our localStorage implementation in multi-e10s setup.
|
||||||
*/
|
*/
|
||||||
add_task(async function() {
|
add_task(async function() {
|
||||||
if (!Services.domStorageManager.nextGenLocalStorageEnabled) {
|
if (!Services.lsm.nextGenLocalStorageEnabled) {
|
||||||
ok(true, "Test ignored when the next gen local storage is not enabled.");
|
ok(true, "Test ignored when the next gen local storage is not enabled.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
function localStorageFlush(cb) {
|
function localStorageFlush(cb) {
|
||||||
if (SpecialPowers.Services.domStorageManager.nextGenLocalStorageEnabled) {
|
if (SpecialPowers.Services.lsm.nextGenLocalStorageEnabled) {
|
||||||
SimpleTest.executeSoon(function() {
|
SimpleTest.executeSoon(function() {
|
||||||
cb();
|
cb();
|
||||||
});
|
});
|
||||||
|
@ -17,7 +17,7 @@ function localStorageFlush(cb) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function localStorageReload(callback) {
|
function localStorageReload(callback) {
|
||||||
if (SpecialPowers.Services.domStorageManager.nextGenLocalStorageEnabled) {
|
if (SpecialPowers.Services.lsm.nextGenLocalStorageEnabled) {
|
||||||
localStorage.close();
|
localStorage.close();
|
||||||
let qms = SpecialPowers.Services.qms;
|
let qms = SpecialPowers.Services.qms;
|
||||||
let principal = SpecialPowers.wrap(document).nodePrincipal;
|
let principal = SpecialPowers.wrap(document).nodePrincipal;
|
||||||
|
@ -36,7 +36,7 @@ function localStorageReload(callback) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function localStorageFlushAndReload(callback) {
|
function localStorageFlushAndReload(callback) {
|
||||||
if (SpecialPowers.Services.domStorageManager.nextGenLocalStorageEnabled) {
|
if (SpecialPowers.Services.lsm.nextGenLocalStorageEnabled) {
|
||||||
localStorage.close();
|
localStorage.close();
|
||||||
let qms = SpecialPowers.Services.qms;
|
let qms = SpecialPowers.Services.qms;
|
||||||
let principal = SpecialPowers.wrap(document).nodePrincipal;
|
let principal = SpecialPowers.wrap(document).nodePrincipal;
|
||||||
|
@ -54,7 +54,7 @@ function localStorageFlushAndReload(callback) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function localStorageClearAll(callback) {
|
function localStorageClearAll(callback) {
|
||||||
if (SpecialPowers.Services.domStorageManager.nextGenLocalStorageEnabled) {
|
if (SpecialPowers.Services.lsm.nextGenLocalStorageEnabled) {
|
||||||
let qms = SpecialPowers.Services.qms;
|
let qms = SpecialPowers.Services.qms;
|
||||||
let ssm = SpecialPowers.Services.scriptSecurityManager;
|
let ssm = SpecialPowers.Services.scriptSecurityManager;
|
||||||
|
|
||||||
|
@ -92,7 +92,7 @@ function localStorageClearAll(callback) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function localStorageClearDomain(domain, callback) {
|
function localStorageClearDomain(domain, callback) {
|
||||||
if (SpecialPowers.Services.domStorageManager.nextGenLocalStorageEnabled) {
|
if (SpecialPowers.Services.lsm.nextGenLocalStorageEnabled) {
|
||||||
let qms = SpecialPowers.Services.qms;
|
let qms = SpecialPowers.Services.qms;
|
||||||
let principal = SpecialPowers.wrap(document).nodePrincipal;
|
let principal = SpecialPowers.wrap(document).nodePrincipal;
|
||||||
let request = qms.clearStoragesForPrincipal(principal, "default", "ls");
|
let request = qms.clearStoragesForPrincipal(principal, "default", "ls");
|
||||||
|
|
|
@ -89,7 +89,7 @@ function startTest()
|
||||||
localStorageReload(function() {
|
localStorageReload(function() {
|
||||||
is(localStorage.length, 0, "localStorage clean in case 4");
|
is(localStorage.length, 0, "localStorage clean in case 4");
|
||||||
|
|
||||||
if (!SpecialPowers.Services.domStorageManager.nextGenLocalStorageEnabled &&
|
if (!SpecialPowers.Services.lsm.nextGenLocalStorageEnabled &&
|
||||||
SpecialPowers.Cc["@mozilla.org/xre/app-info;1"].getService(
|
SpecialPowers.Cc["@mozilla.org/xre/app-info;1"].getService(
|
||||||
SpecialPowers.Ci.nsIXULRuntime).processType != SpecialPowers.Ci.nsIXULRuntime.PROCESS_TYPE_DEFAULT) {
|
SpecialPowers.Ci.nsIXULRuntime).processType != SpecialPowers.Ci.nsIXULRuntime.PROCESS_TYPE_DEFAULT) {
|
||||||
// Following tests cannot be run in a child/plugin process type
|
// Following tests cannot be run in a child/plugin process type
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
|
|
||||||
function startTest()
|
function startTest()
|
||||||
{
|
{
|
||||||
if (SpecialPowers.Services.domStorageManager.nextGenLocalStorageEnabled) {
|
if (SpecialPowers.Services.lsm.nextGenLocalStorageEnabled) {
|
||||||
ok(true, "Test ignored when the next gen local storage is enabled.");
|
ok(true, "Test ignored when the next gen local storage is enabled.");
|
||||||
SimpleTest.finish();
|
SimpleTest.finish();
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -18,7 +18,7 @@ function doNextTest()
|
||||||
switch (currentTest)
|
switch (currentTest)
|
||||||
{
|
{
|
||||||
case 1:
|
case 1:
|
||||||
if (SpecialPowers.Services.domStorageManager.nextGenLocalStorageEnabled) {
|
if (SpecialPowers.Services.lsm.nextGenLocalStorageEnabled) {
|
||||||
slaveOrigin = "http://test1.example.com";
|
slaveOrigin = "http://test1.example.com";
|
||||||
} else {
|
} else {
|
||||||
slaveOrigin = "http://example.com";
|
slaveOrigin = "http://example.com";
|
||||||
|
@ -50,7 +50,7 @@ function doNextTest()
|
||||||
// Try to set a new 500 bytes key and check we fail because we are over the
|
// Try to set a new 500 bytes key and check we fail because we are over the
|
||||||
// quota.
|
// quota.
|
||||||
case 5:
|
case 5:
|
||||||
if (SpecialPowers.Services.domStorageManager.nextGenLocalStorageEnabled) {
|
if (SpecialPowers.Services.lsm.nextGenLocalStorageEnabled) {
|
||||||
slaveOrigin = "http://test1.example.com";
|
slaveOrigin = "http://test1.example.com";
|
||||||
} else {
|
} else {
|
||||||
slaveOrigin = "https://test2.example.com";
|
slaveOrigin = "https://test2.example.com";
|
||||||
|
@ -67,7 +67,7 @@ function doNextTest()
|
||||||
|
|
||||||
// Now try again to set 500 bytes key, it must succeed.
|
// Now try again to set 500 bytes key, it must succeed.
|
||||||
case 7:
|
case 7:
|
||||||
if (SpecialPowers.Services.domStorageManager.nextGenLocalStorageEnabled) {
|
if (SpecialPowers.Services.lsm.nextGenLocalStorageEnabled) {
|
||||||
slaveOrigin = "http://test1.example.com";
|
slaveOrigin = "http://test1.example.com";
|
||||||
} else {
|
} else {
|
||||||
slaveOrigin = "https://test2.example.com";
|
slaveOrigin = "https://test2.example.com";
|
||||||
|
@ -76,7 +76,7 @@ function doNextTest()
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 8:
|
case 8:
|
||||||
if (SpecialPowers.Services.domStorageManager.nextGenLocalStorageEnabled) {
|
if (SpecialPowers.Services.lsm.nextGenLocalStorageEnabled) {
|
||||||
SimpleTest.executeSoon(doNextTest);
|
SimpleTest.executeSoon(doNextTest);
|
||||||
} else {
|
} else {
|
||||||
// Do a clean up...
|
// Do a clean up...
|
||||||
|
@ -92,7 +92,7 @@ function doNextTest()
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 10:
|
case 10:
|
||||||
if (SpecialPowers.Services.domStorageManager.nextGenLocalStorageEnabled) {
|
if (SpecialPowers.Services.lsm.nextGenLocalStorageEnabled) {
|
||||||
SimpleTest.executeSoon(doNextTest);
|
SimpleTest.executeSoon(doNextTest);
|
||||||
} else {
|
} else {
|
||||||
// Do a clean up...
|
// Do a clean up...
|
||||||
|
|
|
@ -42,7 +42,7 @@ function doNextTest(aWindow) {
|
||||||
// Initialy setup the quota to testing value of 1024B and
|
// Initialy setup the quota to testing value of 1024B and
|
||||||
// set a 500 bytes key with name length 1 (allocate 501 bytes)
|
// set a 500 bytes key with name length 1 (allocate 501 bytes)
|
||||||
case 1:
|
case 1:
|
||||||
if (SpecialPowers.Services.domStorageManager.nextGenLocalStorageEnabled) {
|
if (SpecialPowers.Services.lsm.nextGenLocalStorageEnabled) {
|
||||||
slaveOrigin = "http://test1.example.com";
|
slaveOrigin = "http://test1.example.com";
|
||||||
} else {
|
} else {
|
||||||
slaveOrigin = "http://example.com";
|
slaveOrigin = "http://example.com";
|
||||||
|
@ -74,7 +74,7 @@ function doNextTest(aWindow) {
|
||||||
// Try to set a new 500 bytes key and check we fail because we are over the
|
// Try to set a new 500 bytes key and check we fail because we are over the
|
||||||
// quota.
|
// quota.
|
||||||
case 5:
|
case 5:
|
||||||
if (SpecialPowers.Services.domStorageManager.nextGenLocalStorageEnabled) {
|
if (SpecialPowers.Services.lsm.nextGenLocalStorageEnabled) {
|
||||||
slaveOrigin = "http://test1.example.com";
|
slaveOrigin = "http://test1.example.com";
|
||||||
} else {
|
} else {
|
||||||
slaveOrigin = "https://test2.example.com";
|
slaveOrigin = "https://test2.example.com";
|
||||||
|
@ -91,7 +91,7 @@ function doNextTest(aWindow) {
|
||||||
|
|
||||||
// Now try again to set 500 bytes key, it must succeed.
|
// Now try again to set 500 bytes key, it must succeed.
|
||||||
case 7:
|
case 7:
|
||||||
if (SpecialPowers.Services.domStorageManager.nextGenLocalStorageEnabled) {
|
if (SpecialPowers.Services.lsm.nextGenLocalStorageEnabled) {
|
||||||
slaveOrigin = "http://test1.example.com";
|
slaveOrigin = "http://test1.example.com";
|
||||||
} else {
|
} else {
|
||||||
slaveOrigin = "https://test2.example.com";
|
slaveOrigin = "https://test2.example.com";
|
||||||
|
@ -100,7 +100,7 @@ function doNextTest(aWindow) {
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 8:
|
case 8:
|
||||||
if (SpecialPowers.Services.domStorageManager.nextGenLocalStorageEnabled) {
|
if (SpecialPowers.Services.lsm.nextGenLocalStorageEnabled) {
|
||||||
SimpleTest.executeSoon(() => doNextTest(aWindow));
|
SimpleTest.executeSoon(() => doNextTest(aWindow));
|
||||||
} else {
|
} else {
|
||||||
// Do a clean up...
|
// Do a clean up...
|
||||||
|
@ -116,7 +116,7 @@ function doNextTest(aWindow) {
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 10:
|
case 10:
|
||||||
if (SpecialPowers.Services.domStorageManager.nextGenLocalStorageEnabled) {
|
if (SpecialPowers.Services.lsm.nextGenLocalStorageEnabled) {
|
||||||
SimpleTest.executeSoon(() => doNextTest(aWindow));
|
SimpleTest.executeSoon(() => doNextTest(aWindow));
|
||||||
} else {
|
} else {
|
||||||
// Do a clean up...
|
// Do a clean up...
|
||||||
|
|
|
@ -96,7 +96,7 @@ function doStep()
|
||||||
SimpleTest.waitForExplicitFinish();
|
SimpleTest.waitForExplicitFinish();
|
||||||
|
|
||||||
function startTest() {
|
function startTest() {
|
||||||
if (SpecialPowers.Services.domStorageManager.nextGenLocalStorageEnabled) {
|
if (SpecialPowers.Services.lsm.nextGenLocalStorageEnabled) {
|
||||||
ok(true, "Test ignored when the next gen local storage is enabled.");
|
ok(true, "Test ignored when the next gen local storage is enabled.");
|
||||||
SimpleTest.finish();
|
SimpleTest.finish();
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -6,10 +6,8 @@
|
||||||
|
|
||||||
Classes = [
|
Classes = [
|
||||||
{
|
{
|
||||||
'js_name': 'perms',
|
|
||||||
'cid': '{4f6b5e00-0c36-11d5-a535-0010a401eb10}',
|
'cid': '{4f6b5e00-0c36-11d5-a535-0010a401eb10}',
|
||||||
'contract_ids': ['@mozilla.org/permissionmanager;1'],
|
'contract_ids': ['@mozilla.org/permissionmanager;1'],
|
||||||
'interfaces': ['nsIPermissionManager'],
|
|
||||||
'singleton': True,
|
'singleton': True,
|
||||||
'type': 'nsIPermissionManager',
|
'type': 'nsIPermissionManager',
|
||||||
'constructor': 'mozilla::PermissionManager::GetXPCOMSingleton',
|
'constructor': 'mozilla::PermissionManager::GetXPCOMSingleton',
|
||||||
|
|
|
@ -6,10 +6,8 @@
|
||||||
|
|
||||||
Classes = [
|
Classes = [
|
||||||
{
|
{
|
||||||
'js_name': 'strings',
|
|
||||||
'cid': '{d85a17c1-aa7c-11d2-9b8c-00805f8a16d9}',
|
'cid': '{d85a17c1-aa7c-11d2-9b8c-00805f8a16d9}',
|
||||||
'contract_ids': ['@mozilla.org/intl/stringbundle;1'],
|
'contract_ids': ['@mozilla.org/intl/stringbundle;1'],
|
||||||
'interfaces': ['nsIStringBundleService'],
|
|
||||||
'type': 'nsStringBundleService',
|
'type': 'nsStringBundleService',
|
||||||
'headers': ['/intl/strres/nsStringBundleService.h'],
|
'headers': ['/intl/strres/nsStringBundleService.h'],
|
||||||
'init_method': 'Init',
|
'init_method': 'Init',
|
||||||
|
|
|
@ -6,10 +6,8 @@
|
||||||
|
|
||||||
Classes = [
|
Classes = [
|
||||||
{
|
{
|
||||||
'js_name': 'locale',
|
|
||||||
'cid': '{92735ff4-6384-4ad6-8508-757010e149ee}',
|
'cid': '{92735ff4-6384-4ad6-8508-757010e149ee}',
|
||||||
'contract_ids': ['@mozilla.org/intl/localeservice;1'],
|
'contract_ids': ['@mozilla.org/intl/localeservice;1'],
|
||||||
'interfaces': ['mozILocaleService'],
|
|
||||||
'singleton': True,
|
'singleton': True,
|
||||||
'type': 'mozilla::intl::LocaleService',
|
'type': 'mozilla::intl::LocaleService',
|
||||||
'headers': ['mozilla/intl/LocaleService.h'],
|
'headers': ['mozilla/intl/LocaleService.h'],
|
||||||
|
|
|
@ -24,10 +24,8 @@ Classes = [
|
||||||
'headers': ['/intl/uconv/nsScriptableUConv.h'],
|
'headers': ['/intl/uconv/nsScriptableUConv.h'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'js_name': 'textToSubURI',
|
|
||||||
'cid': '{8b042e22-6f87-11d3-b3c8-00805f8a6670}',
|
'cid': '{8b042e22-6f87-11d3-b3c8-00805f8a6670}',
|
||||||
'contract_ids': ['@mozilla.org/intl/texttosuburi;1'],
|
'contract_ids': ['@mozilla.org/intl/texttosuburi;1'],
|
||||||
'interfaces': ['nsITextToSubURI'],
|
|
||||||
'type': 'nsTextToSubURI',
|
'type': 'nsTextToSubURI',
|
||||||
'headers': ['/intl/uconv/nsTextToSubURI.h'],
|
'headers': ['/intl/uconv/nsTextToSubURI.h'],
|
||||||
},
|
},
|
||||||
|
|
|
@ -120,9 +120,6 @@ interface nsIXPCComponents_Utils : nsISupports
|
||||||
|
|
||||||
readonly attribute nsIXPCComponents_utils_Sandbox Sandbox;
|
readonly attribute nsIXPCComponents_utils_Sandbox Sandbox;
|
||||||
|
|
||||||
[implicit_jscontext]
|
|
||||||
jsval createServicesCache();
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* evalInSandbox is designed to be called from JavaScript only.
|
* evalInSandbox is designed to be called from JavaScript only.
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,157 +0,0 @@
|
||||||
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
||||||
/* vim: set ts=8 sts=2 et sw=2 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/. */
|
|
||||||
|
|
||||||
#include "xpcprivate.h"
|
|
||||||
#include "StaticComponents.h"
|
|
||||||
#include "mozilla/ErrorResult.h"
|
|
||||||
#include "nsJSUtils.h"
|
|
||||||
|
|
||||||
using namespace mozilla;
|
|
||||||
using namespace JS;
|
|
||||||
|
|
||||||
namespace xpc {
|
|
||||||
|
|
||||||
static bool Services_NewEnumerate(JSContext* cx, HandleObject obj,
|
|
||||||
MutableHandleIdVector properties,
|
|
||||||
bool enumerableOnly);
|
|
||||||
static bool Services_Resolve(JSContext* cx, HandleObject obj, HandleId id,
|
|
||||||
bool* resolvedp);
|
|
||||||
static bool Services_MayResolve(const JSAtomState& names, jsid id,
|
|
||||||
JSObject* maybeObj);
|
|
||||||
|
|
||||||
static const JSClassOps sServices_ClassOps = {
|
|
||||||
nullptr, // addProperty
|
|
||||||
nullptr, // delProperty
|
|
||||||
nullptr, // enumerate
|
|
||||||
Services_NewEnumerate, // newEnumerate
|
|
||||||
Services_Resolve, // resolve
|
|
||||||
Services_MayResolve, // mayResolve
|
|
||||||
nullptr, // finalize
|
|
||||||
nullptr, // call
|
|
||||||
nullptr, // hasInstance
|
|
||||||
nullptr, // construct
|
|
||||||
nullptr, // trace
|
|
||||||
};
|
|
||||||
|
|
||||||
static const JSClass sServices_Class = {"JSServices", 0, &sServices_ClassOps};
|
|
||||||
|
|
||||||
JSObject* NewJSServices(JSContext* cx) {
|
|
||||||
return JS_NewObject(cx, &sServices_Class);
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool Services_NewEnumerate(JSContext* cx, HandleObject obj,
|
|
||||||
MutableHandleIdVector properties,
|
|
||||||
bool enumerableOnly) {
|
|
||||||
auto services = xpcom::StaticComponents::GetJSServices();
|
|
||||||
|
|
||||||
if (!properties.reserve(services.Length())) {
|
|
||||||
JS_ReportOutOfMemory(cx);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
RootedId id(cx);
|
|
||||||
RootedString name(cx);
|
|
||||||
for (const auto& service : services) {
|
|
||||||
name = JS_AtomizeString(cx, service.Name().get());
|
|
||||||
if (!name || !JS_StringToId(cx, name, &id)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
properties.infallibleAppend(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
static JSLinearString* GetNameIfLatin1(jsid id) {
|
|
||||||
if (JSID_IS_STRING(id)) {
|
|
||||||
JSLinearString* name = JSID_TO_LINEAR_STRING(id);
|
|
||||||
if (js::LinearStringHasLatin1Chars(name)) {
|
|
||||||
return name;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
static JSObject* GetService(JSContext* cx, const xpcom::JSServiceEntry& service,
|
|
||||||
ErrorResult& aRv) {
|
|
||||||
nsresult rv;
|
|
||||||
nsCOMPtr<nsISupports> inst = service.Module().GetService(&rv);
|
|
||||||
if (!inst) {
|
|
||||||
aRv.Throw(rv);
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
auto ifaces = service.Interfaces();
|
|
||||||
|
|
||||||
if (ifaces.Length() == 0) {
|
|
||||||
// If we weren't given any interfaces, we're expecting either a WebIDL
|
|
||||||
// object or a wrapped JS object. In the former case, the object will handle
|
|
||||||
// its own wrapping, and there's nothing to do. In the latter case, we want
|
|
||||||
// to unwrap the underlying JS object.
|
|
||||||
if (nsCOMPtr<nsIXPConnectWrappedJS> wrappedJS = do_QueryInterface(inst)) {
|
|
||||||
return wrappedJS->GetJSObject();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
JS::RootedValue val(cx);
|
|
||||||
|
|
||||||
const nsIID* iid = ifaces.Length() ? ifaces[0] : nullptr;
|
|
||||||
xpcObjectHelper helper(inst);
|
|
||||||
if (!XPCConvert::NativeInterface2JSObject(cx, &val, helper, iid,
|
|
||||||
/* allowNativeWrapper */ true,
|
|
||||||
&rv)) {
|
|
||||||
aRv.Throw(rv);
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ifaces.Length() > 1) {
|
|
||||||
auto* wn = XPCWrappedNative::Get(&val.toObject());
|
|
||||||
for (const nsIID* iid : Span(ifaces).From(1)) {
|
|
||||||
// Ignore any supplemental interfaces that aren't implemented. Tests do
|
|
||||||
// weird things with some services, and JS can generally handle the
|
|
||||||
// interfaces being absent.
|
|
||||||
Unused << wn->FindTearOff(cx, *iid);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return &val.toObject();
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool Services_Resolve(JSContext* cx, HandleObject obj, HandleId id,
|
|
||||||
bool* resolvedp) {
|
|
||||||
*resolvedp = false;
|
|
||||||
JSLinearString* name = GetNameIfLatin1(id);
|
|
||||||
if (!name) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
nsAutoJSLinearCString nameStr(name);
|
|
||||||
if (const auto* service = xpcom::JSServiceEntry::Lookup(nameStr)) {
|
|
||||||
*resolvedp = true;
|
|
||||||
|
|
||||||
ErrorResult rv;
|
|
||||||
JS::RootedValue val(cx);
|
|
||||||
|
|
||||||
val.setObjectOrNull(GetService(cx, *service, rv));
|
|
||||||
if (rv.MaybeSetPendingException(cx)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return JS_DefinePropertyById(cx, obj, id, val, JSPROP_ENUMERATE);
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool Services_MayResolve(const JSAtomState& names, jsid id,
|
|
||||||
JSObject* maybeObj) {
|
|
||||||
if (JSLinearString* name = GetNameIfLatin1(id)) {
|
|
||||||
nsAutoJSLinearCString nameStr(name);
|
|
||||||
return xpcom::JSServiceEntry::Lookup(nameStr);
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace xpc
|
|
|
@ -1,18 +0,0 @@
|
||||||
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
||||||
/* vim: set ts=8 sts=2 et sw=2 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/. */
|
|
||||||
|
|
||||||
#ifndef JSServices_h
|
|
||||||
#define JSServices_h
|
|
||||||
|
|
||||||
#include "jstypes.h"
|
|
||||||
|
|
||||||
namespace xpc {
|
|
||||||
|
|
||||||
JSObject* NewJSServices(JSContext* cx);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif // ifndef JSServices_h
|
|
|
@ -8,7 +8,6 @@
|
||||||
|
|
||||||
#include "xpcprivate.h"
|
#include "xpcprivate.h"
|
||||||
#include "xpc_make_class.h"
|
#include "xpc_make_class.h"
|
||||||
#include "JSServices.h"
|
|
||||||
#include "XPCJSWeakReference.h"
|
#include "XPCJSWeakReference.h"
|
||||||
#include "WrapperFactory.h"
|
#include "WrapperFactory.h"
|
||||||
#include "nsJSUtils.h"
|
#include "nsJSUtils.h"
|
||||||
|
@ -1319,16 +1318,6 @@ nsXPCComponents_Utils::GetSandbox(nsIXPCComponents_utils_Sandbox** aSandbox) {
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsXPCComponents_Utils::CreateServicesCache(JSContext* aCx,
|
|
||||||
MutableHandleValue aServices) {
|
|
||||||
if (JSObject* services = NewJSServices(aCx)) {
|
|
||||||
aServices.setObject(*services);
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
return NS_ERROR_FAILURE;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
nsXPCComponents_Utils::ReportError(HandleValue error, HandleValue stack,
|
nsXPCComponents_Utils::ReportError(HandleValue error, HandleValue stack,
|
||||||
JSContext* cx) {
|
JSContext* cx) {
|
||||||
|
|
|
@ -5,7 +5,6 @@
|
||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
#include "xpcprivate.h"
|
#include "xpcprivate.h"
|
||||||
#include "xpc_make_class.h"
|
|
||||||
|
|
||||||
#include "nsContentUtils.h"
|
#include "nsContentUtils.h"
|
||||||
#include "BackstagePass.h"
|
#include "BackstagePass.h"
|
||||||
|
|
|
@ -6,10 +6,8 @@
|
||||||
|
|
||||||
Classes = [
|
Classes = [
|
||||||
{
|
{
|
||||||
'js_name': 'scriptloader',
|
|
||||||
'cid': '{929814d6-1dd2-11b2-8e08-82fa0a339b00}',
|
'cid': '{929814d6-1dd2-11b2-8e08-82fa0a339b00}',
|
||||||
'contract_ids': ['@mozilla.org/moz/jssubscript-loader;1'],
|
'contract_ids': ['@mozilla.org/moz/jssubscript-loader;1'],
|
||||||
'interfaces': ['mozIJSSubScriptLoader'],
|
|
||||||
'type': 'mozJSSubScriptLoader',
|
'type': 'mozJSSubScriptLoader',
|
||||||
'headers': ['/js/xpconnect/loader/mozJSSubScriptLoader.h'],
|
'headers': ['/js/xpconnect/loader/mozJSSubScriptLoader.h'],
|
||||||
},
|
},
|
||||||
|
|
|
@ -13,7 +13,6 @@ EXPORTS += [
|
||||||
|
|
||||||
UNIFIED_SOURCES += [
|
UNIFIED_SOURCES += [
|
||||||
'ExportHelpers.cpp',
|
'ExportHelpers.cpp',
|
||||||
'JSServices.cpp',
|
|
||||||
'nsXPConnect.cpp',
|
'nsXPConnect.cpp',
|
||||||
'Sandbox.cpp',
|
'Sandbox.cpp',
|
||||||
'XPCCallContext.cpp',
|
'XPCCallContext.cpp',
|
||||||
|
@ -54,7 +53,6 @@ include('/ipc/chromium/chromium-config.mozbuild')
|
||||||
FINAL_LIBRARY = 'xul'
|
FINAL_LIBRARY = 'xul'
|
||||||
|
|
||||||
LOCAL_INCLUDES += [
|
LOCAL_INCLUDES += [
|
||||||
'!/xpcom/components',
|
|
||||||
'../loader',
|
'../loader',
|
||||||
'../wrappers',
|
'../wrappers',
|
||||||
'/caps',
|
'/caps',
|
||||||
|
@ -65,7 +63,6 @@ LOCAL_INCLUDES += [
|
||||||
'/layout/base',
|
'/layout/base',
|
||||||
'/layout/style',
|
'/layout/style',
|
||||||
'/netwerk/base',
|
'/netwerk/base',
|
||||||
'/xpcom/components',
|
|
||||||
]
|
]
|
||||||
|
|
||||||
if CONFIG['CC_TYPE'] in ('clang', 'gcc'):
|
if CONFIG['CC_TYPE'] in ('clang', 'gcc'):
|
||||||
|
|
|
@ -87,7 +87,6 @@ Classes = [
|
||||||
'headers': ['mozilla/dom/BlobURL.h'],
|
'headers': ['mozilla/dom/BlobURL.h'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'js_name': 'cpmm',
|
|
||||||
'cid': '{fe0ff7c3-8e97-448b-9a8a-86afdb9fbbb6}',
|
'cid': '{fe0ff7c3-8e97-448b-9a8a-86afdb9fbbb6}',
|
||||||
'contract_ids': ['@mozilla.org/childprocessmessagemanager;1'],
|
'contract_ids': ['@mozilla.org/childprocessmessagemanager;1'],
|
||||||
'legacy_constructor': 'CreateChildMessageManager',
|
'legacy_constructor': 'CreateChildMessageManager',
|
||||||
|
@ -149,20 +148,16 @@ Classes = [
|
||||||
'headers': ['nsStructuredCloneContainer.h'],
|
'headers': ['nsStructuredCloneContainer.h'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'js_name': 'DOMRequest',
|
|
||||||
'cid': '{3160e271-138d-4cc7-9d63-6429f16957c7}',
|
'cid': '{3160e271-138d-4cc7-9d63-6429f16957c7}',
|
||||||
'contract_ids': ['@mozilla.org/dom/dom-request-service;1'],
|
'contract_ids': ['@mozilla.org/dom/dom-request-service;1'],
|
||||||
'interfaces': ['nsIDOMRequestService'],
|
|
||||||
'singleton': True,
|
'singleton': True,
|
||||||
'type': 'mozilla::dom::DOMRequestService',
|
'type': 'mozilla::dom::DOMRequestService',
|
||||||
'headers': ['mozilla/dom/DOMRequest.h'],
|
'headers': ['mozilla/dom/DOMRequest.h'],
|
||||||
'constructor': 'mozilla::dom::DOMRequestService::FactoryCreate',
|
'constructor': 'mozilla::dom::DOMRequestService::FactoryCreate',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'js_name': 'domStorageManager',
|
|
||||||
'cid': '{656db07c-aa80-49e4-bce8-e431baae697d}',
|
'cid': '{656db07c-aa80-49e4-bce8-e431baae697d}',
|
||||||
'contract_ids': ['@mozilla.org/dom/localStorage-manager;1'],
|
'contract_ids': ['@mozilla.org/dom/localStorage-manager;1'],
|
||||||
'interfaces': ['nsIDOMStorageManager', 'nsILocalStorageManager'],
|
|
||||||
'legacy_constructor': 'LocalStorageManagerConstructor',
|
'legacy_constructor': 'LocalStorageManagerConstructor',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -171,10 +166,8 @@ Classes = [
|
||||||
'legacy_constructor': 'SessionStorageManagerConstructor',
|
'legacy_constructor': 'SessionStorageManagerConstructor',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'js_name': 'qms',
|
|
||||||
'cid': '{5a75c25a-5e7e-4d90-8f7c-07eb15cc0aa8}',
|
'cid': '{5a75c25a-5e7e-4d90-8f7c-07eb15cc0aa8}',
|
||||||
'contract_ids': ['@mozilla.org/dom/quota-manager-service;1'],
|
'contract_ids': ['@mozilla.org/dom/quota-manager-service;1'],
|
||||||
'interfaces': ['nsIQuotaManagerService'],
|
|
||||||
'singleton': True,
|
'singleton': True,
|
||||||
'type': 'mozilla::dom::quota::QuotaManagerService',
|
'type': 'mozilla::dom::quota::QuotaManagerService',
|
||||||
'headers': ['mozilla/dom/quota/QuotaManagerService.h'],
|
'headers': ['mozilla/dom/quota/QuotaManagerService.h'],
|
||||||
|
@ -196,10 +189,8 @@ Classes = [
|
||||||
'constructor': 'mozilla::dom::WorkerDebuggerManager::GetInstance',
|
'constructor': 'mozilla::dom::WorkerDebuggerManager::GetInstance',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'js_name': 'els',
|
|
||||||
'cid': '{baa34652-f1f1-4185-b224-244ee82a413a}',
|
'cid': '{baa34652-f1f1-4185-b224-244ee82a413a}',
|
||||||
'contract_ids': ['@mozilla.org/eventlistenerservice;1'],
|
'contract_ids': ['@mozilla.org/eventlistenerservice;1'],
|
||||||
'interfaces': ['nsIEventListenerService'],
|
|
||||||
'type': 'nsIEventListenerService',
|
'type': 'nsIEventListenerService',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -209,10 +200,8 @@ Classes = [
|
||||||
'headers': ['/caps/ExpandedPrincipal.h'],
|
'headers': ['/caps/ExpandedPrincipal.h'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'js_name': 'focus',
|
|
||||||
'cid': '{cf7fd51f-aba2-44c1-9ff0-11f7508efcd4}',
|
'cid': '{cf7fd51f-aba2-44c1-9ff0-11f7508efcd4}',
|
||||||
'contract_ids': ['@mozilla.org/focus-manager;1'],
|
'contract_ids': ['@mozilla.org/focus-manager;1'],
|
||||||
'interfaces': ['nsIFocusManager'],
|
|
||||||
'type': 'nsIFocusManager',
|
'type': 'nsIFocusManager',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -232,7 +221,6 @@ Classes = [
|
||||||
'constructor': 'mozilla::dom::Geolocation::NonWindowSingleton',
|
'constructor': 'mozilla::dom::Geolocation::NonWindowSingleton',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'js_name': 'mm',
|
|
||||||
'cid': '{130b016f-fad7-4526-bc7f-827dabf79265}',
|
'cid': '{130b016f-fad7-4526-bc7f-827dabf79265}',
|
||||||
'contract_ids': ['@mozilla.org/globalmessagemanager;1'],
|
'contract_ids': ['@mozilla.org/globalmessagemanager;1'],
|
||||||
'legacy_constructor': 'CreateGlobalMessageManager',
|
'legacy_constructor': 'CreateGlobalMessageManager',
|
||||||
|
@ -328,7 +316,6 @@ Classes = [
|
||||||
'init_method': 'Init',
|
'init_method': 'Init',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'js_name': 'ppmm',
|
|
||||||
'cid': '{2a058404-fb85-44ec-8cfd-e8cbdc988dc1}',
|
'cid': '{2a058404-fb85-44ec-8cfd-e8cbdc988dc1}',
|
||||||
'contract_ids': ['@mozilla.org/parentprocessmessagemanager;1'],
|
'contract_ids': ['@mozilla.org/parentprocessmessagemanager;1'],
|
||||||
'legacy_constructor': 'CreateParentMessageManager',
|
'legacy_constructor': 'CreateParentMessageManager',
|
||||||
|
@ -386,10 +373,8 @@ Classes = [
|
||||||
'headers': ['/dom/bindings/nsScriptError.h'],
|
'headers': ['/dom/bindings/nsScriptError.h'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'js_name': 'scriptSecurityManager',
|
|
||||||
'cid': '{7ee2a4c0-4b93-17d3-ba18-0060b0f199a2}',
|
'cid': '{7ee2a4c0-4b93-17d3-ba18-0060b0f199a2}',
|
||||||
'contract_ids': ['@mozilla.org/scriptsecuritymanager;1'],
|
'contract_ids': ['@mozilla.org/scriptsecuritymanager;1'],
|
||||||
'interfaces': ['nsIScriptSecurityManager'],
|
|
||||||
'legacy_constructor': 'Construct_nsIScriptSecurityManager',
|
'legacy_constructor': 'Construct_nsIScriptSecurityManager',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -12,13 +12,11 @@ Classes = [
|
||||||
'constructor': 'PromptCollection',
|
'constructor': 'PromptCollection',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'js_name': 'prompt',
|
|
||||||
'cid': '{076ac188-23c1-4390-aa08-7ef1f78ca5d9}',
|
'cid': '{076ac188-23c1-4390-aa08-7ef1f78ca5d9}',
|
||||||
'contract_ids': [
|
'contract_ids': [
|
||||||
'@mozilla.org/prompter;1',
|
'@mozilla.org/prompter;1',
|
||||||
'@mozilla.org/embedcomp/prompt-service;1',
|
'@mozilla.org/embedcomp/prompt-service;1',
|
||||||
],
|
],
|
||||||
'interfaces': ['nsIPromptService'],
|
|
||||||
'jsm': 'resource://gre/modules/GeckoViewPrompt.jsm',
|
'jsm': 'resource://gre/modules/GeckoViewPrompt.jsm',
|
||||||
'constructor': 'PromptFactory',
|
'constructor': 'PromptFactory',
|
||||||
},
|
},
|
||||||
|
|
|
@ -12,10 +12,8 @@ UnloadFunc = 'mozilla::UnloadPrefsModule'
|
||||||
|
|
||||||
Classes = [
|
Classes = [
|
||||||
{
|
{
|
||||||
'js_name': 'prefs',
|
|
||||||
'cid': '{91ca2441-050f-4f7c-9df8-75b40ea40156}',
|
'cid': '{91ca2441-050f-4f7c-9df8-75b40ea40156}',
|
||||||
'contract_ids': ['@mozilla.org/preferences-service;1'],
|
'contract_ids': ['@mozilla.org/preferences-service;1'],
|
||||||
'interfaces': ['nsIPrefService', 'nsIPrefBranch'],
|
|
||||||
'singleton': True,
|
'singleton': True,
|
||||||
'type': 'mozilla::Preferences',
|
'type': 'mozilla::Preferences',
|
||||||
'headers': ['mozilla/Preferences.h'],
|
'headers': ['mozilla/Preferences.h'],
|
||||||
|
|
|
@ -19,21 +19,17 @@ Classes = [
|
||||||
'headers': ['/netwerk/base/ArrayBufferInputStream.h'],
|
'headers': ['/netwerk/base/ArrayBufferInputStream.h'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'js_name': 'loadContextInfo',
|
|
||||||
'cid': '{62d4b190-3642-4450-b019-d1c1fba56025}',
|
'cid': '{62d4b190-3642-4450-b019-d1c1fba56025}',
|
||||||
'contract_ids': ['@mozilla.org/load-context-info-factory;1'],
|
'contract_ids': ['@mozilla.org/load-context-info-factory;1'],
|
||||||
'interfaces': ['nsILoadContextInfoFactory'],
|
|
||||||
'type': 'mozilla::net::LoadContextInfoFactory',
|
'type': 'mozilla::net::LoadContextInfoFactory',
|
||||||
'headers': ['mozilla/LoadContextInfo.h'],
|
'headers': ['mozilla/LoadContextInfo.h'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'js_name': 'cache2',
|
|
||||||
'cid': '{ea70b098-5014-4e21-aee1-75e6b2c4b8e0}',
|
'cid': '{ea70b098-5014-4e21-aee1-75e6b2c4b8e0}',
|
||||||
'contract_ids': [
|
'contract_ids': [
|
||||||
'@mozilla.org/netwerk/cache-storage-service;1',
|
'@mozilla.org/netwerk/cache-storage-service;1',
|
||||||
'@mozilla.org/network/cache-storage-service;1',
|
'@mozilla.org/network/cache-storage-service;1',
|
||||||
],
|
],
|
||||||
'interfaces': ['nsICacheStorageService'],
|
|
||||||
'singleton': True,
|
'singleton': True,
|
||||||
'type': 'mozilla::net::CacheStorageService',
|
'type': 'mozilla::net::CacheStorageService',
|
||||||
'headers': ['CacheStorageService.h'],
|
'headers': ['CacheStorageService.h'],
|
||||||
|
@ -132,10 +128,8 @@ Classes = [
|
||||||
'headers': ['/netwerk/base/nsDownloader.h'],
|
'headers': ['/netwerk/base/nsDownloader.h'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'js_name': 'eTLD',
|
|
||||||
'cid': '{cb9abbae-66b6-4609-8594-5c4ff300888e}',
|
'cid': '{cb9abbae-66b6-4609-8594-5c4ff300888e}',
|
||||||
'contract_ids': ['@mozilla.org/network/effective-tld-service;1'],
|
'contract_ids': ['@mozilla.org/network/effective-tld-service;1'],
|
||||||
'interfaces': ['nsIEffectiveTLDService'],
|
|
||||||
'singleton': True,
|
'singleton': True,
|
||||||
'type': 'nsEffectiveTLDService',
|
'type': 'nsEffectiveTLDService',
|
||||||
'headers': ['/netwerk/dns/nsEffectiveTLDService.h'],
|
'headers': ['/netwerk/dns/nsEffectiveTLDService.h'],
|
||||||
|
@ -199,13 +193,11 @@ Classes = [
|
||||||
'headers': ['nsInputStreamPump.h'],
|
'headers': ['nsInputStreamPump.h'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'js_name': 'io',
|
|
||||||
'cid': '{9ac9e770-18bc-11d3-9337-00104ba0fd40}',
|
'cid': '{9ac9e770-18bc-11d3-9337-00104ba0fd40}',
|
||||||
'contract_ids': [
|
'contract_ids': [
|
||||||
'@mozilla.org/network/io-service;1',
|
'@mozilla.org/network/io-service;1',
|
||||||
'@mozilla.org/network/util;1',
|
'@mozilla.org/network/util;1',
|
||||||
],
|
],
|
||||||
'interfaces': ['nsIIOService', 'nsISpeculativeConnect', 'nsINetUtil'],
|
|
||||||
'singleton': True,
|
'singleton': True,
|
||||||
'type': 'mozilla::net::nsIOService',
|
'type': 'mozilla::net::nsIOService',
|
||||||
'headers': ['/netwerk/base/nsIOService.h'],
|
'headers': ['/netwerk/base/nsIOService.h'],
|
||||||
|
@ -584,13 +576,11 @@ Classes = [
|
||||||
'processes': ProcessSelector.ALLOW_IN_SOCKET_PROCESS,
|
'processes': ProcessSelector.ALLOW_IN_SOCKET_PROCESS,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'js_name': 'cookies',
|
|
||||||
'cid': '{c375fa80-150f-11d6-a618-0010a401eb10}',
|
'cid': '{c375fa80-150f-11d6-a618-0010a401eb10}',
|
||||||
'contract_ids': [
|
'contract_ids': [
|
||||||
'@mozilla.org/cookieService;1',
|
'@mozilla.org/cookieService;1',
|
||||||
'@mozilla.org/cookiemanager;1',
|
'@mozilla.org/cookiemanager;1',
|
||||||
],
|
],
|
||||||
'interfaces': ['nsICookieManager'],
|
|
||||||
'singleton': True,
|
'singleton': True,
|
||||||
'type': 'nsICookieService',
|
'type': 'nsICookieService',
|
||||||
'constructor': 'mozilla::net::CookieService::GetXPCOMSingleton',
|
'constructor': 'mozilla::net::CookieService::GetXPCOMSingleton',
|
||||||
|
|
|
@ -18,7 +18,7 @@ CookieXPCShellUtils.init(this);
|
||||||
|
|
||||||
XPCOMUtils.defineLazyServiceGetter(
|
XPCOMUtils.defineLazyServiceGetter(
|
||||||
Services,
|
Services,
|
||||||
"cookiesvc",
|
"cookies",
|
||||||
"@mozilla.org/cookieService;1",
|
"@mozilla.org/cookieService;1",
|
||||||
"nsICookieService"
|
"nsICookieService"
|
||||||
);
|
);
|
||||||
|
@ -162,7 +162,7 @@ function do_load_profile(generator) {
|
||||||
// Set a single session cookie using http and test the cookie count
|
// Set a single session cookie using http and test the cookie count
|
||||||
// against 'expected'
|
// against 'expected'
|
||||||
function do_set_single_http_cookie(uri, channel, expected) {
|
function do_set_single_http_cookie(uri, channel, expected) {
|
||||||
Services.cookiesvc.setCookieStringFromHttp(uri, "foo=bar", channel);
|
Services.cookies.setCookieStringFromHttp(uri, "foo=bar", channel);
|
||||||
Assert.equal(Services.cookiemgr.countCookiesFromHost(uri.host), expected);
|
Assert.equal(Services.cookiemgr.countCookiesFromHost(uri.host), expected);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -198,7 +198,7 @@ async function do_set_cookies(uri, channel, session, expected) {
|
||||||
Assert.equal(Services.cookiemgr.countCookiesFromHost(uri.host), expected[0]);
|
Assert.equal(Services.cookiemgr.countCookiesFromHost(uri.host), expected[0]);
|
||||||
|
|
||||||
// via http request
|
// via http request
|
||||||
Services.cookiesvc.setCookieStringFromHttp(uri, "hot=dog" + suffix, channel);
|
Services.cookies.setCookieStringFromHttp(uri, "hot=dog" + suffix, channel);
|
||||||
Assert.equal(Services.cookiemgr.countCookiesFromHost(uri.host), expected[1]);
|
Assert.equal(Services.cookiemgr.countCookiesFromHost(uri.host), expected[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -213,7 +213,7 @@ async function run_test_2() {
|
||||||
// Load the profile and populate it.
|
// Load the profile and populate it.
|
||||||
do_load_profile();
|
do_load_profile();
|
||||||
|
|
||||||
Services.cookiesvc.runInTransaction(_ => {
|
Services.cookies.runInTransaction(_ => {
|
||||||
let uri = NetUtil.newURI("http://foo.com/");
|
let uri = NetUtil.newURI("http://foo.com/");
|
||||||
const channel = NetUtil.newChannel({
|
const channel = NetUtil.newChannel({
|
||||||
uri,
|
uri,
|
||||||
|
@ -223,7 +223,7 @@ async function run_test_2() {
|
||||||
|
|
||||||
for (let i = 0; i < 3000; ++i) {
|
for (let i = 0; i < 3000; ++i) {
|
||||||
let uri = NetUtil.newURI("http://" + i + ".com/");
|
let uri = NetUtil.newURI("http://" + i + ".com/");
|
||||||
Services.cookiesvc.setCookieStringFromHttp(
|
Services.cookies.setCookieStringFromHttp(
|
||||||
uri,
|
uri,
|
||||||
"oh=hai; max-age=1000",
|
"oh=hai; max-age=1000",
|
||||||
channel
|
channel
|
||||||
|
@ -278,7 +278,7 @@ async function run_test_3() {
|
||||||
|
|
||||||
// Load the profile and populate it.
|
// Load the profile and populate it.
|
||||||
do_load_profile();
|
do_load_profile();
|
||||||
Services.cookiesvc.runInTransaction(_ => {
|
Services.cookies.runInTransaction(_ => {
|
||||||
let uri = NetUtil.newURI("http://hither.com/");
|
let uri = NetUtil.newURI("http://hither.com/");
|
||||||
let channel = NetUtil.newChannel({
|
let channel = NetUtil.newChannel({
|
||||||
uri,
|
uri,
|
||||||
|
@ -286,7 +286,7 @@ async function run_test_3() {
|
||||||
contentPolicyType: Ci.nsIContentPolicy.TYPE_DOCUMENT,
|
contentPolicyType: Ci.nsIContentPolicy.TYPE_DOCUMENT,
|
||||||
});
|
});
|
||||||
for (let i = 0; i < 10; ++i) {
|
for (let i = 0; i < 10; ++i) {
|
||||||
Services.cookiesvc.setCookieStringFromHttp(
|
Services.cookies.setCookieStringFromHttp(
|
||||||
uri,
|
uri,
|
||||||
"oh" + i + "=hai; max-age=1000",
|
"oh" + i + "=hai; max-age=1000",
|
||||||
channel
|
channel
|
||||||
|
@ -299,7 +299,7 @@ async function run_test_3() {
|
||||||
contentPolicyType: Ci.nsIContentPolicy.TYPE_DOCUMENT,
|
contentPolicyType: Ci.nsIContentPolicy.TYPE_DOCUMENT,
|
||||||
});
|
});
|
||||||
for (let i = 10; i < 3000; ++i) {
|
for (let i = 10; i < 3000; ++i) {
|
||||||
Services.cookiesvc.setCookieStringFromHttp(
|
Services.cookies.setCookieStringFromHttp(
|
||||||
uri,
|
uri,
|
||||||
"oh" + i + "=hai; max-age=1000",
|
"oh" + i + "=hai; max-age=1000",
|
||||||
channel
|
channel
|
||||||
|
@ -368,7 +368,7 @@ async function run_test_3() {
|
||||||
async function run_test_4() {
|
async function run_test_4() {
|
||||||
// Load the profile and populate it.
|
// Load the profile and populate it.
|
||||||
do_load_profile();
|
do_load_profile();
|
||||||
Services.cookiesvc.runInTransaction(_ => {
|
Services.cookies.runInTransaction(_ => {
|
||||||
let uri = NetUtil.newURI("http://foo.com/");
|
let uri = NetUtil.newURI("http://foo.com/");
|
||||||
let channel = NetUtil.newChannel({
|
let channel = NetUtil.newChannel({
|
||||||
uri,
|
uri,
|
||||||
|
@ -377,7 +377,7 @@ async function run_test_4() {
|
||||||
});
|
});
|
||||||
for (let i = 0; i < 3000; ++i) {
|
for (let i = 0; i < 3000; ++i) {
|
||||||
let uri = NetUtil.newURI("http://" + i + ".com/");
|
let uri = NetUtil.newURI("http://" + i + ".com/");
|
||||||
Services.cookiesvc.setCookieStringFromHttp(
|
Services.cookies.setCookieStringFromHttp(
|
||||||
uri,
|
uri,
|
||||||
"oh=hai; max-age=1000",
|
"oh=hai; max-age=1000",
|
||||||
channel
|
channel
|
||||||
|
@ -437,21 +437,21 @@ async function run_test_4() {
|
||||||
async function run_test_5() {
|
async function run_test_5() {
|
||||||
// Load the profile and populate it.
|
// Load the profile and populate it.
|
||||||
do_load_profile();
|
do_load_profile();
|
||||||
Services.cookiesvc.runInTransaction(_ => {
|
Services.cookies.runInTransaction(_ => {
|
||||||
let uri = NetUtil.newURI("http://bar.com/");
|
let uri = NetUtil.newURI("http://bar.com/");
|
||||||
const channel = NetUtil.newChannel({
|
const channel = NetUtil.newChannel({
|
||||||
uri,
|
uri,
|
||||||
loadUsingSystemPrincipal: true,
|
loadUsingSystemPrincipal: true,
|
||||||
contentPolicyType: Ci.nsIContentPolicy.TYPE_DOCUMENT,
|
contentPolicyType: Ci.nsIContentPolicy.TYPE_DOCUMENT,
|
||||||
});
|
});
|
||||||
Services.cookiesvc.setCookieStringFromHttp(
|
Services.cookies.setCookieStringFromHttp(
|
||||||
uri,
|
uri,
|
||||||
"oh=hai; path=/; max-age=1000",
|
"oh=hai; path=/; max-age=1000",
|
||||||
channel
|
channel
|
||||||
);
|
);
|
||||||
for (let i = 0; i < 3000; ++i) {
|
for (let i = 0; i < 3000; ++i) {
|
||||||
let uri = NetUtil.newURI("http://" + i + ".com/");
|
let uri = NetUtil.newURI("http://" + i + ".com/");
|
||||||
Services.cookiesvc.setCookieStringFromHttp(
|
Services.cookies.setCookieStringFromHttp(
|
||||||
uri,
|
uri,
|
||||||
"oh=hai; max-age=1000",
|
"oh=hai; max-age=1000",
|
||||||
channel
|
channel
|
||||||
|
|
|
@ -45,7 +45,7 @@ add_task(async () => {
|
||||||
let uri2 = NetUtil.newURI("http://bar.com/bar.html");
|
let uri2 = NetUtil.newURI("http://bar.com/bar.html");
|
||||||
|
|
||||||
// Set a cookie for host 1.
|
// Set a cookie for host 1.
|
||||||
Services.cookiesvc.setCookieStringFromHttp(
|
Services.cookies.setCookieStringFromHttp(
|
||||||
uri1,
|
uri1,
|
||||||
"oh=hai; max-age=1000",
|
"oh=hai; max-age=1000",
|
||||||
make_channel(uri1.spec)
|
make_channel(uri1.spec)
|
||||||
|
@ -61,11 +61,7 @@ add_task(async () => {
|
||||||
chan2.QueryInterface(Ci.nsIPrivateBrowsingChannel);
|
chan2.QueryInterface(Ci.nsIPrivateBrowsingChannel);
|
||||||
chan2.setPrivate(true);
|
chan2.setPrivate(true);
|
||||||
|
|
||||||
Services.cookiesvc.setCookieStringFromHttp(
|
Services.cookies.setCookieStringFromHttp(uri2, "oh=hai; max-age=1000", chan2);
|
||||||
uri2,
|
|
||||||
"oh=hai; max-age=1000",
|
|
||||||
chan2
|
|
||||||
);
|
|
||||||
Assert.equal(await getCookieStringFromPrivateDocument(uri1.spec), "");
|
Assert.equal(await getCookieStringFromPrivateDocument(uri1.spec), "");
|
||||||
Assert.equal(await getCookieStringFromPrivateDocument(uri2.spec), "oh=hai");
|
Assert.equal(await getCookieStringFromPrivateDocument(uri2.spec), "oh=hai");
|
||||||
|
|
||||||
|
@ -74,11 +70,7 @@ add_task(async () => {
|
||||||
Assert.equal(await getCookieStringFromPrivateDocument(uri1.spec), "");
|
Assert.equal(await getCookieStringFromPrivateDocument(uri1.spec), "");
|
||||||
Assert.equal(await getCookieStringFromPrivateDocument(uri2.spec), "");
|
Assert.equal(await getCookieStringFromPrivateDocument(uri2.spec), "");
|
||||||
|
|
||||||
Services.cookiesvc.setCookieStringFromHttp(
|
Services.cookies.setCookieStringFromHttp(uri2, "oh=hai; max-age=1000", chan2);
|
||||||
uri2,
|
|
||||||
"oh=hai; max-age=1000",
|
|
||||||
chan2
|
|
||||||
);
|
|
||||||
Assert.equal(await getCookieStringFromPrivateDocument(uri2.spec), "oh=hai");
|
Assert.equal(await getCookieStringFromPrivateDocument(uri2.spec), "oh=hai");
|
||||||
|
|
||||||
// Leave private browsing mode and check counts.
|
// Leave private browsing mode and check counts.
|
||||||
|
@ -97,11 +89,7 @@ add_task(async () => {
|
||||||
// Enter private browsing mode, set a cookie for host 2, and check the counts.
|
// Enter private browsing mode, set a cookie for host 2, and check the counts.
|
||||||
Assert.equal(await getCookieStringFromPrivateDocument(uri1.spec), "");
|
Assert.equal(await getCookieStringFromPrivateDocument(uri1.spec), "");
|
||||||
Assert.equal(await getCookieStringFromPrivateDocument(uri2.spec), "");
|
Assert.equal(await getCookieStringFromPrivateDocument(uri2.spec), "");
|
||||||
Services.cookiesvc.setCookieStringFromHttp(
|
Services.cookies.setCookieStringFromHttp(uri2, "oh=hai; max-age=1000", chan2);
|
||||||
uri2,
|
|
||||||
"oh=hai; max-age=1000",
|
|
||||||
chan2
|
|
||||||
);
|
|
||||||
Assert.equal(await getCookieStringFromPrivateDocument(uri2.spec), "oh=hai");
|
Assert.equal(await getCookieStringFromPrivateDocument(uri2.spec), "oh=hai");
|
||||||
|
|
||||||
// Fake a profile change.
|
// Fake a profile change.
|
||||||
|
|
|
@ -54,11 +54,11 @@ add_task(async () => {
|
||||||
""
|
""
|
||||||
);
|
);
|
||||||
|
|
||||||
Assert.equal(Services.cookiesvc.getCookieStringFromHttp(uri, channel), "");
|
Assert.equal(Services.cookies.getCookieStringFromHttp(uri, channel), "");
|
||||||
|
|
||||||
await CookieXPCShellUtils.setCookieToDocument(uri.spec, "oh2=hai");
|
await CookieXPCShellUtils.setCookieToDocument(uri.spec, "oh2=hai");
|
||||||
|
|
||||||
Services.cookiesvc.setCookieStringFromHttp(uri, "oh3=hai", channel);
|
Services.cookies.setCookieStringFromHttp(uri, "oh3=hai", channel);
|
||||||
Assert.equal(
|
Assert.equal(
|
||||||
await CookieXPCShellUtils.getCookieStringFromDocument("http://foo.com/"),
|
await CookieXPCShellUtils.getCookieStringFromDocument("http://foo.com/"),
|
||||||
""
|
""
|
||||||
|
|
|
@ -36,7 +36,7 @@ add_task(async () => {
|
||||||
});
|
});
|
||||||
for (let i = 0; i < CMAX; ++i) {
|
for (let i = 0; i < CMAX; ++i) {
|
||||||
let uri = NetUtil.newURI("http://" + i + ".com/");
|
let uri = NetUtil.newURI("http://" + i + ".com/");
|
||||||
Services.cookiesvc.setCookieStringFromHttp(
|
Services.cookies.setCookieStringFromHttp(
|
||||||
uri,
|
uri,
|
||||||
"oh=hai; max-age=1000",
|
"oh=hai; max-age=1000",
|
||||||
channel
|
channel
|
||||||
|
|
|
@ -182,7 +182,7 @@ function* run_test_1(generator) {
|
||||||
});
|
});
|
||||||
|
|
||||||
// Load the profile and populate it.
|
// Load the profile and populate it.
|
||||||
Services.cookiesvc.setCookieStringFromHttp(
|
Services.cookies.setCookieStringFromHttp(
|
||||||
uri,
|
uri,
|
||||||
"oh=hai; max-age=1000",
|
"oh=hai; max-age=1000",
|
||||||
channel
|
channel
|
||||||
|
@ -217,7 +217,7 @@ function* run_test_2(generator) {
|
||||||
loadUsingSystemPrincipal: true,
|
loadUsingSystemPrincipal: true,
|
||||||
contentPolicyType: Ci.nsIContentPolicy.TYPE_DOCUMENT,
|
contentPolicyType: Ci.nsIContentPolicy.TYPE_DOCUMENT,
|
||||||
});
|
});
|
||||||
Services.cookiesvc.setCookieStringFromHttp(
|
Services.cookies.setCookieStringFromHttp(
|
||||||
uri,
|
uri,
|
||||||
"oh=hai; max-age=1000",
|
"oh=hai; max-age=1000",
|
||||||
channel
|
channel
|
||||||
|
|
|
@ -6,10 +6,8 @@
|
||||||
|
|
||||||
Classes = [
|
Classes = [
|
||||||
{
|
{
|
||||||
'js_name': 'storage',
|
|
||||||
'cid': '{bbbb1d61-438f-4436-92ed-8308e5830fb0}',
|
'cid': '{bbbb1d61-438f-4436-92ed-8308e5830fb0}',
|
||||||
'contract_ids': ['@mozilla.org/storage/service;1'],
|
'contract_ids': ['@mozilla.org/storage/service;1'],
|
||||||
'interfaces': ['mozIStorageService'],
|
|
||||||
'singleton': True,
|
'singleton': True,
|
||||||
'type': 'mozilla::storage::Service',
|
'type': 'mozilla::storage::Service',
|
||||||
'headers': ['/storage/mozStorageService.h'],
|
'headers': ['/storage/mozStorageService.h'],
|
||||||
|
|
|
@ -98,10 +98,8 @@ Classes = [
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'name': 'AppStartup',
|
'name': 'AppStartup',
|
||||||
'js_name': 'startup',
|
|
||||||
'cid': '{7dd4d320-c84b-4624-8d45-7bb9b2356977}',
|
'cid': '{7dd4d320-c84b-4624-8d45-7bb9b2356977}',
|
||||||
'contract_ids': ['@mozilla.org/toolkit/app-startup;1'],
|
'contract_ids': ['@mozilla.org/toolkit/app-startup;1'],
|
||||||
'interfaces': ['nsIAppStartup'],
|
|
||||||
'type': 'nsAppStartup',
|
'type': 'nsAppStartup',
|
||||||
'headers': ['/toolkit/components/startup/nsAppStartup.h'],
|
'headers': ['/toolkit/components/startup/nsAppStartup.h'],
|
||||||
'init_method': 'Init',
|
'init_method': 'Init',
|
||||||
|
|
|
@ -6,10 +6,8 @@
|
||||||
|
|
||||||
Classes = [
|
Classes = [
|
||||||
{
|
{
|
||||||
'js_name': 'clearData',
|
|
||||||
'cid': '{0c06583d-7dd8-4293-b1a5-912205f779aa}',
|
'cid': '{0c06583d-7dd8-4293-b1a5-912205f779aa}',
|
||||||
'contract_ids': ['@mozilla.org/clear-data-service;1'],
|
'contract_ids': ['@mozilla.org/clear-data-service;1'],
|
||||||
'interfaces': ['nsIClearDataService'],
|
|
||||||
'jsm': 'resource://gre/modules/ClearDataService.jsm',
|
'jsm': 'resource://gre/modules/ClearDataService.jsm',
|
||||||
'constructor': 'ClearDataService',
|
'constructor': 'ClearDataService',
|
||||||
},
|
},
|
||||||
|
|
|
@ -18,7 +18,7 @@ const { TelemetryController } = ChromeUtils.import(
|
||||||
ChromeUtils.import("resource://gre/modules/Timer.jsm", this);
|
ChromeUtils.import("resource://gre/modules/Timer.jsm", this);
|
||||||
ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm", this);
|
ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm", this);
|
||||||
|
|
||||||
var EXPORTED_SYMBOLS = ["CrashManager", "getCrashManager"];
|
var EXPORTED_SYMBOLS = ["CrashManager"];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* How long to wait after application startup before crash event files are
|
* How long to wait after application startup before crash event files are
|
||||||
|
@ -1545,7 +1545,3 @@ XPCOMUtils.defineLazyGetter(CrashManager, "Singleton", function() {
|
||||||
|
|
||||||
return gCrashManager;
|
return gCrashManager;
|
||||||
});
|
});
|
||||||
|
|
||||||
function getCrashManager() {
|
|
||||||
return CrashManager.Singleton;
|
|
||||||
}
|
|
||||||
|
|
|
@ -12,11 +12,4 @@ Classes = [
|
||||||
'constructor': 'CrashService',
|
'constructor': 'CrashService',
|
||||||
'categories': {'profile-after-change': 'CrashService'},
|
'categories': {'profile-after-change': 'CrashService'},
|
||||||
},
|
},
|
||||||
{
|
|
||||||
'js_name': 'crashmanager',
|
|
||||||
'cid': '{c887b6a9-a5eb-4566-a440-bebaea3e54fd}',
|
|
||||||
'contract_ids': ['@mozilla.org/crashmanager;1'],
|
|
||||||
'jsm': 'resource://gre/modules/CrashManager.jsm',
|
|
||||||
'constructor': 'getCrashManager',
|
|
||||||
},
|
|
||||||
]
|
]
|
||||||
|
|
|
@ -2,8 +2,6 @@
|
||||||
* 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 = ["EnterprisePoliciesManager"];
|
|
||||||
|
|
||||||
const { XPCOMUtils } = ChromeUtils.import(
|
const { XPCOMUtils } = ChromeUtils.import(
|
||||||
"resource://gre/modules/XPCOMUtils.jsm"
|
"resource://gre/modules/XPCOMUtils.jsm"
|
||||||
);
|
);
|
||||||
|
@ -82,11 +80,15 @@ function EnterprisePoliciesManager() {
|
||||||
}
|
}
|
||||||
|
|
||||||
EnterprisePoliciesManager.prototype = {
|
EnterprisePoliciesManager.prototype = {
|
||||||
|
classID: Components.ID("{ea4e1414-779b-458b-9d1f-d18e8efbc145}"),
|
||||||
QueryInterface: ChromeUtils.generateQI([
|
QueryInterface: ChromeUtils.generateQI([
|
||||||
Ci.nsIObserver,
|
Ci.nsIObserver,
|
||||||
Ci.nsISupportsWeakReference,
|
Ci.nsISupportsWeakReference,
|
||||||
Ci.nsIEnterprisePolicies,
|
Ci.nsIEnterprisePolicies,
|
||||||
]),
|
]),
|
||||||
|
_xpcom_factory: XPCOMUtils.generateSingletonFactory(
|
||||||
|
EnterprisePoliciesManager
|
||||||
|
),
|
||||||
|
|
||||||
_initialize() {
|
_initialize() {
|
||||||
let provider = this._chooseProvider();
|
let provider = this._chooseProvider();
|
||||||
|
@ -629,3 +631,6 @@ class macOSPoliciesProvider {
|
||||||
return this._failed;
|
return this._failed;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var components = [EnterprisePoliciesManager];
|
||||||
|
this.NSGetFactory = XPCOMUtils.generateNSGetFactory(components);
|
|
@ -1,22 +0,0 @@
|
||||||
/* 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/. */
|
|
||||||
|
|
||||||
var EXPORTED_SYMBOLS = ["EnterprisePolicies"];
|
|
||||||
|
|
||||||
function EnterprisePolicies() {
|
|
||||||
// eslint-disable-next-line mozilla/use-services
|
|
||||||
const appinfo = Cc["@mozilla.org/xre/app-info;1"].getService(
|
|
||||||
Ci.nsIXULRuntime
|
|
||||||
);
|
|
||||||
if (appinfo.processType == appinfo.PROCESS_TYPE_DEFAULT) {
|
|
||||||
const { EnterprisePoliciesManager } = ChromeUtils.import(
|
|
||||||
"resource://gre/modules/EnterprisePoliciesParent.jsm"
|
|
||||||
);
|
|
||||||
return new EnterprisePoliciesManager();
|
|
||||||
}
|
|
||||||
const { EnterprisePoliciesManagerContent } = ChromeUtils.import(
|
|
||||||
"resource://gre/modules/EnterprisePoliciesContent.jsm"
|
|
||||||
);
|
|
||||||
return new EnterprisePoliciesManagerContent();
|
|
||||||
}
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
component {ea4e1414-779b-458b-9d1f-d18e8efbc145} EnterprisePolicies.js process=main
|
||||||
|
contract @mozilla.org/enterprisepolicies;1 {ea4e1414-779b-458b-9d1f-d18e8efbc145} process=main
|
||||||
|
|
||||||
|
component {dc6358f8-d167-4566-bf5b-4350b5e6a7a2} EnterprisePoliciesContent.js process=content
|
||||||
|
contract @mozilla.org/enterprisepolicies;1 {dc6358f8-d167-4566-bf5b-4350b5e6a7a2} process=content
|
|
@ -2,26 +2,35 @@
|
||||||
* 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 = ["EnterprisePoliciesManagerContent"];
|
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");
|
||||||
|
|
||||||
class EnterprisePoliciesManagerContent {
|
function EnterprisePoliciesManagerContent() {}
|
||||||
|
|
||||||
|
EnterprisePoliciesManagerContent.prototype = {
|
||||||
|
classID: Components.ID("{dc6358f8-d167-4566-bf5b-4350b5e6a7a2}"),
|
||||||
|
QueryInterface: ChromeUtils.generateQI([Ci.nsIEnterprisePolicies]),
|
||||||
|
_xpcom_factory: XPCOMUtils.generateSingletonFactory(
|
||||||
|
EnterprisePoliciesManagerContent
|
||||||
|
),
|
||||||
|
|
||||||
get status() {
|
get status() {
|
||||||
return (
|
return (
|
||||||
Services.cpmm.sharedData.get("EnterprisePolicies:Status") ||
|
Services.cpmm.sharedData.get("EnterprisePolicies:Status") ||
|
||||||
Ci.nsIEnterprisePolicies.INACTIVE
|
Ci.nsIEnterprisePolicies.INACTIVE
|
||||||
);
|
);
|
||||||
}
|
},
|
||||||
|
|
||||||
isAllowed(feature) {
|
isAllowed(feature) {
|
||||||
let disallowedFeatures = Services.cpmm.sharedData.get(
|
let disallowedFeatures = Services.cpmm.sharedData.get(
|
||||||
"EnterprisePolicies:DisallowedFeatures"
|
"EnterprisePolicies:DisallowedFeatures"
|
||||||
);
|
);
|
||||||
return !(disallowedFeatures && disallowedFeatures.has(feature));
|
return !(disallowedFeatures && disallowedFeatures.has(feature));
|
||||||
}
|
},
|
||||||
}
|
};
|
||||||
|
|
||||||
EnterprisePoliciesManagerContent.prototype.QueryInterface = ChromeUtils.generateQI(
|
this.NSGetFactory = XPCOMUtils.generateNSGetFactory([
|
||||||
[Ci.nsIEnterprisePolicies]
|
EnterprisePoliciesManagerContent,
|
||||||
);
|
]);
|
|
@ -1,16 +0,0 @@
|
||||||
# -*- 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 = [
|
|
||||||
{
|
|
||||||
'js_name': 'policies',
|
|
||||||
'cid': '{49e8d8ef-a713-492a-a3d2-5c9dad4ce2e5}',
|
|
||||||
'contract_ids': ['@mozilla.org/enterprisepolicies;1'],
|
|
||||||
'interfaces': ['nsIEnterprisePolicies'],
|
|
||||||
'jsm': 'resource://gre/modules/EnterprisePolicies.jsm',
|
|
||||||
'constructor': 'EnterprisePolicies',
|
|
||||||
},
|
|
||||||
]
|
|
|
@ -18,14 +18,10 @@ TEST_DIRS += [
|
||||||
]
|
]
|
||||||
|
|
||||||
if CONFIG['MOZ_WIDGET_TOOLKIT'] != "android":
|
if CONFIG['MOZ_WIDGET_TOOLKIT'] != "android":
|
||||||
EXTRA_JS_MODULES += [
|
EXTRA_COMPONENTS += [
|
||||||
'EnterprisePolicies.jsm',
|
'EnterprisePolicies.js',
|
||||||
'EnterprisePoliciesContent.jsm',
|
'EnterprisePolicies.manifest',
|
||||||
'EnterprisePoliciesParent.jsm',
|
'EnterprisePoliciesContent.js',
|
||||||
]
|
|
||||||
|
|
||||||
XPCOM_MANIFESTS += [
|
|
||||||
'components.conf',
|
|
||||||
]
|
]
|
||||||
|
|
||||||
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
|
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
|
||||||
|
|
|
@ -382,7 +382,7 @@ var ExtensionAddonObserver = {
|
||||||
|
|
||||||
// If LSNG is not enabled, we need to clear localStorage explicitly using
|
// If LSNG is not enabled, we need to clear localStorage explicitly using
|
||||||
// the old API.
|
// the old API.
|
||||||
if (!Services.domStorageManager.nextGenLocalStorageEnabled) {
|
if (!Services.lsm.nextGenLocalStorageEnabled) {
|
||||||
// Clear localStorage created by the extension
|
// Clear localStorage created by the extension
|
||||||
let storage = Services.domStorageManager.getStorage(
|
let storage = Services.domStorageManager.getStorage(
|
||||||
null,
|
null,
|
||||||
|
|
|
@ -13,10 +13,8 @@ Classes = [
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
'js_name': 'intl',
|
|
||||||
'cid': '{35ec195a-e8d0-4300-83af-c8a2cc84b4a3}',
|
'cid': '{35ec195a-e8d0-4300-83af-c8a2cc84b4a3}',
|
||||||
'contract_ids': ['@mozilla.org/mozintl;1'],
|
'contract_ids': ['@mozilla.org/mozintl;1'],
|
||||||
'interfaces': ['mozIMozIntl'],
|
|
||||||
'jsm': 'resource://gre/modules/mozIntl.jsm',
|
'jsm': 'resource://gre/modules/mozIntl.jsm',
|
||||||
'constructor': 'MozIntl',
|
'constructor': 'MozIntl',
|
||||||
},
|
},
|
||||||
|
|
|
@ -6,10 +6,8 @@
|
||||||
|
|
||||||
Classes = [
|
Classes = [
|
||||||
{
|
{
|
||||||
'js_name': 'logins',
|
|
||||||
'cid': '{cb9e0de8-3598-4ed7-857b-827f011ad5d8}',
|
'cid': '{cb9e0de8-3598-4ed7-857b-827f011ad5d8}',
|
||||||
'contract_ids': ['@mozilla.org/login-manager;1'],
|
'contract_ids': ['@mozilla.org/login-manager;1'],
|
||||||
'interfaces': ['nsILoginManager'],
|
|
||||||
'jsm': 'resource://gre/modules/LoginManager.jsm',
|
'jsm': 'resource://gre/modules/LoginManager.jsm',
|
||||||
'constructor': 'LoginManager',
|
'constructor': 'LoginManager',
|
||||||
},
|
},
|
||||||
|
|
|
@ -22,10 +22,8 @@ if buildconfig.substs['MOZ_WIDGET_TOOLKIT'] != 'android':
|
||||||
'constructor': 'Prompter',
|
'constructor': 'Prompter',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'js_name': 'prompt',
|
|
||||||
'cid': '{7ad1b327-6dfa-46ec-9234-f2a620ea7e00}',
|
'cid': '{7ad1b327-6dfa-46ec-9234-f2a620ea7e00}',
|
||||||
'contract_ids': ['@mozilla.org/embedcomp/prompt-service;1'],
|
'contract_ids': ['@mozilla.org/embedcomp/prompt-service;1'],
|
||||||
'interfaces': ['nsIPromptService'],
|
|
||||||
'jsm': 'resource://gre/modules/Prompter.jsm',
|
'jsm': 'resource://gre/modules/Prompter.jsm',
|
||||||
'constructor': 'EmbedPrompter',
|
'constructor': 'EmbedPrompter',
|
||||||
},
|
},
|
||||||
|
|
|
@ -8,10 +8,8 @@ HAVE_SIDEBAR = buildconfig.substs['MOZ_BUILD_APP'] in ('browser', 'mobile/androi
|
||||||
|
|
||||||
Classes = [
|
Classes = [
|
||||||
{
|
{
|
||||||
'js_name': 'search',
|
|
||||||
'cid': '{7319788a-fe93-4db3-9f39-818cf08f4256}',
|
'cid': '{7319788a-fe93-4db3-9f39-818cf08f4256}',
|
||||||
'contract_ids': ['@mozilla.org/browser/search-service;1'],
|
'contract_ids': ['@mozilla.org/browser/search-service;1'],
|
||||||
'interfaces': ['nsISearchService'],
|
|
||||||
'jsm': 'resource://gre/modules/SearchService.jsm',
|
'jsm': 'resource://gre/modules/SearchService.jsm',
|
||||||
'constructor': 'SearchService',
|
'constructor': 'SearchService',
|
||||||
'processes': ProcessSelector.MAIN_PROCESS_ONLY,
|
'processes': ProcessSelector.MAIN_PROCESS_ONLY,
|
||||||
|
|
|
@ -10,10 +10,8 @@ UnloadFunc = 'mozilla::Telemetry::ShutdownTelemetry'
|
||||||
|
|
||||||
Classes = [
|
Classes = [
|
||||||
{
|
{
|
||||||
'js_name': 'telemetry',
|
|
||||||
'cid': '{aea477f2-b3a2-469c-aa29-0a82d132b829}',
|
'cid': '{aea477f2-b3a2-469c-aa29-0a82d132b829}',
|
||||||
'contract_ids': ['@mozilla.org/base/telemetry;1'],
|
'contract_ids': ['@mozilla.org/base/telemetry;1'],
|
||||||
'interfaces': ['nsITelemetry'],
|
|
||||||
'singleton': True,
|
'singleton': True,
|
||||||
'type': 'nsITelemetry',
|
'type': 'nsITelemetry',
|
||||||
'processes': ProcessSelector.ALLOW_IN_GPU_RDD_VR_AND_SOCKET_PROCESS,
|
'processes': ProcessSelector.ALLOW_IN_GPU_RDD_VR_AND_SOCKET_PROCESS,
|
||||||
|
|
|
@ -37,7 +37,7 @@ add_task(async function() {
|
||||||
do_get_profile(true);
|
do_get_profile(true);
|
||||||
await TelemetryController.testSetup();
|
await TelemetryController.testSetup();
|
||||||
|
|
||||||
Services.io.socketProcessTelemetryPing();
|
Services.netUtils.socketProcessTelemetryPing();
|
||||||
|
|
||||||
// Once scalars are set by the socket process, they don't immediately get
|
// Once scalars are set by the socket process, they don't immediately get
|
||||||
// sent to the parent process. Wait for the Telemetry IPC Timer to trigger
|
// sent to the parent process. Wait for the Telemetry IPC Timer to trigger
|
||||||
|
|
|
@ -174,7 +174,7 @@ var SysInfo = {
|
||||||
return this.overrides[name];
|
return this.overrides[name];
|
||||||
}
|
}
|
||||||
|
|
||||||
return this._genuine.QueryInterface(Ci.nsIPropertyBag).getProperty(name);
|
return this._genuine.getProperty(name);
|
||||||
},
|
},
|
||||||
|
|
||||||
getPropertyAsUint32(name) {
|
getPropertyAsUint32(name) {
|
||||||
|
@ -182,7 +182,7 @@ var SysInfo = {
|
||||||
},
|
},
|
||||||
|
|
||||||
get(name) {
|
get(name) {
|
||||||
return this._genuine.QueryInterface(Ci.nsIPropertyBag2).get(name);
|
return this._genuine.get(name);
|
||||||
},
|
},
|
||||||
|
|
||||||
get diskInfo() {
|
get diskInfo() {
|
||||||
|
|
|
@ -23,6 +23,13 @@ ChromeUtils.defineModuleGetter(
|
||||||
"resource://gre/modules/HealthPing.jsm"
|
"resource://gre/modules/HealthPing.jsm"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
XPCOMUtils.defineLazyServiceGetter(
|
||||||
|
Services,
|
||||||
|
"cookies",
|
||||||
|
"@mozilla.org/cookieService;1",
|
||||||
|
"nsICookieService"
|
||||||
|
);
|
||||||
|
|
||||||
const MS_IN_A_MINUTE = 60 * 1000;
|
const MS_IN_A_MINUTE = 60 * 1000;
|
||||||
|
|
||||||
function countPingTypes(pings) {
|
function countPingTypes(pings) {
|
||||||
|
@ -966,7 +973,6 @@ add_task(async function testCookies() {
|
||||||
loadUsingSystemPrincipal: true,
|
loadUsingSystemPrincipal: true,
|
||||||
contentPolicyType: Ci.nsIContentPolicy.TYPE_DOCUMENT,
|
contentPolicyType: Ci.nsIContentPolicy.TYPE_DOCUMENT,
|
||||||
});
|
});
|
||||||
Services.cookies.QueryInterface(Ci.nsICookieService);
|
|
||||||
Services.cookies.setCookieStringFromHttp(uri, "cookie-time=yes", channel);
|
Services.cookies.setCookieStringFromHttp(uri, "cookie-time=yes", channel);
|
||||||
|
|
||||||
const id = await TelemetryController.submitExternalPing(TEST_TYPE, {});
|
const id = await TelemetryController.submitExternalPing(TEST_TYPE, {});
|
||||||
|
|
|
@ -6,10 +6,8 @@
|
||||||
|
|
||||||
Classes = [
|
Classes = [
|
||||||
{
|
{
|
||||||
'js_name': 'urlFormatter',
|
|
||||||
'cid': '{e6156350-2be8-11db-a98b-0800200c9a66}',
|
'cid': '{e6156350-2be8-11db-a98b-0800200c9a66}',
|
||||||
'contract_ids': ['@mozilla.org/toolkit/URLFormatterService;1'],
|
'contract_ids': ['@mozilla.org/toolkit/URLFormatterService;1'],
|
||||||
'interfaces': ['nsIURLFormatter'],
|
|
||||||
'jsm': 'resource://gre/modules/URLFormatter.jsm',
|
'jsm': 'resource://gre/modules/URLFormatter.jsm',
|
||||||
'constructor': 'nsURLFormatterService',
|
'constructor': 'nsURLFormatterService',
|
||||||
},
|
},
|
||||||
|
|
|
@ -14,21 +14,12 @@ if defined('MOZ_NEW_XULSTORE'):
|
||||||
'singleton': True,
|
'singleton': True,
|
||||||
'constructor': 'mozilla::XULStore::GetService',
|
'constructor': 'mozilla::XULStore::GetService',
|
||||||
},
|
},
|
||||||
{
|
|
||||||
'js_name': 'xulStore',
|
|
||||||
'cid': '{e8e12dba-b942-4c0d-aa21-2843cfc64529}',
|
|
||||||
'contract_ids': ['@mozilla.org/xul/js-xulstore;1'],
|
|
||||||
'jsm': 'resource://gre/modules/XULStore.jsm',
|
|
||||||
'constructor': 'getXULStore',
|
|
||||||
},
|
|
||||||
]
|
]
|
||||||
else:
|
else:
|
||||||
Classes = [
|
Classes = [
|
||||||
{
|
{
|
||||||
'js_name': 'xulStore',
|
|
||||||
'cid': '{6f46b6f4-c8b1-4bd4-a4fa-9ebbed0753ea}',
|
'cid': '{6f46b6f4-c8b1-4bd4-a4fa-9ebbed0753ea}',
|
||||||
'contract_ids': ['@mozilla.org/xul/xulstore;1'],
|
'contract_ids': ['@mozilla.org/xul/xulstore;1'],
|
||||||
'interfaces': ['nsIXULStore'],
|
|
||||||
'jsm': 'resource://gre/modules/XULStore.jsm',
|
'jsm': 'resource://gre/modules/XULStore.jsm',
|
||||||
'constructor': 'XULStore',
|
'constructor': 'XULStore',
|
||||||
},
|
},
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
// protocol. It also implements the persist() method. JS consumers should use
|
// protocol. It also implements the persist() method. JS consumers should use
|
||||||
// this module rather than accessing nsIXULStore directly.
|
// this module rather than accessing nsIXULStore directly.
|
||||||
|
|
||||||
const EXPORTED_SYMBOLS = ["XULStore", "getXULStore"];
|
const EXPORTED_SYMBOLS = ["XULStore"];
|
||||||
|
|
||||||
// Services.xulStore loads this module and returns its `XULStore` symbol
|
// Services.xulStore loads this module and returns its `XULStore` symbol
|
||||||
// when this implementation of XULStore is enabled, so using it here
|
// when this implementation of XULStore is enabled, so using it here
|
||||||
|
@ -99,9 +99,3 @@ class XULStoreEnumerator {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Only here for the sake of component registration, which requires a
|
|
||||||
// callable function.
|
|
||||||
function getXULStore() {
|
|
||||||
return XULStore;
|
|
||||||
}
|
|
||||||
|
|
|
@ -2,6 +2,171 @@
|
||||||
* 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/. */
|
||||||
|
|
||||||
|
/* eslint mozilla/use-services:off */
|
||||||
|
|
||||||
var EXPORTED_SYMBOLS = ["Services"];
|
var EXPORTED_SYMBOLS = ["Services"];
|
||||||
|
|
||||||
var Services = Cu.createServicesCache();
|
const { AppConstants } = ChromeUtils.import(
|
||||||
|
"resource://gre/modules/AppConstants.jsm"
|
||||||
|
);
|
||||||
|
const { XPCOMUtils } = ChromeUtils.import(
|
||||||
|
"resource://gre/modules/XPCOMUtils.jsm"
|
||||||
|
);
|
||||||
|
|
||||||
|
var Services = {};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* WARNING: If you add a getter that isn't in the initTable, please update the
|
||||||
|
* eslint rule in /tools/lint/eslint/eslint-plugin-mozilla/lib/rules/use-services.js
|
||||||
|
*/
|
||||||
|
|
||||||
|
XPCOMUtils.defineLazyGetter(Services, "prefs", function() {
|
||||||
|
return Cc["@mozilla.org/preferences-service;1"]
|
||||||
|
.getService(Ci.nsIPrefService)
|
||||||
|
.QueryInterface(Ci.nsIPrefBranch);
|
||||||
|
});
|
||||||
|
|
||||||
|
XPCOMUtils.defineLazyGetter(Services, "appinfo", function() {
|
||||||
|
let appinfo = Cc["@mozilla.org/xre/app-info;1"].getService(Ci.nsIXULRuntime);
|
||||||
|
try {
|
||||||
|
appinfo.QueryInterface(Ci.nsIXULAppInfo);
|
||||||
|
} catch (ex) {
|
||||||
|
// Not all applications implement nsIXULAppInfo (e.g. xpcshell doesn't).
|
||||||
|
if (
|
||||||
|
!(ex instanceof Components.Exception) ||
|
||||||
|
ex.result != Cr.NS_NOINTERFACE
|
||||||
|
) {
|
||||||
|
throw ex;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return appinfo;
|
||||||
|
});
|
||||||
|
|
||||||
|
XPCOMUtils.defineLazyGetter(Services, "dirsvc", function() {
|
||||||
|
return Cc["@mozilla.org/file/directory_service;1"]
|
||||||
|
.getService(Ci.nsIDirectoryService)
|
||||||
|
.QueryInterface(Ci.nsIProperties);
|
||||||
|
});
|
||||||
|
|
||||||
|
XPCOMUtils.defineLazyGetter(Services, "sysinfo", function() {
|
||||||
|
return Cc["@mozilla.org/system-info;1"]
|
||||||
|
.getService(Ci.nsIPropertyBag2)
|
||||||
|
.QueryInterface(Ci.nsISystemInfo);
|
||||||
|
});
|
||||||
|
|
||||||
|
if (AppConstants.MOZ_CRASHREPORTER) {
|
||||||
|
XPCOMUtils.defineLazyGetter(Services, "crashmanager", () => {
|
||||||
|
let ns = {};
|
||||||
|
ChromeUtils.import("resource://gre/modules/CrashManager.jsm", ns);
|
||||||
|
|
||||||
|
return ns.CrashManager.Singleton;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
XPCOMUtils.defineLazyGetter(Services, "io", () => {
|
||||||
|
return Cc["@mozilla.org/network/io-service;1"]
|
||||||
|
.getService(Ci.nsIIOService)
|
||||||
|
.QueryInterface(Ci.nsISpeculativeConnect);
|
||||||
|
});
|
||||||
|
|
||||||
|
var initTable = {
|
||||||
|
appShell: ["@mozilla.org/appshell/appShellService;1", "nsIAppShellService"],
|
||||||
|
cache2: [
|
||||||
|
"@mozilla.org/netwerk/cache-storage-service;1",
|
||||||
|
"nsICacheStorageService",
|
||||||
|
],
|
||||||
|
catMan: ["@mozilla.org/categorymanager;1", "nsICategoryManager"],
|
||||||
|
clearData: ["@mozilla.org/clear-data-service;1", "nsIClearDataService"],
|
||||||
|
cpmm: ["@mozilla.org/childprocessmessagemanager;1", "nsIMessageSender"],
|
||||||
|
console: ["@mozilla.org/consoleservice;1", "nsIConsoleService"],
|
||||||
|
cookies: ["@mozilla.org/cookiemanager;1", "nsICookieManager"],
|
||||||
|
droppedLinkHandler: [
|
||||||
|
"@mozilla.org/content/dropped-link-handler;1",
|
||||||
|
"nsIDroppedLinkHandler",
|
||||||
|
],
|
||||||
|
els: ["@mozilla.org/eventlistenerservice;1", "nsIEventListenerService"],
|
||||||
|
eTLD: [
|
||||||
|
"@mozilla.org/network/effective-tld-service;1",
|
||||||
|
"nsIEffectiveTLDService",
|
||||||
|
],
|
||||||
|
intl: ["@mozilla.org/mozintl;1", "mozIMozIntl"],
|
||||||
|
locale: ["@mozilla.org/intl/localeservice;1", "mozILocaleService"],
|
||||||
|
logins: ["@mozilla.org/login-manager;1", "nsILoginManager"],
|
||||||
|
mm: ["@mozilla.org/globalmessagemanager;1", "nsISupports"],
|
||||||
|
obs: ["@mozilla.org/observer-service;1", "nsIObserverService"],
|
||||||
|
perms: ["@mozilla.org/permissionmanager;1", "nsIPermissionManager"],
|
||||||
|
ppmm: ["@mozilla.org/parentprocessmessagemanager;1", "nsISupports"],
|
||||||
|
prompt: ["@mozilla.org/embedcomp/prompt-service;1", "nsIPromptService"],
|
||||||
|
scriptloader: [
|
||||||
|
"@mozilla.org/moz/jssubscript-loader;1",
|
||||||
|
"mozIJSSubScriptLoader",
|
||||||
|
],
|
||||||
|
scriptSecurityManager: [
|
||||||
|
"@mozilla.org/scriptsecuritymanager;1",
|
||||||
|
"nsIScriptSecurityManager",
|
||||||
|
],
|
||||||
|
storage: ["@mozilla.org/storage/service;1", "mozIStorageService"],
|
||||||
|
domStorageManager: [
|
||||||
|
"@mozilla.org/dom/localStorage-manager;1",
|
||||||
|
"nsIDOMStorageManager",
|
||||||
|
],
|
||||||
|
lsm: ["@mozilla.org/dom/localStorage-manager;1", "nsILocalStorageManager"],
|
||||||
|
search: ["@mozilla.org/browser/search-service;1", "nsISearchService"],
|
||||||
|
strings: ["@mozilla.org/intl/stringbundle;1", "nsIStringBundleService"],
|
||||||
|
telemetry: ["@mozilla.org/base/telemetry;1", "nsITelemetry"],
|
||||||
|
textToSubURI: ["@mozilla.org/intl/texttosuburi;1", "nsITextToSubURI"],
|
||||||
|
tm: ["@mozilla.org/thread-manager;1", "nsIThreadManager"],
|
||||||
|
urlFormatter: [
|
||||||
|
"@mozilla.org/toolkit/URLFormatterService;1",
|
||||||
|
"nsIURLFormatter",
|
||||||
|
],
|
||||||
|
vc: ["@mozilla.org/xpcom/version-comparator;1", "nsIVersionComparator"],
|
||||||
|
wm: ["@mozilla.org/appshell/window-mediator;1", "nsIWindowMediator"],
|
||||||
|
ww: ["@mozilla.org/embedcomp/window-watcher;1", "nsIWindowWatcher"],
|
||||||
|
startup: ["@mozilla.org/toolkit/app-startup;1", "nsIAppStartup"],
|
||||||
|
clipboard: ["@mozilla.org/widget/clipboard;1", "nsIClipboard"],
|
||||||
|
DOMRequest: [
|
||||||
|
"@mozilla.org/dom/dom-request-service;1",
|
||||||
|
"nsIDOMRequestService",
|
||||||
|
],
|
||||||
|
focus: ["@mozilla.org/focus-manager;1", "nsIFocusManager"],
|
||||||
|
uriFixup: ["@mozilla.org/docshell/uri-fixup;1", "nsIURIFixup"],
|
||||||
|
blocklist: ["@mozilla.org/extensions/blocklist;1"],
|
||||||
|
netUtils: ["@mozilla.org/network/util;1", "nsINetUtil"],
|
||||||
|
loadContextInfo: [
|
||||||
|
"@mozilla.org/load-context-info-factory;1",
|
||||||
|
"nsILoadContextInfoFactory",
|
||||||
|
],
|
||||||
|
qms: ["@mozilla.org/dom/quota-manager-service;1", "nsIQuotaManagerService"],
|
||||||
|
};
|
||||||
|
|
||||||
|
if (AppConstants.platform == "android") {
|
||||||
|
initTable.androidBridge = [
|
||||||
|
"@mozilla.org/android/bridge;1",
|
||||||
|
"nsIAndroidBridge",
|
||||||
|
];
|
||||||
|
}
|
||||||
|
if (AppConstants.MOZ_GECKO_PROFILER) {
|
||||||
|
initTable.profiler = ["@mozilla.org/tools/profiler;1", "nsIProfiler"];
|
||||||
|
}
|
||||||
|
if ("@mozilla.org/enterprisepolicies;1" in Cc) {
|
||||||
|
initTable.policies = [
|
||||||
|
"@mozilla.org/enterprisepolicies;1",
|
||||||
|
"nsIEnterprisePolicies",
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (AppConstants.MOZ_NEW_XULSTORE) {
|
||||||
|
XPCOMUtils.defineLazyGetter(Services, "xulStore", () => {
|
||||||
|
const { XULStore } = ChromeUtils.import(
|
||||||
|
"resource://gre/modules/XULStore.jsm"
|
||||||
|
);
|
||||||
|
return XULStore;
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
initTable.xulStore = ["@mozilla.org/xul/xulstore;1", "nsIXULStore"];
|
||||||
|
}
|
||||||
|
|
||||||
|
XPCOMUtils.defineLazyServiceGetters(Services, initTable);
|
||||||
|
|
||||||
|
initTable = undefined;
|
||||||
|
|
|
@ -6,7 +6,6 @@
|
||||||
|
|
||||||
Classes = [
|
Classes = [
|
||||||
{
|
{
|
||||||
'js_name': 'blocklist',
|
|
||||||
'cid': '{66354bc9-7ed1-4692-ae1d-8da97d6b205e}',
|
'cid': '{66354bc9-7ed1-4692-ae1d-8da97d6b205e}',
|
||||||
'contract_ids': ['@mozilla.org/extensions/blocklist;1'],
|
'contract_ids': ['@mozilla.org/extensions/blocklist;1'],
|
||||||
'jsm': 'resource://gre/modules/addonManager.js',
|
'jsm': 'resource://gre/modules/addonManager.js',
|
||||||
|
|
|
@ -11,17 +11,14 @@ else:
|
||||||
|
|
||||||
Classes = [
|
Classes = [
|
||||||
{
|
{
|
||||||
'js_name': 'appinfo',
|
|
||||||
'cid': '{95d89e3e-a169-41a3-8e56-719978e15b12}',
|
'cid': '{95d89e3e-a169-41a3-8e56-719978e15b12}',
|
||||||
'contract_ids': [
|
'contract_ids': [
|
||||||
'@mozilla.org/xre/app-info;1',
|
'@mozilla.org/xre/app-info;1',
|
||||||
'@mozilla.org/xre/runtime;1',
|
'@mozilla.org/xre/runtime;1',
|
||||||
] + crash_reporter,
|
] + crash_reporter,
|
||||||
'interfaces': ['nsIXULRuntime', 'nsIXULAppInfo'],
|
|
||||||
'legacy_constructor': 'mozilla::AppInfoConstructor',
|
'legacy_constructor': 'mozilla::AppInfoConstructor',
|
||||||
'headers': ['nsAppRunner.h'],
|
'headers': ['nsAppRunner.h'],
|
||||||
'processes': ProcessSelector.ALLOW_IN_SOCKET_PROCESS,
|
'processes': ProcessSelector.ALLOW_IN_SOCKET_PROCESS,
|
||||||
'overridable': True,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'cid': '{471f4944-1dd2-11b2-87ac-90be0a51d609}',
|
'cid': '{471f4944-1dd2-11b2-87ac-90be0a51d609}',
|
||||||
|
@ -36,14 +33,11 @@ Classes = [
|
||||||
'headers': ['/dom/webbrowserpersist/nsWebBrowserPersist.h'],
|
'headers': ['/dom/webbrowserpersist/nsWebBrowserPersist.h'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'js_name': 'ww',
|
|
||||||
'cid': '{a21bfa01-f349-4394-a84c-8de5cf0737d0}',
|
'cid': '{a21bfa01-f349-4394-a84c-8de5cf0737d0}',
|
||||||
'contract_ids': ['@mozilla.org/embedcomp/window-watcher;1'],
|
'contract_ids': ['@mozilla.org/embedcomp/window-watcher;1'],
|
||||||
'interfaces': ['nsIWindowWatcher'],
|
|
||||||
'type': 'nsWindowWatcher',
|
'type': 'nsWindowWatcher',
|
||||||
'headers': ['nsWindowWatcher.h'],
|
'headers': ['nsWindowWatcher.h'],
|
||||||
'init_method': 'Init',
|
'init_method': 'Init',
|
||||||
'overridable': True,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'cid': '{5573967d-f6cf-4c63-8e0e-9ac06e04d62b}',
|
'cid': '{5573967d-f6cf-4c63-8e0e-9ac06e04d62b}',
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
/* Any copyright is dedicated to the Public Domain.
|
||||||
|
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
// ------------------------------------------------------------------------------
|
||||||
|
// Requirements
|
||||||
|
// ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
var rule = require("../lib/rules/use-services");
|
||||||
|
var RuleTester = require("eslint").RuleTester;
|
||||||
|
|
||||||
|
const ruleTester = new RuleTester({ parserOptions: { ecmaVersion: 6 } });
|
||||||
|
|
||||||
|
// ------------------------------------------------------------------------------
|
||||||
|
// Tests
|
||||||
|
// ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
function invalidCode(code, name) {
|
||||||
|
let message = `Use Services.${name} rather than getService().`;
|
||||||
|
return { code, errors: [{ message, type: "CallExpression" }] };
|
||||||
|
}
|
||||||
|
|
||||||
|
ruleTester.run("use-services", rule, {
|
||||||
|
valid: [
|
||||||
|
'Cc["@mozilla.org/uuid-generator;1"].getService(Ci.nsIUUIDGenerator)',
|
||||||
|
'Components.classes["@mozilla.org/uuid-generator;1"].getService(Components.interfaces.nsIUUIDGenerator)',
|
||||||
|
"Services.wm.addListener()",
|
||||||
|
],
|
||||||
|
invalid: [
|
||||||
|
invalidCode(
|
||||||
|
'Cc["@mozilla.org/appshell/window-mediator;1"].getService(Ci.nsIWindowMediator);',
|
||||||
|
"wm"
|
||||||
|
),
|
||||||
|
invalidCode(
|
||||||
|
'Components.classes["@mozilla.org/toolkit/app-startup;1"].getService(Components.interfaces.nsIAppStartup);',
|
||||||
|
"startup"
|
||||||
|
),
|
||||||
|
],
|
||||||
|
});
|
|
@ -6,10 +6,8 @@
|
||||||
|
|
||||||
Classes = [
|
Classes = [
|
||||||
{
|
{
|
||||||
'js_name': 'profiler',
|
|
||||||
'cid': '{25db9b8e-8123-4de1-b66d-8bbbedf2cdf4}',
|
'cid': '{25db9b8e-8123-4de1-b66d-8bbbedf2cdf4}',
|
||||||
'contract_ids': ['@mozilla.org/tools/profiler;1'],
|
'contract_ids': ['@mozilla.org/tools/profiler;1'],
|
||||||
'interfaces': ['nsIProfiler'],
|
|
||||||
'type': 'nsProfiler',
|
'type': 'nsProfiler',
|
||||||
'headers': ['/tools/profiler/gecko/nsProfiler.h'],
|
'headers': ['/tools/profiler/gecko/nsProfiler.h'],
|
||||||
'init_method': 'Init',
|
'init_method': 'Init',
|
||||||
|
|
|
@ -43,14 +43,11 @@ Classes = [
|
||||||
'headers': ['/widget/nsTransferable.h'],
|
'headers': ['/widget/nsTransferable.h'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'js_name': 'clipboard',
|
|
||||||
'cid': '{8b5314ba-db01-11d2-96ce-0060b0fb9956}',
|
'cid': '{8b5314ba-db01-11d2-96ce-0060b0fb9956}',
|
||||||
'contract_ids': ['@mozilla.org/widget/clipboard;1'],
|
'contract_ids': ['@mozilla.org/widget/clipboard;1'],
|
||||||
'interfaces': ['nsIClipboard'],
|
|
||||||
'type': 'nsClipboard',
|
'type': 'nsClipboard',
|
||||||
'headers': ['/widget/android/nsClipboard.h'],
|
'headers': ['/widget/android/nsClipboard.h'],
|
||||||
'processes': ProcessSelector.MAIN_PROCESS_ONLY,
|
'processes': ProcessSelector.MAIN_PROCESS_ONLY,
|
||||||
'overridable': True,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'cid': '{77221d5a-1dd2-11b2-8c69-c710f15d2ed5}',
|
'cid': '{77221d5a-1dd2-11b2-8c69-c710f15d2ed5}',
|
||||||
|
@ -92,10 +89,8 @@ Classes = [
|
||||||
'init_method': 'Init',
|
'init_method': 'Init',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'js_name': 'androidBridge',
|
|
||||||
'cid': '{0fe2321d-ebd9-467d-a743-03a68d40599e}',
|
'cid': '{0fe2321d-ebd9-467d-a743-03a68d40599e}',
|
||||||
'contract_ids': ['@mozilla.org/android/bridge;1'],
|
'contract_ids': ['@mozilla.org/android/bridge;1'],
|
||||||
'interfaces': ['nsIAndroidBridge'],
|
|
||||||
'type': 'nsAndroidBridge',
|
'type': 'nsAndroidBridge',
|
||||||
'headers': ['/widget/android/AndroidBridge.h'],
|
'headers': ['/widget/android/AndroidBridge.h'],
|
||||||
},
|
},
|
||||||
|
|
|
@ -87,13 +87,10 @@ Classes = [
|
||||||
if defined('MOZ_X11'):
|
if defined('MOZ_X11'):
|
||||||
Classes += [
|
Classes += [
|
||||||
{
|
{
|
||||||
'js_name': 'clipboard',
|
|
||||||
'cid': '{8b5314ba-db01-11d2-96ce-0060b0fb9956}',
|
'cid': '{8b5314ba-db01-11d2-96ce-0060b0fb9956}',
|
||||||
'contract_ids': ['@mozilla.org/widget/clipboard;1'],
|
'contract_ids': ['@mozilla.org/widget/clipboard;1'],
|
||||||
'interfaces': ['nsIClipboard'],
|
|
||||||
'type': 'nsIClipboard',
|
'type': 'nsIClipboard',
|
||||||
'processes': ProcessSelector.MAIN_PROCESS_ONLY,
|
'processes': ProcessSelector.MAIN_PROCESS_ONLY,
|
||||||
'overridable': True,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'cid': '{77221d5a-1dd2-11b2-8c69-c710f15d2ed5}',
|
'cid': '{77221d5a-1dd2-11b2-8c69-c710f15d2ed5}',
|
||||||
|
|
|
@ -148,13 +148,10 @@ Classes = [
|
||||||
'processes': ProcessSelector.MAIN_PROCESS_ONLY,
|
'processes': ProcessSelector.MAIN_PROCESS_ONLY,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'js_name': 'clipboard',
|
|
||||||
'cid': '{8b5314ba-db01-11d2-96ce-0060b0fb9956}',
|
'cid': '{8b5314ba-db01-11d2-96ce-0060b0fb9956}',
|
||||||
'contract_ids': ['@mozilla.org/widget/clipboard;1'],
|
'contract_ids': ['@mozilla.org/widget/clipboard;1'],
|
||||||
'interfaces': ['nsIClipboard'],
|
|
||||||
'type': 'nsIClipboard',
|
'type': 'nsIClipboard',
|
||||||
'processes': ProcessSelector.MAIN_PROCESS_ONLY,
|
'processes': ProcessSelector.MAIN_PROCESS_ONLY,
|
||||||
'overridable': True,
|
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
@ -32,10 +32,8 @@ Classes = [
|
||||||
'constructor': 'nsChromeRegistry::GetSingleton',
|
'constructor': 'nsChromeRegistry::GetSingleton',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'js_name': 'console',
|
|
||||||
'cid': '{7e3ff85c-1dd2-11b2-8d4b-eb452cb0ff40}',
|
'cid': '{7e3ff85c-1dd2-11b2-8d4b-eb452cb0ff40}',
|
||||||
'contract_ids': ['@mozilla.org/consoleservice;1'],
|
'contract_ids': ['@mozilla.org/consoleservice;1'],
|
||||||
'interfaces': ['nsIConsoleService'],
|
|
||||||
'type': 'nsConsoleService',
|
'type': 'nsConsoleService',
|
||||||
'headers': ['/xpcom/base/nsConsoleService.h'],
|
'headers': ['/xpcom/base/nsConsoleService.h'],
|
||||||
'init_method': 'Init',
|
'init_method': 'Init',
|
||||||
|
@ -186,20 +184,15 @@ Classes = [
|
||||||
'headers': ['nsSupportsPrimitives.h'],
|
'headers': ['nsSupportsPrimitives.h'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'js_name': 'sysinfo',
|
|
||||||
'cid': '{d962398a-99e5-49b2-857a-c159049c7f6c}',
|
'cid': '{d962398a-99e5-49b2-857a-c159049c7f6c}',
|
||||||
'contract_ids': ['@mozilla.org/system-info;1'],
|
'contract_ids': ['@mozilla.org/system-info;1'],
|
||||||
'interfaces': ['nsIPropertyBag2', 'nsISystemInfo'],
|
|
||||||
'type': 'nsSystemInfo',
|
'type': 'nsSystemInfo',
|
||||||
'headers': ['nsSystemInfo.h'],
|
'headers': ['nsSystemInfo.h'],
|
||||||
'init_method': 'Init',
|
'init_method': 'Init',
|
||||||
'overridable': True,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'js_name': 'tm',
|
|
||||||
'cid': '{7a4204c6-e45a-4c37-8ebb-6709a22c917c}',
|
'cid': '{7a4204c6-e45a-4c37-8ebb-6709a22c917c}',
|
||||||
'contract_ids': ['@mozilla.org/thread-manager;1'],
|
'contract_ids': ['@mozilla.org/thread-manager;1'],
|
||||||
'interfaces': ['nsIThreadManager'],
|
|
||||||
'legacy_constructor': 'nsThreadManagerGetSingleton',
|
'legacy_constructor': 'nsThreadManagerGetSingleton',
|
||||||
'headers': ['/xpcom/build/XPCOMModule.h'],
|
'headers': ['/xpcom/build/XPCOMModule.h'],
|
||||||
},
|
},
|
||||||
|
@ -218,10 +211,8 @@ Classes = [
|
||||||
'headers': ['nsVariant.h'],
|
'headers': ['nsVariant.h'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'js_name': 'vc',
|
|
||||||
'cid': '{c6e47036-ca94-4be3-963a-9abd8705f7a8}',
|
'cid': '{c6e47036-ca94-4be3-963a-9abd8705f7a8}',
|
||||||
'contract_ids': ['@mozilla.org/xpcom/version-comparator;1'],
|
'contract_ids': ['@mozilla.org/xpcom/version-comparator;1'],
|
||||||
'interfaces': ['nsIVersionComparator'],
|
|
||||||
'type': 'nsVersionComparatorImpl',
|
'type': 'nsVersionComparatorImpl',
|
||||||
'headers': ['/xpcom/base/nsVersionComparatorImpl.h'],
|
'headers': ['/xpcom/base/nsVersionComparatorImpl.h'],
|
||||||
},
|
},
|
||||||
|
|
|
@ -6,7 +6,6 @@
|
||||||
|
|
||||||
#include "StaticComponents.h"
|
#include "StaticComponents.h"
|
||||||
|
|
||||||
#include "mozilla/ArrayUtils.h"
|
|
||||||
#include "mozilla/PerfectHash.h"
|
#include "mozilla/PerfectHash.h"
|
||||||
#include "mozilla/ResultExtensions.h"
|
#include "mozilla/ResultExtensions.h"
|
||||||
#include "mozilla/StaticPtr.h"
|
#include "mozilla/StaticPtr.h"
|
||||||
|
@ -21,8 +20,6 @@
|
||||||
#include "nsIXPConnect.h"
|
#include "nsIXPConnect.h"
|
||||||
#include "nsString.h"
|
#include "nsString.h"
|
||||||
#include "nsStringEnumerator.h"
|
#include "nsStringEnumerator.h"
|
||||||
#include "nsTArray.h"
|
|
||||||
#include "xptinfo.h"
|
|
||||||
|
|
||||||
// Cleanup pollution from zipstruct.h
|
// Cleanup pollution from zipstruct.h
|
||||||
#undef UNSUPPORTED
|
#undef UNSUPPORTED
|
||||||
|
@ -74,10 +71,6 @@ const StaticCategoryEntry gStaticCategoryEntries[] = {
|
||||||
//# @category_entries@
|
//# @category_entries@
|
||||||
};
|
};
|
||||||
|
|
||||||
const nsXPTInterface gInterfaces[] = {
|
|
||||||
//# @interfaces@
|
|
||||||
};
|
|
||||||
|
|
||||||
const StringOffset gComponentJSMs[] = {
|
const StringOffset gComponentJSMs[] = {
|
||||||
//# @component_jsms@
|
//# @component_jsms@
|
||||||
};
|
};
|
||||||
|
@ -138,8 +131,6 @@ static nsresult ConstructJSMComponent(const nsACString& aURI,
|
||||||
|
|
||||||
//# @module_contract_id_table@
|
//# @module_contract_id_table@
|
||||||
|
|
||||||
//# @js_services_table@
|
|
||||||
|
|
||||||
static inline bool CalledInit(size_t aIdx) {
|
static inline bool CalledInit(size_t aIdx) {
|
||||||
return GetBit(gInitCalled, aIdx);
|
return GetBit(gInitCalled, aIdx);
|
||||||
}
|
}
|
||||||
|
@ -234,14 +225,6 @@ nsresult StaticModule::CreateInstance(nsISupports* aOuter, const nsIID& aIID,
|
||||||
return CreateInstanceImpl(ID(), aOuter, aIID, aResult);
|
return CreateInstanceImpl(ID(), aOuter, aIID, aResult);
|
||||||
}
|
}
|
||||||
|
|
||||||
GetServiceHelper StaticModule::GetService() const {
|
|
||||||
return { ID(), nullptr };
|
|
||||||
}
|
|
||||||
|
|
||||||
GetServiceHelper StaticModule::GetService(nsresult* aRv) const {
|
|
||||||
return { ID(), aRv };
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
nsISupports* StaticModule::ServiceInstance() const {
|
nsISupports* StaticModule::ServiceInstance() const {
|
||||||
return gServiceInstances[Idx()];
|
return gServiceInstances[Idx()];
|
||||||
|
@ -267,26 +250,6 @@ nsCString StaticCategory::Name() const {
|
||||||
return GetString(mName);
|
return GetString(mName);
|
||||||
}
|
}
|
||||||
|
|
||||||
nsCString JSServiceEntry::Name() const {
|
|
||||||
return GetString(mName);
|
|
||||||
}
|
|
||||||
|
|
||||||
JSServiceEntry::InterfaceList JSServiceEntry::Interfaces() const {
|
|
||||||
InterfaceList iids;
|
|
||||||
iids.SetCapacity(mInterfaceCount);
|
|
||||||
|
|
||||||
for (size_t i = 0; i < mInterfaceCount; i++) {
|
|
||||||
nsXPTInterface ifaceID = gInterfaces[mInterfaceOffset.mOffset + i];
|
|
||||||
iids.AppendElement(&nsXPTInterfaceInfo::Get(ifaceID)->IID());
|
|
||||||
}
|
|
||||||
return iids;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* static */
|
|
||||||
const JSServiceEntry* JSServiceEntry::Lookup(const nsACString& aName) {
|
|
||||||
return LookupJSService(aName);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* static */ const StaticModule* StaticComponents::LookupByCID(
|
/* static */ const StaticModule* StaticComponents::LookupByCID(
|
||||||
const nsID& aCID) {
|
const nsID& aCID) {
|
||||||
|
@ -326,10 +289,6 @@ StaticComponents::GetComponentJSMs() {
|
||||||
return result.forget();
|
return result.forget();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* static */ Span<const JSServiceEntry> StaticComponents::GetJSServices() {
|
|
||||||
return { gJSServices, ArrayLength(gJSServices) };
|
|
||||||
}
|
|
||||||
|
|
||||||
/* static */ void StaticComponents::Shutdown() {
|
/* static */ void StaticComponents::Shutdown() {
|
||||||
CallUnloadFuncs();
|
CallUnloadFuncs();
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,6 @@
|
||||||
|
|
||||||
#include "mozilla/AlreadyAddRefed.h"
|
#include "mozilla/AlreadyAddRefed.h"
|
||||||
#include "mozilla/Module.h"
|
#include "mozilla/Module.h"
|
||||||
#include "mozilla/Span.h"
|
|
||||||
#include "nsID.h"
|
#include "nsID.h"
|
||||||
#include "nsStringFwd.h"
|
#include "nsStringFwd.h"
|
||||||
#include "nscore.h"
|
#include "nscore.h"
|
||||||
|
@ -20,8 +19,6 @@
|
||||||
class nsIFactory;
|
class nsIFactory;
|
||||||
class nsIUTF8StringEnumerator;
|
class nsIUTF8StringEnumerator;
|
||||||
class nsISupports;
|
class nsISupports;
|
||||||
template <typename T, size_t N>
|
|
||||||
class AutoTArray;
|
|
||||||
|
|
||||||
namespace mozilla {
|
namespace mozilla {
|
||||||
namespace xpcom {
|
namespace xpcom {
|
||||||
|
@ -75,13 +72,6 @@ struct StringOffset final {
|
||||||
uint32_t mOffset;
|
uint32_t mOffset;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
* Represents an offset into the interfaces table.
|
|
||||||
*/
|
|
||||||
struct InterfaceOffset final {
|
|
||||||
uint32_t mOffset;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents a static component entry defined in a `Classes` list in an XPCOM
|
* Represents a static component entry defined in a `Classes` list in an XPCOM
|
||||||
* manifest. Handles creating instances of and caching service instances for
|
* manifest. Handles creating instances of and caching service instances for
|
||||||
|
@ -128,9 +118,6 @@ struct StaticModule {
|
||||||
nsresult CreateInstance(nsISupports* aOuter, const nsIID& aIID,
|
nsresult CreateInstance(nsISupports* aOuter, const nsIID& aIID,
|
||||||
void** aResult) const;
|
void** aResult) const;
|
||||||
|
|
||||||
GetServiceHelper GetService() const;
|
|
||||||
GetServiceHelper GetService(nsresult*) const;
|
|
||||||
|
|
||||||
nsISupports* ServiceInstance() const;
|
nsISupports* ServiceInstance() const;
|
||||||
void SetServiceInstance(already_AddRefed<nsISupports> aInst) const;
|
void SetServiceInstance(already_AddRefed<nsISupports> aInst) const;
|
||||||
};
|
};
|
||||||
|
@ -209,26 +196,6 @@ struct StaticCategory final {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
struct JSServiceEntry final {
|
|
||||||
using InterfaceList = AutoTArray<const nsIID*, 4>;
|
|
||||||
|
|
||||||
static const JSServiceEntry* Lookup(const nsACString& aName);
|
|
||||||
|
|
||||||
StringOffset mName;
|
|
||||||
ModuleID mModuleID;
|
|
||||||
|
|
||||||
InterfaceOffset mInterfaceOffset;
|
|
||||||
uint8_t mInterfaceCount;
|
|
||||||
|
|
||||||
nsCString Name() const;
|
|
||||||
|
|
||||||
const StaticModule& Module() const {
|
|
||||||
return gStaticModules[size_t(mModuleID)];
|
|
||||||
}
|
|
||||||
|
|
||||||
InterfaceList Interfaces() const;
|
|
||||||
};
|
|
||||||
|
|
||||||
class StaticComponents final {
|
class StaticComponents final {
|
||||||
public:
|
public:
|
||||||
static const StaticModule* LookupByCID(const nsID& aCID);
|
static const StaticModule* LookupByCID(const nsID& aCID);
|
||||||
|
@ -244,8 +211,6 @@ class StaticComponents final {
|
||||||
|
|
||||||
static already_AddRefed<nsIUTF8StringEnumerator> GetComponentJSMs();
|
static already_AddRefed<nsIUTF8StringEnumerator> GetComponentJSMs();
|
||||||
|
|
||||||
static Span<const JSServiceEntry> GetJSServices();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Calls any module unload from manifests whose components have been loaded.
|
* Calls any module unload from manifests whose components have been loaded.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -6,10 +6,8 @@
|
||||||
|
|
||||||
Classes = [
|
Classes = [
|
||||||
{
|
{
|
||||||
'js_name': 'catMan',
|
|
||||||
'cid': '{16d222a6-1dd2-11b2-b693-f38b02c021b2}',
|
'cid': '{16d222a6-1dd2-11b2-b693-f38b02c021b2}',
|
||||||
'contract_ids': ['@mozilla.org/categorymanager;1'],
|
'contract_ids': ['@mozilla.org/categorymanager;1'],
|
||||||
'interfaces': ['nsICategoryManager'],
|
|
||||||
'legacy_constructor': 'nsCategoryManager::Create',
|
'legacy_constructor': 'nsCategoryManager::Create',
|
||||||
'headers': ['/xpcom/components/nsCategoryManager.h'],
|
'headers': ['/xpcom/components/nsCategoryManager.h'],
|
||||||
'processes': ProcessSelector.ALLOW_IN_GPU_RDD_AND_SOCKET_PROCESS,
|
'processes': ProcessSelector.ALLOW_IN_GPU_RDD_AND_SOCKET_PROCESS,
|
||||||
|
|
|
@ -173,8 +173,6 @@ class StringTable(object):
|
||||||
|
|
||||||
strings = StringTable()
|
strings = StringTable()
|
||||||
|
|
||||||
interfaces = []
|
|
||||||
|
|
||||||
|
|
||||||
# Represents a C++ namespace, containing a set of classes and potentially
|
# Represents a C++ namespace, containing a set of classes and potentially
|
||||||
# sub-namespaces. This is used to generate pre-declarations for incomplete
|
# sub-namespaces. This is used to generate pre-declarations for incomplete
|
||||||
|
@ -225,17 +223,6 @@ class ModuleEntry(object):
|
||||||
self.processes = data.get('processes', 0)
|
self.processes = data.get('processes', 0)
|
||||||
self.headers = data.get('headers', [])
|
self.headers = data.get('headers', [])
|
||||||
|
|
||||||
self.js_name = data.get('js_name', None)
|
|
||||||
self.interfaces = data.get('interfaces', [])
|
|
||||||
|
|
||||||
if len(self.interfaces) > 255:
|
|
||||||
raise Exception('JS service %s may not have more than 255 '
|
|
||||||
'interfaces' % self.js_name)
|
|
||||||
|
|
||||||
self.interfaces_offset = len(interfaces)
|
|
||||||
for iface in self.interfaces:
|
|
||||||
interfaces.append(iface)
|
|
||||||
|
|
||||||
# If the manifest declares Init or Unload functions, this contains its
|
# If the manifest declares Init or Unload functions, this contains its
|
||||||
# index, as understood by the `CallInitFunc()` function.
|
# index, as understood by the `CallInitFunc()` function.
|
||||||
#
|
#
|
||||||
|
@ -317,19 +304,6 @@ class ModuleEntry(object):
|
||||||
contract_id=contract_id,
|
contract_id=contract_id,
|
||||||
processes=lower_processes(self.processes))
|
processes=lower_processes(self.processes))
|
||||||
|
|
||||||
# Generates the C++ code for a JSServiceEntry represengin this module.
|
|
||||||
def lower_js_service(self):
|
|
||||||
return """
|
|
||||||
{{
|
|
||||||
{js_name},
|
|
||||||
ModuleID::{name},
|
|
||||||
{{ {iface_offset} }},
|
|
||||||
{iface_count}
|
|
||||||
}}""".format(js_name=strings.entry_to_cxx(self.js_name),
|
|
||||||
name=self.name,
|
|
||||||
iface_offset=self.interfaces_offset,
|
|
||||||
iface_count=len(self.interfaces))
|
|
||||||
|
|
||||||
# Generates the C++ code necessary to construct an instance of this
|
# Generates the C++ code necessary to construct an instance of this
|
||||||
# component.
|
# component.
|
||||||
#
|
#
|
||||||
|
@ -521,13 +495,6 @@ def gen_module_funcs(substs, funcs):
|
||||||
substs['init_count'] = len(funcs)
|
substs['init_count'] = len(funcs)
|
||||||
|
|
||||||
|
|
||||||
def gen_interfaces(ifaces):
|
|
||||||
res = []
|
|
||||||
for iface in ifaces:
|
|
||||||
res.append(' nsXPTInterface::%s,\n' % iface)
|
|
||||||
return ''.join(res)
|
|
||||||
|
|
||||||
|
|
||||||
# Generates class pre-declarations for any types referenced in `Classes` array
|
# Generates class pre-declarations for any types referenced in `Classes` array
|
||||||
# entries which do not have corresponding `headers` entries to fully declare
|
# entries which do not have corresponding `headers` entries to fully declare
|
||||||
# their types.
|
# their types.
|
||||||
|
@ -619,7 +586,6 @@ def gen_substs(manifests):
|
||||||
contracts = []
|
contracts = []
|
||||||
contract_map = {}
|
contract_map = {}
|
||||||
categories = defaultdict(list)
|
categories = defaultdict(list)
|
||||||
js_services = {}
|
|
||||||
|
|
||||||
jsms = set()
|
jsms = set()
|
||||||
|
|
||||||
|
@ -647,20 +613,12 @@ def gen_substs(manifests):
|
||||||
if mod.jsm:
|
if mod.jsm:
|
||||||
jsms.add(mod.jsm)
|
jsms.add(mod.jsm)
|
||||||
|
|
||||||
if mod.js_name:
|
|
||||||
if mod.js_name in js_services:
|
|
||||||
raise Exception('Duplicate JS service name: %s' % mod.js_name)
|
|
||||||
js_services[mod.js_name] = mod
|
|
||||||
|
|
||||||
cid_phf = PerfectHash(modules, PHF_SIZE,
|
cid_phf = PerfectHash(modules, PHF_SIZE,
|
||||||
key=lambda module: module.cid.bytes)
|
key=lambda module: module.cid.bytes)
|
||||||
|
|
||||||
contract_phf = PerfectHash(contracts, PHF_SIZE,
|
contract_phf = PerfectHash(contracts, PHF_SIZE,
|
||||||
key=lambda entry: entry.contract)
|
key=lambda entry: entry.contract)
|
||||||
|
|
||||||
js_services_phf = PerfectHash(list(js_services.values()), PHF_SIZE,
|
|
||||||
key=lambda entry: entry.js_name)
|
|
||||||
|
|
||||||
substs = {}
|
substs = {}
|
||||||
|
|
||||||
gen_categories(substs, categories)
|
gen_categories(substs, categories)
|
||||||
|
@ -678,8 +636,6 @@ def gen_substs(manifests):
|
||||||
substs['component_jsms'] = '\n'.join(' %s,' % strings.entry_to_cxx(jsm)
|
substs['component_jsms'] = '\n'.join(' %s,' % strings.entry_to_cxx(jsm)
|
||||||
for jsm in sorted(jsms)) + '\n'
|
for jsm in sorted(jsms)) + '\n'
|
||||||
|
|
||||||
substs['interfaces'] = gen_interfaces(interfaces)
|
|
||||||
|
|
||||||
substs['decls'] = gen_decls(types)
|
substs['decls'] = gen_decls(types)
|
||||||
|
|
||||||
substs['constructors'] = gen_constructors(cid_phf.entries)
|
substs['constructors'] = gen_constructors(cid_phf.entries)
|
||||||
|
@ -713,19 +669,6 @@ def gen_substs(manifests):
|
||||||
key_bytes='aKey.BeginReading()',
|
key_bytes='aKey.BeginReading()',
|
||||||
key_length='aKey.Length()')
|
key_length='aKey.Length()')
|
||||||
|
|
||||||
substs['js_services_table'] = js_services_phf.cxx_codegen(
|
|
||||||
name='LookupJSService',
|
|
||||||
entry_type='JSServiceEntry',
|
|
||||||
entries_name='gJSServices',
|
|
||||||
lower_entry=lambda entry: entry.lower_js_service(),
|
|
||||||
|
|
||||||
return_type='const JSServiceEntry*',
|
|
||||||
return_entry='return entry.Name() == aKey ? &entry : nullptr;',
|
|
||||||
|
|
||||||
key_type='const nsACString&',
|
|
||||||
key_bytes='aKey.BeginReading()',
|
|
||||||
key_length='aKey.Length()')
|
|
||||||
|
|
||||||
# Do this only after everything else has been emitted so we're sure the
|
# Do this only after everything else has been emitted so we're sure the
|
||||||
# string table is complete.
|
# string table is complete.
|
||||||
substs['strings'] = strings.to_cxx()
|
substs['strings'] = strings.to_cxx()
|
||||||
|
|
|
@ -1440,6 +1440,10 @@ nsresult nsComponentManagerImpl::GetService(ModuleID aId, const nsIID& aIID,
|
||||||
|
|
||||||
MutexLock lock(mLock);
|
MutexLock lock(mLock);
|
||||||
|
|
||||||
|
if (!entry.Active()) {
|
||||||
|
return NS_ERROR_FACTORY_NOT_REGISTERED;
|
||||||
|
}
|
||||||
|
|
||||||
Maybe<EntryWrapper> wrapper;
|
Maybe<EntryWrapper> wrapper;
|
||||||
if (entry.Overridable()) {
|
if (entry.Overridable()) {
|
||||||
// If we expect this service to be overridden by test code, we need to look
|
// If we expect this service to be overridden by test code, we need to look
|
||||||
|
@ -1448,8 +1452,6 @@ nsresult nsComponentManagerImpl::GetService(ModuleID aId, const nsIID& aIID,
|
||||||
if (!wrapper) {
|
if (!wrapper) {
|
||||||
return NS_ERROR_FACTORY_NOT_REGISTERED;
|
return NS_ERROR_FACTORY_NOT_REGISTERED;
|
||||||
}
|
}
|
||||||
} else if (!entry.Active()) {
|
|
||||||
return NS_ERROR_FACTORY_NOT_REGISTERED;
|
|
||||||
} else {
|
} else {
|
||||||
wrapper.emplace(&entry);
|
wrapper.emplace(&entry);
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,10 +12,8 @@ Classes = [
|
||||||
'headers': ['nsArray.h'],
|
'headers': ['nsArray.h'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'js_name': 'obs',
|
|
||||||
'cid': '{d07f5195-e3d1-11d2-8acd-00105a1b8860}',
|
'cid': '{d07f5195-e3d1-11d2-8acd-00105a1b8860}',
|
||||||
'contract_ids': ['@mozilla.org/observer-service;1'],
|
'contract_ids': ['@mozilla.org/observer-service;1'],
|
||||||
'interfaces': ['nsIObserverService'],
|
|
||||||
'legacy_constructor': 'nsObserverService::Create',
|
'legacy_constructor': 'nsObserverService::Create',
|
||||||
'headers': ['/xpcom/ds/nsObserverService.h'],
|
'headers': ['/xpcom/ds/nsObserverService.h'],
|
||||||
'processes': ProcessSelector.ALLOW_IN_GPU_RDD_VR_AND_SOCKET_PROCESS,
|
'processes': ProcessSelector.ALLOW_IN_GPU_RDD_VR_AND_SOCKET_PROCESS,
|
||||||
|
|
|
@ -6,10 +6,8 @@
|
||||||
|
|
||||||
Classes = [
|
Classes = [
|
||||||
{
|
{
|
||||||
'js_name': 'dirsvc',
|
|
||||||
'cid': '{f00152d0-b40b-11d3-8c9c-000064657374}',
|
'cid': '{f00152d0-b40b-11d3-8c9c-000064657374}',
|
||||||
'contract_ids': ['@mozilla.org/file/directory_service;1'],
|
'contract_ids': ['@mozilla.org/file/directory_service;1'],
|
||||||
'interfaces': ['nsIDirectoryService', 'nsIProperties'],
|
|
||||||
'legacy_constructor': 'nsDirectoryService::Create',
|
'legacy_constructor': 'nsDirectoryService::Create',
|
||||||
'headers': ['nsDirectoryService.h'],
|
'headers': ['nsDirectoryService.h'],
|
||||||
},
|
},
|
||||||
|
|
|
@ -179,7 +179,7 @@ utility_types = [
|
||||||
|
|
||||||
# Core of the code generator. Takes a list of raw JSON XPT interfaces, and
|
# Core of the code generator. Takes a list of raw JSON XPT interfaces, and
|
||||||
# writes out a file containing the necessary static declarations into fd.
|
# writes out a file containing the necessary static declarations into fd.
|
||||||
def link_to_cpp(interfaces, fd, header_fd):
|
def link_to_cpp(interfaces, fd):
|
||||||
# Perfect Hash from IID to interface.
|
# Perfect Hash from IID to interface.
|
||||||
iid_phf = PerfectHash(interfaces, PHFSIZE,
|
iid_phf = PerfectHash(interfaces, PHFSIZE,
|
||||||
key=lambda i: iid_bytes(i['uuid']))
|
key=lambda i: iid_bytes(i['uuid']))
|
||||||
|
@ -449,20 +449,8 @@ def link_to_cpp(interfaces, fd, header_fd):
|
||||||
for iface in iid_phf.entries:
|
for iface in iid_phf.entries:
|
||||||
lower_iface(iface)
|
lower_iface(iface)
|
||||||
|
|
||||||
# Write out the final output files
|
# Write out the final output file
|
||||||
fd.write("/* THIS FILE WAS GENERATED BY xptcodegen.py - DO NOT EDIT */\n\n")
|
fd.write("/* THIS FILE WAS GENERATED BY xptcodegen.py - DO NOT EDIT */\n\n")
|
||||||
header_fd.write("/* THIS FILE WAS GENERATED BY xptcodegen.py - DO NOT EDIT */\n\n")
|
|
||||||
|
|
||||||
header_fd.write("""
|
|
||||||
enum class nsXPTInterface : uint16_t {
|
|
||||||
""")
|
|
||||||
|
|
||||||
for entry in iid_phf.entries:
|
|
||||||
header_fd.write(" %s,\n" % entry['name'])
|
|
||||||
|
|
||||||
header_fd.write("""
|
|
||||||
};
|
|
||||||
""")
|
|
||||||
|
|
||||||
# Include any bindings files which we need to include for webidl types
|
# Include any bindings files which we need to include for webidl types
|
||||||
for include in sorted(includes):
|
for include in sorted(includes):
|
||||||
|
@ -560,7 +548,7 @@ const uint16_t sInterfacesSize = mozilla::ArrayLength(sInterfaces);
|
||||||
""")
|
""")
|
||||||
|
|
||||||
|
|
||||||
def link_and_write(files, outfile, outheader):
|
def link_and_write(files, outfile):
|
||||||
interfaces = []
|
interfaces = []
|
||||||
for file in files:
|
for file in files:
|
||||||
with open(file, 'r') as fd:
|
with open(file, 'r') as fd:
|
||||||
|
@ -574,7 +562,7 @@ def link_and_write(files, outfile, outheader):
|
||||||
iids.add(interface['uuid'])
|
iids.add(interface['uuid'])
|
||||||
names.add(interface['name'])
|
names.add(interface['name'])
|
||||||
|
|
||||||
link_to_cpp(interfaces, outfile, outheader)
|
link_to_cpp(interfaces, outfile)
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
@ -583,12 +571,11 @@ def main():
|
||||||
|
|
||||||
parser = ArgumentParser()
|
parser = ArgumentParser()
|
||||||
parser.add_argument('outfile', help='Output C++ file to generate')
|
parser.add_argument('outfile', help='Output C++ file to generate')
|
||||||
parser.add_argument('outheader', help='Output C++ header file to generate')
|
|
||||||
parser.add_argument('xpts', nargs='*', help='source xpt files')
|
parser.add_argument('xpts', nargs='*', help='source xpt files')
|
||||||
|
|
||||||
args = parser.parse_args(sys.argv[1:])
|
args = parser.parse_args(sys.argv[1:])
|
||||||
with open(args.outfile, 'w') as fd, open(args.outheader, 'w') as header_fd:
|
with open(args.outfile, 'w') as fd:
|
||||||
link_and_write(args.xpts, fd, header_fd)
|
link_and_write(args.xpts, fd)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
|
@ -21,7 +21,6 @@
|
||||||
#include "js/Value.h"
|
#include "js/Value.h"
|
||||||
#include "nsString.h"
|
#include "nsString.h"
|
||||||
#include "nsTArray.h"
|
#include "nsTArray.h"
|
||||||
#include "xptdata.h"
|
|
||||||
|
|
||||||
// Forward Declarations
|
// Forward Declarations
|
||||||
namespace mozilla {
|
namespace mozilla {
|
||||||
|
@ -70,10 +69,6 @@ struct nsXPTInterfaceInfo {
|
||||||
return xpt::detail::InterfaceByName(aName);
|
return xpt::detail::InterfaceByName(aName);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const nsXPTInterfaceInfo* Get(nsXPTInterface aID) {
|
|
||||||
return ByIndex(uint16_t(aID));
|
|
||||||
}
|
|
||||||
|
|
||||||
// These are only needed for Components_interfaces's enumerator.
|
// These are only needed for Components_interfaces's enumerator.
|
||||||
static const nsXPTInterfaceInfo* ByIndex(uint16_t aIndex) {
|
static const nsXPTInterfaceInfo* ByIndex(uint16_t aIndex) {
|
||||||
// NOTE: We add 1 here, as the internal index 0 is reserved for null.
|
// NOTE: We add 1 here, as the internal index 0 is reserved for null.
|
||||||
|
|
|
@ -6,18 +6,14 @@
|
||||||
|
|
||||||
Classes = [
|
Classes = [
|
||||||
{
|
{
|
||||||
'js_name': 'appShell',
|
|
||||||
'cid': '{0099907d-123c-4853-a46a-43098b5fb68c}',
|
'cid': '{0099907d-123c-4853-a46a-43098b5fb68c}',
|
||||||
'contract_ids': ['@mozilla.org/appshell/appShellService;1'],
|
'contract_ids': ['@mozilla.org/appshell/appShellService;1'],
|
||||||
'interfaces': ['nsIAppShellService'],
|
|
||||||
'type': 'nsAppShellService',
|
'type': 'nsAppShellService',
|
||||||
'headers': ['/xpfe/appshell/nsAppShellService.h'],
|
'headers': ['/xpfe/appshell/nsAppShellService.h'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'js_name': 'wm',
|
|
||||||
'cid': '{79a2b7cc-f05b-4605-bfa0-fac54f27eec8}',
|
'cid': '{79a2b7cc-f05b-4605-bfa0-fac54f27eec8}',
|
||||||
'contract_ids': ['@mozilla.org/appshell/window-mediator;1'],
|
'contract_ids': ['@mozilla.org/appshell/window-mediator;1'],
|
||||||
'interfaces': ['nsIWindowMediator'],
|
|
||||||
'type': 'nsWindowMediator',
|
'type': 'nsWindowMediator',
|
||||||
'headers': ['/xpfe/appshell/nsWindowMediator.h'],
|
'headers': ['/xpfe/appshell/nsWindowMediator.h'],
|
||||||
'init_method': 'Init',
|
'init_method': 'Init',
|
||||||
|
|
Загрузка…
Ссылка в новой задаче