diff --git a/b2g/installer/package-manifest.in b/b2g/installer/package-manifest.in index 017a6fa174..23c8a1887e 100644 --- a/b2g/installer/package-manifest.in +++ b/b2g/installer/package-manifest.in @@ -721,6 +721,7 @@ @RESPATH@/components/nsUrlClassifierHashCompleter.js @RESPATH@/components/nsUrlClassifierListManager.js @RESPATH@/components/nsUrlClassifierLib.js +@RESPATH@/components/PrivateBrowsingTrackingProtectionWhitelist.js @RESPATH@/components/url-classifier.xpt ; GNOME hooks diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in index 3bf2d1a10d..656e430055 100644 --- a/browser/installer/package-manifest.in +++ b/browser/installer/package-manifest.in @@ -650,6 +650,20 @@ @RESPATH@/browser/modules/* @RESPATH@/modules/* +; Safe Browsing +#ifdef MOZ_URL_CLASSIFIER +@RESPATH@/components/nsURLClassifier.manifest +@RESPATH@/components/nsUrlClassifierHashCompleter.js +@RESPATH@/components/nsUrlClassifierListManager.js +@RESPATH@/components/nsUrlClassifierLib.js +@RESPATH@/components/url-classifier.xpt +#endif + +; Private Browsing +@RESPATH@/components/privatebrowsing.xpt +@RESPATH@/components/PrivateBrowsing.manifest +@RESPATH@/components/PrivateBrowsingTrackingProtectionWhitelist.js + ; ANGLE GLES-on-D3D rendering library #ifdef MOZ_ANGLE_RENDERER @BINPATH@/libEGL.dll diff --git a/dom/asmjscache/test/file_slow.js b/dom/asmjscache/test/file_slow.js index 723e04bfe9..963422143c 100644 --- a/dom/asmjscache/test/file_slow.js +++ b/dom/asmjscache/test/file_slow.js @@ -18,7 +18,7 @@ function f2(stdlib, foreign, buffer) { } if (this.jsFuns) ok(jsFuns.isAsmJSModule(f2), "f2 is an asm.js module"); -var i32 = new Int32Array(1024); +var i32 = new Int32Array(16384); // Smallest allowed buffer size is 64KBy for (var i = 0; i < i32.length; i++) i32[i] = i; var f2Main = f2(this, null, i32.buffer); diff --git a/dom/audiochannel/AudioChannelAgent.h b/dom/audiochannel/AudioChannelAgent.h index 4311a7b9d9..74271199ec 100644 --- a/dom/audiochannel/AudioChannelAgent.h +++ b/dom/audiochannel/AudioChannelAgent.h @@ -70,4 +70,5 @@ private: } // namespace dom } // namespace mozilla + #endif diff --git a/dom/base/ChromeUtils.cpp b/dom/base/ChromeUtils.cpp index d4342fc8c6..4a85fc09df 100644 --- a/dom/base/ChromeUtils.cpp +++ b/dom/base/ChromeUtils.cpp @@ -30,6 +30,26 @@ ThreadSafeChromeUtils::NondeterministicGetWeakMapKeys(GlobalObject& aGlobal, } } +/* static */ void +ThreadSafeChromeUtils::NondeterministicGetWeakSetKeys(GlobalObject& aGlobal, + JS::Handle aSet, + JS::MutableHandle aRetval, + ErrorResult& aRv) +{ + if (!aSet.isObject()) { + aRetval.setUndefined(); + } else { + JSContext* cx = aGlobal.Context(); + JS::Rooted objRet(cx); + JS::Rooted setObj(cx, &aSet.toObject()); + if (!JS_NondeterministicGetWeakSetKeys(cx, setObj, &objRet)) { + aRv.Throw(NS_ERROR_OUT_OF_MEMORY); + } else { + aRetval.set(objRet ? JS::ObjectValue(*objRet) : JS::UndefinedValue()); + } + } +} + /* static */ void ChromeUtils::OriginAttributesToSuffix(dom::GlobalObject& aGlobal, const dom::OriginAttributesDictionary& aAttrs, diff --git a/dom/base/ChromeUtils.h b/dom/base/ChromeUtils.h index 103d996aed..800038a807 100644 --- a/dom/base/ChromeUtils.h +++ b/dom/base/ChromeUtils.h @@ -38,6 +38,11 @@ public: JS::Handle aMap, JS::MutableHandle aRetval, ErrorResult& aRv); + + static void NondeterministicGetWeakSetKeys(GlobalObject& aGlobal, + JS::Handle aSet, + JS::MutableHandle aRetval, + ErrorResult& aRv); }; class ChromeUtils : public ThreadSafeChromeUtils diff --git a/dom/base/ConsoleReportCollector.cpp b/dom/base/ConsoleReportCollector.cpp index 462f7242c5..05b8c755f8 100644 --- a/dom/base/ConsoleReportCollector.cpp +++ b/dom/base/ConsoleReportCollector.cpp @@ -79,6 +79,27 @@ ConsoleReportCollector::FlushConsoleReports(nsIDocument* aDocument) } } +void +ConsoleReportCollector::FlushConsoleReports(nsIConsoleReportCollector* aCollector) +{ + MOZ_ASSERT(aCollector); + + nsTArray reports; + + { + MutexAutoLock lock(mMutex); + mPendingReports.SwapElements(reports); + } + + for (uint32_t i = 0; i < reports.Length(); ++i) { + PendingReport& report = reports[i]; + aCollector->AddConsoleReport(report.mErrorFlags, report.mCategory, + report.mPropertiesFile, report.mSourceFileURI, + report.mLineNumber, report.mColumnNumber, + report.mMessageName, report.mStringParams); + } +} + ConsoleReportCollector::~ConsoleReportCollector() { } diff --git a/dom/base/ConsoleReportCollector.h b/dom/base/ConsoleReportCollector.h index 942563bfb2..ea07fa6834 100644 --- a/dom/base/ConsoleReportCollector.h +++ b/dom/base/ConsoleReportCollector.h @@ -29,6 +29,9 @@ public: void FlushConsoleReports(nsIDocument* aDocument) override; + void + FlushConsoleReports(nsIConsoleReportCollector* aCollector) override; + private: ~ConsoleReportCollector(); diff --git a/dom/base/nsGlobalWindow.cpp b/dom/base/nsGlobalWindow.cpp index bf0e9e292b..9c1a7c18eb 100644 --- a/dom/base/nsGlobalWindow.cpp +++ b/dom/base/nsGlobalWindow.cpp @@ -10688,13 +10688,6 @@ nsGlobalWindow::GetLocalStorage(ErrorResult& aError) return nullptr; } - // If the document has the sandboxed origin flag set - // don't allow access to localStorage. - if (mDoc && (mDoc->GetSandboxFlags() & SANDBOXED_ORIGIN)) { - aError.Throw(NS_ERROR_DOM_SECURITY_ERR); - return nullptr; - } - nsString documentURI; if (mDoc) { mDoc->GetDocumentURI(documentURI); diff --git a/dom/base/nsIConsoleReportCollector.h b/dom/base/nsIConsoleReportCollector.h index 0b140a5f18..7f22c4ff4c 100644 --- a/dom/base/nsIConsoleReportCollector.h +++ b/dom/base/nsIConsoleReportCollector.h @@ -66,7 +66,7 @@ public: aLineNumber, aColumnNumber, aMessageName, params); } - // Flush all pending reports to the console. + // Flush all pending reports to the console. Main thread only. // // aDocument An optional document representing where to flush the // reports. If provided, then the corresponding window's @@ -74,6 +74,14 @@ public: // go to the browser console. virtual void FlushConsoleReports(nsIDocument* aDocument) = 0; + + // Flush all pending reports to another collector. May be called from any + // thread. + // + // aCollector A required collector object that will effectively take + // ownership of our currently console reports. + virtual void + FlushConsoleReports(nsIConsoleReportCollector* aCollector) = 0; }; NS_DEFINE_STATIC_IID_ACCESSOR(nsIConsoleReportCollector, NS_NSICONSOLEREPORTCOLLECTOR_IID) diff --git a/dom/base/test/browser_messagemanager_loadprocessscript.js b/dom/base/test/browser_messagemanager_loadprocessscript.js index 39929ded21..feabfb43c6 100644 --- a/dom/base/test/browser_messagemanager_loadprocessscript.js +++ b/dom/base/test/browser_messagemanager_loadprocessscript.js @@ -1,4 +1,4 @@ -let ppmm = Cc["@mozilla.org/parentprocessmessagemanager;1"] +var ppmm = Cc["@mozilla.org/parentprocessmessagemanager;1"] .getService(Ci.nsIMessageBroadcaster); ppmm.QueryInterface(Ci.nsIProcessScriptLoader); @@ -18,7 +18,7 @@ function processScript() { }); sendSyncMessage("ProcessTest:Loaded"); } -let processScriptURL = "data:,(" + processScript.toString() + ")()"; +var processScriptURL = "data:,(" + processScript.toString() + ")()"; function initTestScript() { let init = initialProcessData; @@ -29,9 +29,9 @@ function initTestScript() { sendAsyncMessage("ProcessTest:InitGood", init.test456.get("hi")); } -let initTestScriptURL = "data:,(" + initTestScript.toString() + ")()"; +var initTestScriptURL = "data:,(" + initTestScript.toString() + ")()"; -let checkProcess = Task.async(function*(mm) { +var checkProcess = Task.async(function*(mm) { let { target } = yield promiseMessage(mm, "ProcessTest:Loaded"); target.sendAsyncMessage("ProcessTest:Reply"); yield promiseMessage(target, "ProcessTest:Finished"); diff --git a/dom/base/test/browser_state_notifications.js b/dom/base/test/browser_state_notifications.js index b66086ae7a..3279acb39a 100644 --- a/dom/base/test/browser_state_notifications.js +++ b/dom/base/test/browser_state_notifications.js @@ -4,7 +4,7 @@ "use strict"; -const { interfaces: Ci, classes: Cc, utils: Cu } = Components; +var { interfaces: Ci, classes: Cc, utils: Cu } = Components; const { addObserver, removeObserver } = Cc["@mozilla.org/observer-service;1"]. getService(Ci.nsIObserverService); const { openWindow } = Cc["@mozilla.org/embedcomp/window-watcher;1"]. diff --git a/dom/base/test/browser_use_counters.js b/dom/base/test/browser_use_counters.js index 45b821a3e4..80341bb2f4 100644 --- a/dom/base/test/browser_use_counters.js +++ b/dom/base/test/browser_use_counters.js @@ -1,13 +1,13 @@ /* -*- Mode: javascript; tab-width: 2; indent-tabs-mode: nil; js-indent-level: 2 -*- */ -let {Promise: promise} = Cu.import("resource://gre/modules/Promise.jsm", {}); +var {Promise: promise} = Cu.import("resource://gre/modules/Promise.jsm", {}); const gHttpTestRoot = "http://example.com/browser/dom/base/test/"; /** * Enable local telemetry recording for the duration of the tests. */ -let gOldContentCanRecord = false; +var gOldContentCanRecord = false; add_task(function* test_initialize() { gOldContentCanRecord = yield ContentTask.spawn(gBrowser.selectedBrowser, {}, function () { let telemetry = Cc["@mozilla.org/base/telemetry;1"].getService(Ci.nsITelemetry); @@ -112,7 +112,7 @@ function grabHistogramsFromContent(browser, use_counter_middlefix) { }); } -let check_use_counter_iframe = Task.async(function* (file, use_counter_middlefix, check_documents=true) { +var check_use_counter_iframe = Task.async(function* (file, use_counter_middlefix, check_documents=true) { info("checking " + file + " with histogram " + use_counter_middlefix); let newTab = gBrowser.addTab( "about:blank"); diff --git a/dom/base/test/bug403852_fileOpener.js b/dom/base/test/bug403852_fileOpener.js index 7d835d443f..e8de8b5996 100644 --- a/dom/base/test/bug403852_fileOpener.js +++ b/dom/base/test/bug403852_fileOpener.js @@ -1,7 +1,7 @@ -const { classes: Cc, interfaces: Ci, utils: Cu } = Components; +var { classes: Cc, interfaces: Ci, utils: Cu } = Components; Cu.importGlobalProperties(["File"]); -let testFile = Cc["@mozilla.org/file/directory_service;1"] +var testFile = Cc["@mozilla.org/file/directory_service;1"] .getService(Ci.nsIDirectoryService) .QueryInterface(Ci.nsIProperties) .get("ProfD", Ci.nsIFile); diff --git a/dom/base/test/file_audioLoop.html b/dom/base/test/file_audioLoop.html index 0d057e8d2d..d680c9a58f 100644 --- a/dom/base/test/file_audioLoop.html +++ b/dom/base/test/file_audioLoop.html @@ -1,4 +1,2 @@