Merge mozilla-inbound to mozilla-central. a=merge

This commit is contained in:
Dorel Luca 2018-05-28 11:46:41 +03:00
Родитель db03ba6e9c 894cc5fddb
Коммит c581ba2f76
45 изменённых файлов: 167 добавлений и 62 удалений

Просмотреть файл

@ -474,7 +474,7 @@ async function interactiveUpdateTest(autoUpdate, checkFn) {
await checkPromise; await checkPromise;
BrowserTestUtils.removeTab(gBrowser.selectedTab); BrowserTestUtils.removeTab(gBrowser.selectedTab);
addon.uninstall(); await addon.uninstall();
await SpecialPowers.popPrefEnv(); await SpecialPowers.popPrefEnv();
} }
@ -501,7 +501,7 @@ add_task(async function() {
for (let addon of await AddonManager.getAllAddons()) { for (let addon of await AddonManager.getAllAddons()) {
if (!existingAddons.has(addon.id)) { if (!existingAddons.has(addon.id)) {
ok(false, `Addon ${addon.id} was left installed at the end of the test`); ok(false, `Addon ${addon.id} was left installed at the end of the test`);
addon.uninstall(); await addon.uninstall();
} }
} }
}); });

Просмотреть файл

@ -1617,15 +1617,15 @@ protected:
bool DetermineFontSizeInflationState(); bool DetermineFontSizeInflationState();
void RecordAlloc(void* aPtr) { void RecordAlloc(void* aPtr) {
#ifdef DEBUG #ifdef MOZ_DIAGNOSTIC_ASSERT_ENABLED
MOZ_ASSERT(!mAllocatedPointers.Contains(aPtr)); MOZ_DIAGNOSTIC_ASSERT(!mAllocatedPointers.Contains(aPtr));
mAllocatedPointers.PutEntry(aPtr); mAllocatedPointers.PutEntry(aPtr);
#endif #endif
} }
void RecordFree(void* aPtr) { void RecordFree(void* aPtr) {
#ifdef DEBUG #ifdef MOZ_DIAGNOSTIC_ASSERT_ENABLED
MOZ_ASSERT(mAllocatedPointers.Contains(aPtr)); MOZ_DIAGNOSTIC_ASSERT(mAllocatedPointers.Contains(aPtr));
mAllocatedPointers.RemoveEntry(aPtr); mAllocatedPointers.RemoveEntry(aPtr);
#endif #endif
} }
@ -1717,7 +1717,9 @@ protected:
#ifdef DEBUG #ifdef DEBUG
nsIFrame* mDrawEventTargetFrame; nsIFrame* mDrawEventTargetFrame;
#endif
#ifdef MOZ_DIAGNOSTIC_ASSERT_ENABLED
// We track allocated pointers in a debug-only hashtable to assert against // We track allocated pointers in a debug-only hashtable to assert against
// missing/double frees. // missing/double frees.
nsTHashtable<nsPtrHashKey<void>> mAllocatedPointers; nsTHashtable<nsPtrHashKey<void>> mAllocatedPointers;

Просмотреть файл

@ -612,6 +612,7 @@ nsFrame::Init(nsIContent* aContent,
mContent = aContent; mContent = aContent;
mParent = aParent; mParent = aParent;
MOZ_DIAGNOSTIC_ASSERT(!mParent || PresShell() == mParent->PresShell());
if (aPrevInFlow) { if (aPrevInFlow) {
mWritingMode = aPrevInFlow->GetWritingMode(); mWritingMode = aPrevInFlow->GetWritingMode();
@ -10914,6 +10915,7 @@ nsIFrame::SetParent(nsContainerFrame* aParent)
// Note that the current mParent may already be destroyed at this point. // Note that the current mParent may already be destroyed at this point.
mParent = aParent; mParent = aParent;
MOZ_DIAGNOSTIC_ASSERT(!mParent || PresShell() == mParent->PresShell());
if (::IsXULBoxWrapped(this)) { if (::IsXULBoxWrapped(this)) {
::InitBoxMetrics(this, true); ::InitBoxMetrics(this, true);
} else { } else {

Просмотреть файл

@ -780,6 +780,7 @@ public:
void SetComputedStyle(ComputedStyle* aStyle) void SetComputedStyle(ComputedStyle* aStyle)
{ {
if (aStyle != mComputedStyle) { if (aStyle != mComputedStyle) {
MOZ_DIAGNOSTIC_ASSERT(PresShell() == aStyle->PresContextForFrame()->PresShell());
RefPtr<ComputedStyle> oldComputedStyle = mComputedStyle.forget(); RefPtr<ComputedStyle> oldComputedStyle = mComputedStyle.forget();
mComputedStyle = aStyle; mComputedStyle = aStyle;
DidSetComputedStyle(oldComputedStyle); DidSetComputedStyle(oldComputedStyle);
@ -795,6 +796,7 @@ public:
void SetComputedStyleWithoutNotification(ComputedStyle* aStyle) void SetComputedStyleWithoutNotification(ComputedStyle* aStyle)
{ {
if (aStyle != mComputedStyle) { if (aStyle != mComputedStyle) {
MOZ_DIAGNOSTIC_ASSERT(PresShell() == aStyle->PresContextForFrame()->PresShell());
mComputedStyle = aStyle; mComputedStyle = aStyle;
} }
} }

Просмотреть файл

@ -106,10 +106,6 @@ pref("network.http.max-persistent-connections-per-proxy", 20);
pref("network.http.spdy.push-allowance", 32768); pref("network.http.spdy.push-allowance", 32768);
pref("network.http.spdy.default-hpack-buffer", 4096); // 4k pref("network.http.spdy.default-hpack-buffer", 4096); // 4k
// Racing the cache with the network should be disabled to prevent accidental
// data usage.
pref("network.http.rcwn.enabled", false);
// See bug 545869 for details on why these are set the way they are // See bug 545869 for details on why these are set the way they are
pref("network.buffer.cache.count", 24); pref("network.buffer.cache.count", 24);
pref("network.buffer.cache.size", 16384); pref("network.buffer.cache.size", 16384);

Просмотреть файл

@ -1322,10 +1322,11 @@ pref("dom.event.clipboardevents.enabled", true);
pref("dom.event.highrestimestamp.enabled", true); pref("dom.event.highrestimestamp.enabled", true);
pref("dom.event.coalesce_mouse_move", true); pref("dom.event.coalesce_mouse_move", true);
pref("dom.webcomponents.shadowdom.enabled", false);
#ifdef NIGHTLY_BUILD #ifdef NIGHTLY_BUILD
pref("dom.webcomponents.shadowdom.enabled", true);
pref("dom.webcomponents.customelements.enabled", true); pref("dom.webcomponents.customelements.enabled", true);
#else #else
pref("dom.webcomponents.shadowdom.enabled", false);
pref("dom.webcomponents.customelements.enabled", false); pref("dom.webcomponents.customelements.enabled", false);
#endif #endif

Просмотреть файл

@ -112,6 +112,7 @@
#include "nsIMIMEInputStream.h" #include "nsIMIMEInputStream.h"
#include "nsIMultiplexInputStream.h" #include "nsIMultiplexInputStream.h"
#include "../../cache2/CacheFileUtils.h" #include "../../cache2/CacheFileUtils.h"
#include "nsINetworkLinkService.h"
#ifdef MOZ_TASK_TRACER #ifdef MOZ_TASK_TRACER
#include "GeckoTaskTracer.h" #include "GeckoTaskTracer.h"
@ -9122,6 +9123,23 @@ nsHttpChannel::TriggerNetwork()
nsresult nsresult
nsHttpChannel::MaybeRaceCacheWithNetwork() nsHttpChannel::MaybeRaceCacheWithNetwork()
{ {
nsresult rv;
nsCOMPtr<nsINetworkLinkService> netLinkSvc =
do_GetService(NS_NETWORK_LINK_SERVICE_CONTRACTID, &rv);
NS_ENSURE_SUCCESS(rv, rv);
uint32_t linkType;
rv = netLinkSvc->GetLinkType(&linkType);
NS_ENSURE_SUCCESS(rv, rv);
if (!(linkType == nsINetworkLinkService::LINK_TYPE_UNKNOWN ||
linkType == nsINetworkLinkService::LINK_TYPE_ETHERNET ||
linkType == nsINetworkLinkService::LINK_TYPE_USB ||
linkType == nsINetworkLinkService::LINK_TYPE_WIFI)) {
return NS_OK;
}
// Don't trigger the network if the load flags say so. // Don't trigger the network if the load flags say so.
if (mLoadFlags & (LOAD_ONLY_FROM_CACHE | LOAD_NO_NETWORK_IO)) { if (mLoadFlags & (LOAD_ONLY_FROM_CACHE | LOAD_NO_NETWORK_IO)) {
return NS_OK; return NS_OK;

Просмотреть файл

@ -640,11 +640,9 @@ SpecialPowersObserverAPI.prototype = {
let id = aMessage.data.id; let id = aMessage.data.id;
let extension = this._extensions.get(id); let extension = this._extensions.get(id);
this._extensions.delete(id); this._extensions.delete(id);
let {setTimeout} = ChromeUtils.import("resource://gre/modules/Timer.jsm", null); let done = async () => {
let done = () => { await extension._uninstallPromise;
setTimeout(() => {
this._sendReply(aMessage, "SPExtensionMessage", {id, type: "extensionUnloaded", args: []}); this._sendReply(aMessage, "SPExtensionMessage", {id, type: "extensionUnloaded", args: []});
}, 0);
}; };
extension.shutdown().then(done, done); extension.shutdown().then(done, done);
return undefined; return undefined;

Просмотреть файл

@ -2,5 +2,3 @@
[ImageBitmapRenderingContext interface: existence and properties of interface object] [ImageBitmapRenderingContext interface: existence and properties of interface object]
expected: FAIL expected: FAIL
[interfaces.any.html]

Просмотреть файл

@ -298645,6 +298645,26 @@
{} {}
] ]
], ],
"service-workers/service-worker/resources/service-worker-interception-dynamic-import-worker.js": [
[
{}
]
],
"service-workers/service-worker/resources/service-worker-interception-network-worker.js": [
[
{}
]
],
"service-workers/service-worker/resources/service-worker-interception-service-worker.js": [
[
{}
]
],
"service-workers/service-worker/resources/service-worker-interception-static-import-worker.js": [
[
{}
]
],
"service-workers/service-worker/resources/shared-worker-controlled.js": [ "service-workers/service-worker/resources/shared-worker-controlled.js": [
[ [
{} {}
@ -369622,6 +369642,12 @@
{} {}
] ]
], ],
"service-workers/service-worker/dedicated-worker-service-worker-interception.https.html": [
[
"/service-workers/service-worker/dedicated-worker-service-worker-interception.https.html",
{}
]
],
"service-workers/service-worker/detached-context.https.html": [ "service-workers/service-worker/detached-context.https.html": [
[ [
"/service-workers/service-worker/detached-context.https.html", "/service-workers/service-worker/detached-context.https.html",
@ -579452,11 +579478,11 @@
"testharness" "testharness"
], ],
"html/semantics/embedded-content/the-img-element/sizes/sizes-dynamic-001-ref.html": [ "html/semantics/embedded-content/the-img-element/sizes/sizes-dynamic-001-ref.html": [
"d2a087e2d55f7d0a2de3a0008c149932151a69f0", "497a115d29e597db7ef08aff11534fd69c449130",
"support" "support"
], ],
"html/semantics/embedded-content/the-img-element/sizes/sizes-dynamic-001.html": [ "html/semantics/embedded-content/the-img-element/sizes/sizes-dynamic-001.html": [
"0256768b16722bf4a8e6e1fb41b48e321509610f", "c25df42c0fa9b20cfac886da13c74801c63d8d40",
"reftest" "reftest"
], ],
"html/semantics/embedded-content/the-img-element/sizes/sizes-iframed.sub.html": [ "html/semantics/embedded-content/the-img-element/sizes/sizes-iframed.sub.html": [
@ -606627,6 +606653,10 @@
"8402c159967bb6e91903adc52e7d68c8d2443a72", "8402c159967bb6e91903adc52e7d68c8d2443a72",
"testharness" "testharness"
], ],
"service-workers/service-worker/dedicated-worker-service-worker-interception.https.html": [
"f0eefc8b5ca0e26d87bddd7821bcfcb2a387d6f8",
"testharness"
],
"service-workers/service-worker/detached-context.https.html": [ "service-workers/service-worker/detached-context.https.html": [
"81fc149311b54f92a2daedd81ffaba33fb88e831", "81fc149311b54f92a2daedd81ffaba33fb88e831",
"testharness" "testharness"
@ -608075,6 +608105,22 @@
"f7c6bb3ba222dc35a09ef806a7c6d145339f9eb2", "f7c6bb3ba222dc35a09ef806a7c6d145339f9eb2",
"support" "support"
], ],
"service-workers/service-worker/resources/service-worker-interception-dynamic-import-worker.js": [
"4b123607e3cb215ed6ebcb1d6c88793c2245be50",
"support"
],
"service-workers/service-worker/resources/service-worker-interception-network-worker.js": [
"d14febde5e8eceecc45e6104bb91fbe41ae6dea7",
"support"
],
"service-workers/service-worker/resources/service-worker-interception-service-worker.js": [
"323d1116c23cd9bfb9d6b14e7d815dfb132e36d0",
"support"
],
"service-workers/service-worker/resources/service-worker-interception-static-import-worker.js": [
"0f321563c9d64c45859f548988d0701e4e6373c5",
"support"
],
"service-workers/service-worker/resources/shared-worker-controlled.js": [ "service-workers/service-worker/resources/shared-worker-controlled.js": [
"9ae937c2e8499991432caa4587eb68fe2998f503", "9ae937c2e8499991432caa4587eb68fe2998f503",
"support" "support"
@ -608684,7 +608730,7 @@
"testharness" "testharness"
], ],
"shadow-dom/input-element-list.html": [ "shadow-dom/input-element-list.html": [
"79b4a278f0e35646cfdffeebf8f0523e2772bc9b", "fcfa6fee4ecc1391a457880bad3564778a76127a",
"testharness" "testharness"
], ],
"shadow-dom/layout-slot-no-longer-assigned.html": [ "shadow-dom/layout-slot-no-longer-assigned.html": [

Просмотреть файл

@ -2,5 +2,3 @@
[Untitled] [Untitled]
expected: FAIL expected: FAIL
[successes_AES-CTR.https.any.html]

Просмотреть файл

@ -2,5 +2,3 @@
[Untitled] [Untitled]
expected: FAIL expected: FAIL
[successes_HMAC.https.any.html]

Просмотреть файл

@ -1,2 +1 @@
prefs: [network.http.rcwn.enabled:false] prefs: [network.http.rcwn.enabled:false]
[304.htm]

Просмотреть файл

@ -1,2 +1 @@
prefs: [layout.css.getBoxQuads.enabled:true, layout.css.convertFromNode.enabled:true] prefs: [layout.css.getBoxQuads.enabled:true, layout.css.convertFromNode.enabled:true]
[cssom-getBoxQuads-001.html]

Просмотреть файл

@ -29,5 +29,3 @@
[SVGFEImageElement interface: attribute crossOrigin] [SVGFEImageElement interface: attribute crossOrigin]
expected: FAIL expected: FAIL
[interfaces.any.worker.html]

Просмотреть файл

@ -330,3 +330,5 @@
[dialog: Operator 'new' should instantiate a customized built-in element] [dialog: Operator 'new' should instantiate a customized built-in element]
expected: FAIL expected: FAIL
[slot: Operator 'new' should instantiate a customized built-in element]
expected: FAIL

Просмотреть файл

@ -2,5 +2,3 @@
[HTMLIFrameElement interface: attribute allow] [HTMLIFrameElement interface: attribute allow]
expected: FAIL expected: FAIL
[interfaces.any.worker.html]

Просмотреть файл

@ -1,2 +1 @@
prefs: [network.http.rcwn.enabled:false] prefs: [network.http.rcwn.enabled:false]
[conditional-get.html]

Просмотреть файл

@ -1,2 +1 @@
prefs: [network.http.rcwn.enabled:false] prefs: [network.http.rcwn.enabled:false]
[request-cache-default.html]

Просмотреть файл

@ -1,2 +1 @@
prefs: [network.http.rcwn.enabled:false] prefs: [network.http.rcwn.enabled:false]
[request-cache-force-cache.html]

Просмотреть файл

@ -1,2 +1 @@
prefs: [network.http.rcwn.enabled:false] prefs: [network.http.rcwn.enabled:false]
[request-cache-reload.html]

Просмотреть файл

@ -11,7 +11,3 @@
[html5lib_tests15.html 938af694979b4eae59e7bd3ab71d76e5254192a0] [html5lib_tests15.html 938af694979b4eae59e7bd3ab71d76e5254192a0]
expected: FAIL expected: FAIL
[html5lib_tests15.html?run_type=write]
[html5lib_tests15.html?run_type=uri]

Просмотреть файл

@ -1,2 +1 @@
prefs: [privacy.reduceTimerPrecision:false] prefs: [privacy.reduceTimerPrecision:false]
[timestamp.html]

Просмотреть файл

@ -1,2 +1,2 @@
local: ac31e7b4fddc20a83d3675d2ac27672007892a63 local: de011ba330ecaed7db2db6c6eccb647cf75ddd41
upstream: 232137f0fdacdeed99a7df5dd229d23020b0bccc upstream: 347a7974c93326910109cd0f3386cc427add4ec5

Просмотреть файл

@ -1,2 +1 @@
prefs: [privacy.reduceTimerPrecision:false] prefs: [privacy.reduceTimerPrecision:false]
[nav2_test_redirect_server.html]

Просмотреть файл

@ -1,2 +1 @@
prefs: [privacy.reduceTimerPrecision:false] prefs: [privacy.reduceTimerPrecision:false]
[basic.html]

Просмотреть файл

@ -0,0 +1,8 @@
[dedicated-worker-service-worker-interception.https.html]
expected: ERROR
[Static import should be intercepted by a service worker.]
expected: TIMEOUT
[Dynamic import should be intercepted by a service worker.]
expected: NOTRUN

Просмотреть файл

@ -1,2 +1 @@
prefs: [privacy.reduceTimerPrecision:false] prefs: [privacy.reduceTimerPrecision:false]
[resource-timing.https.html]

Просмотреть файл

@ -2,5 +2,3 @@
[URL interface: legacy window alias] [URL interface: legacy window alias]
expected: FAIL expected: FAIL
[interfaces.any.worker.html]

Просмотреть файл

@ -1,2 +1 @@
prefs: [layout.css.font-variations.enabled:true, layout.css.overflow-clip-box.enabled:true, layout.css.individual-transform.enabled:true] prefs: [layout.css.font-variations.enabled:true, layout.css.overflow-clip-box.enabled:true, layout.css.individual-transform.enabled:true]
[accumulation-per-property.html]

Просмотреть файл

@ -1,2 +1 @@
prefs: [layout.css.font-variations.enabled:true, layout.css.overflow-clip-box.enabled:true, layout.css.individual-transform.enabled:true] prefs: [layout.css.font-variations.enabled:true, layout.css.overflow-clip-box.enabled:true, layout.css.individual-transform.enabled:true]
[addition-per-property.html]

Просмотреть файл

@ -2,5 +2,3 @@
disabled: disabled:
if (os == "win") and (version == "5.1.2600"): https://bugzilla.mozilla.org/show_bug.cgi?id=1090198 if (os == "win") and (version == "5.1.2600"): https://bugzilla.mozilla.org/show_bug.cgi?id=1090198
if e10s and debug: https://bugzilla.mozilla.org/show_bug.cgi?id=1090198 if e10s and debug: https://bugzilla.mozilla.org/show_bug.cgi?id=1090198
[014.html?wss]

Просмотреть файл

@ -2,5 +2,3 @@
[WebSockets: setting Secure cookie with document.cookie, checking ws request] [WebSockets: setting Secure cookie with document.cookie, checking ws request]
expected: FAIL expected: FAIL
[006.html]

Просмотреть файл

@ -1,5 +1,3 @@
[001.html] [001.html]
disabled: disabled:
if (os == "linux") and debug and webrender: https://bugzilla.mozilla.org/show_bug.cgi?id=1372789 if (os == "linux") and debug and webrender: https://bugzilla.mozilla.org/show_bug.cgi?id=1372789
[001.html?wss]

Просмотреть файл

@ -1,2 +1 @@
prefs: [privacy.reduceTimerPrecision:false] prefs: [privacy.reduceTimerPrecision:false]
[WorkerPerformanceNow.html]

Просмотреть файл

@ -1,2 +1 @@
prefs: [privacy.reduceTimerPrecision:false] prefs: [privacy.reduceTimerPrecision:false]
[002.html]

Просмотреть файл

@ -2,5 +2,3 @@
[progress event should not be fired by sync XHR] [progress event should not be fired by sync XHR]
expected: FAIL expected: FAIL
[sync-no-progress.any.html]

Просмотреть файл

@ -0,0 +1,40 @@
<!DOCTYPE html>
<title>DedicatedWorker: ServiceWorker interception</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/test-helpers.sub.js"></script>
<script>
// Note that Chrome cannot pass these tests because of https://crbug.com/731599.
function service_worker_interception_test(url, description) {
promise_test(async t => {
// Register a service worker whose scope includes |url|.
const kServiceWorkerScriptURL =
'resources/service-worker-interception-service-worker.js';
const registration = await service_worker_unregister_and_register(
t, kServiceWorkerScriptURL, url);
add_result_callback(() => registration.unregister());
await wait_for_state(t, registration.installing, 'activated');
// Start a dedicated worker for |url|. The top-level script request and any
// module imports should be intercepted by the service worker.
const worker = new Worker(url, { type: 'module' });
const msg_event = await new Promise(resolve => worker.onmessage = resolve);
assert_equals(msg_event.data, 'LOADED_FROM_SERVICE_WORKER');
}, description);
}
service_worker_interception_test(
'resources/service-worker-interception-network-worker.js',
'Top-level module loading should be intercepted by a service worker.');
service_worker_interception_test(
'resources/service-worker-interception-static-import-worker.js',
'Static import should be intercepted by a service worker.');
service_worker_interception_test(
'resources/service-worker-interception-dynamic-import-worker.js',
'Dynamic import should be intercepted by a service worker.');
</script>

Просмотреть файл

@ -0,0 +1 @@
import('./service-worker-interception-network-worker.js');

Просмотреть файл

@ -0,0 +1 @@
postMessage('LOADED_FROM_NETWORK');

Просмотреть файл

@ -0,0 +1,9 @@
const kURL = '/service-worker-interception-network-worker.js';
const kScript = 'postMessage("LOADED_FROM_SERVICE_WORKER")';
const kHeaders = [['content-type', 'text/javascript']];
self.addEventListener('fetch', e => {
// Serve a generated response for kURL.
if (e.request.url.indexOf(kURL) != -1)
e.respondWith(new Response(kScript, { headers: kHeaders }));
});

Просмотреть файл

@ -0,0 +1 @@
import './service-worker-interception-network-worker.js';

Просмотреть файл

@ -1155,7 +1155,9 @@ class BootstrapScope {
uninstall(data, reason) { uninstall(data, reason) {
AsyncShutdown.profileChangeTeardown.addBlocker( AsyncShutdown.profileChangeTeardown.addBlocker(
`Uninstalling add-on: ${data.id}`, `Uninstalling add-on: ${data.id}`,
Management.emit("uninstall", {id: data.id})); Management.emit("uninstall", {id: data.id}).then(() => {
Management.emit("uninstall-complete", {id: data.id});
}));
} }
update(data, reason) { update(data, reason) {

Просмотреть файл

@ -56,9 +56,10 @@ XPCOMUtils.defineLazyGetter(this, "console", ExtensionUtils.getConsole);
* @param {nsIFile} file * @param {nsIFile} file
* @param {nsIURI} rootURI * @param {nsIURI} rootURI
* @param {string} installType * @param {string} installType
* @param {boolean} [embedded = false]
*/ */
class MockExtension { class MockExtension {
constructor(file, rootURI, installType) { constructor(file, rootURI, installType, embedded) {
this.id = null; this.id = null;
this.file = file; this.file = file;
this.rootURI = rootURI; this.rootURI = rootURI;
@ -84,6 +85,9 @@ class MockExtension {
this._extension = null; this._extension = null;
this._extensionPromise = promiseEvent("startup"); this._extensionPromise = promiseEvent("startup");
this._readyPromise = promiseEvent("ready"); this._readyPromise = promiseEvent("ready");
if (!embedded) {
this._uninstallPromise = promiseEvent("uninstall-complete");
}
} }
maybeSetID(uri, id) { maybeSetID(uri, id) {
@ -374,7 +378,7 @@ var ExtensionTestCommon = class ExtensionTestCommon {
// This may be "temporary" or "permanent". // This may be "temporary" or "permanent".
if (data.useAddonManager) { if (data.useAddonManager) {
return new MockExtension(file, jarURI, data.useAddonManager); return new MockExtension(file, jarURI, data.useAddonManager, data.embedded);
} }
let id; let id;

Просмотреть файл

@ -12,6 +12,8 @@ const gDashboard = Cc["@mozilla.org/network/dashboard;1"]
.getService(Ci.nsIDashboard); .getService(Ci.nsIDashboard);
const gDirServ = Cc["@mozilla.org/file/directory_service;1"] const gDirServ = Cc["@mozilla.org/file/directory_service;1"]
.getService(Ci.nsIDirectoryServiceProvider); .getService(Ci.nsIDirectoryServiceProvider);
const gNetLinkSvc = Cc["@mozilla.org/network/network-link-service;1"]
.getService(Ci.nsINetworkLinkService);
const gRequestNetworkingData = { const gRequestNetworkingData = {
"http": gDashboard.requestHttpConnections, "http": gDashboard.requestHttpConnections,
@ -127,6 +129,14 @@ function displayWebsockets(data) {
function displayRcwnStats(data) { function displayRcwnStats(data) {
let status = Services.prefs.getBoolPref("network.http.rcwn.enabled"); let status = Services.prefs.getBoolPref("network.http.rcwn.enabled");
let linkType = gNetLinkSvc.linkType;
if (!(linkType == Ci.nsINetworkLinkService.LINK_TYPE_UNKNOWN ||
linkType == Ci.nsINetworkLinkService.LINK_TYPE_ETHERNET ||
linkType == Ci.nsINetworkLinkService.LINK_TYPE_USB ||
linkType == Ci.nsINetworkLinkService.LINK_TYPE_WIFI)) {
status = false;
}
let cacheWon = data.rcwnCacheWonCount; let cacheWon = data.rcwnCacheWonCount;
let netWon = data.rcwnNetWonCount; let netWon = data.rcwnNetWonCount;
let total = data.totalNetworkRequests; let total = data.totalNetworkRequests;