From b808ffac2db34fceecd789c9776170991bb2295d Mon Sep 17 00:00:00 2001 From: roytam1 Date: Tue, 17 Jan 2023 11:23:50 +0800 Subject: [PATCH] import changes from `dev' branch of rmottola/Arctic-Fox: - Bug 1196391, part 3 - Make argument count assertions fatal in js::ExpandErrorArgumentsVA(). r=Waldo (8233c0afac) - minor cleanup (1da0b2c3e9) - Bug 1191765: Make Debugger.Object.prototype.getScript properly recognize functions without scripts. r=fitzgen (3e2753577f) - Bug 1165807 - display WeakSet and WeakMap contents in console; r=bz,fitzgen (d8f70d8e6a) - Bug 1226024 - Expose the root of the dominator tree to JavaScript; r=bz,sfink x # Please enter the commit message for your changes. Lines starting (1949832288) - Bug 1220702 - Part 1: Replace callback() and newNode() with variadic templates. What could go wrong? r=Waldo. (80e1b40871) - Bug 1220702 - Part 2: Fix the .method property of certain FunctionDeclaration nodes. r=Waldo. (47f244a6e0) - Bug 1220702 - Part 3: Distinguish ES6 generators from legacy generators in Reflect.parse() output. r=Waldo. (362bb8ea4b) - bit of Bug 1180017 - Fix up the badly-horked backout and re-land. (f4f92ff88c) - Bug 1155303 - Add telemetry for async DeferredFinalize max pause. r=smaug (3ddc7b8856) - Bug 1174796 - Make sure ReleaseNow releases everything. r=smaug (5065aa1f52) - Bug 1191918 - Remove printf debugging r=me (48e95e425e) - update some tests (26ae4a8050) - Bug 1218643 - correct a DOM test. r=smaug " (75c6302bbb) - space (26dfeca131) - Bug 1166805 part 1 - refactor common tests for whether an animated list mirrors the base version of the list into methods. r=dholbert (e538b90e00) - Bug 1166805 part 2 - Call SetCapacity before calling DOMSVGXXXList::MaybeInsertNullInAnimValListAt, to prevent fallible InsertElementAt calls from failing r=dholbert (918397681f) - Bug 1092125 - Part 1 - Add non-scaling-stroke support to nsSVGPathGeometryElement::GetGeometryBounds (except line). r=jwatt (19ee6f9517) - Bug 1092125 - part 2 - add non-scaling-stroke support to SVGLineElement::GetGeometryBounds. r=jwatt (2c84b88ff1) - Bug 1140080 - ensure we only create stop frames for gradients. r=dholbert (636db91975) - Bug 1182496 - Don't create frames for SVG descendants with failing conditional processing attributes. r=dholbert (4e976c1587) - Bug 1149542 - Part 3: Crashtest. r=dholbert (cde5ca0f57) - Bug 1209525 - Protect GetGeometryBounds from a singular non-scaling-stroke transform. r=longsonr (2cd1f2e0a4) - Bug 325427 - Add crashtest. (98ab5e6907) - Bug 803562 - force -moz-appearance: none on foreignObject elements. r=dbaron (0ba37f76ad) - Bug 950324 - Add crashtest. (6e2f7bc4c2) - Bug 1178159 - Ignore stroke-linecap:"square" on circle and ellipse. r=longsonr (42f4a9a71c) - Bug 1187770 - work around draw targets that don't display zero-length lines. r=longsonr (a612616ecb) - Bug 1222812 - add a null check in case there is no old style. r=dholbert (6a883edea2) - Bug 958160 - Compute bounds in transformed space instead of user space in GetCoveredRegion. r=longsonr (d020a10c56) - Bug 1224061: Followup to fix b2g bustage r=me CLOSED TREE (1dc2693955) - Bug 1173573 - Fix possible crash initializing sessionstorage. r=honzab (c6c77ccf7d) - Bug 536509 - Update localStorage to use common StorageAllowedForWindow logic, r=ehsan (825ee71ff3) - Bug 606655 - delete cookies UI option AskMeEveryTime and its related comments and tests. r=mak (828dfe54a5) - Bug 1194052 - Append to redirectchain before asyncopen() is called (r=sicking,mayhemer) (bb051ceb94) - Bug 1145503 - TP exceptions added while in Private Browsing mode persist beyond the Private Browsing session. r=ehsan Import url-classifier and private browsing modules. (4492b2de09) - Bug 1138979 - Pref to turn TP on when in Private Browsing mode. r=mmc , r=ehsan (5078eaa914) - Bug 1168635 - Extend nsITLSServerSocket to customize cipher suites. r=keeler (185a551640) - Bug 1165423 - WebRTC Fix DTLS handshake by expanding UDP buffer. r=rjesup (1f207e03ee) - Bug 1219939 - make nsTemporaryFileInputStream nsISeekableStream, r=jduell (f2a5ddfbf2) - Bug 1125816 - Parse FTP directory listings of Windows CE and WEC7 FTP Server r=jduell (4137b29d21) - Bug 1171016 - Initialize the linelen variable at its declaration in ParseFTPList.cpp. r=mcmanus (2a3960897d) - Bug 1197313 - remove PR_snprintf calls in netwerk/; r=froydnj (005da76d31) - Bug 1219910 - make gSocketThread a relaxed atomic variable; r=mcmanus (620d299605) - Bug 1222867 - part 1 - return already_AddRefed from WebSocketEventService::CreateFrameIfNeeded; r=mcmanus (0eee829a08) - Bug 1222867 - part 2 - be smarter about transferring ownership of WebSocketFrame; r=mcmanus (4a9fd71798) - Bug 1211001 - constant ASSERTION: nsITimer->SetDelay() called when the one-shot timer is not set up, r=mcmanus (451c903cbe) - Bug 1130822 - properly decode arbitrarily aligned data for non-tier1 platforms. r=mcmanus (bcb99913dc) - Bug 1204731 - telemetry for peer h2 goaway r=hurley (d6748682b4) - Bug 1205810 - telemetry for local h2 goaway code r=hurley (e142625588) - bug 1194818 - h2 header priority handling r=hurley (51766fff44) - bug 1194820 - h2 push promise padding handling r=hurley (560ee1f480) - bug 1208114 - fix h2 connect tunnels r=hurley (d17f920c31) - Bug 1213060 (part 1) - Properly handle discarding padding in Http2Session::OnWriteSegment. r=mcmanus (2cce4ac006) - Bug 1213060 (part 2) - Re-add state assertion in Http2Session::OnWriteSegment. r=mcmanus (6b1c030780) - fix build (39845819f6) - Bug 1214076 - allow TokenServerClient errors to be JSON.stringify'd. r=rnewman (ab6085fa97) - Bug 1220007 P1 Allow ConsoleReportCollectors to flush to another collector. r=bz (a97b2c5a57) - Bug 1220007 P2 Make InterceptedChannel's collect logs locally and only flush to nsIChannel on main thread r=bz (85b77c5a44) - Bug 867407 - Fix cloning of file URIs with search query strings (r=sworkman) (da6fd51c15) - Bug 1220728 Clear pending exceptions if string conversion fails in SWintercept error handling. r=bz (b188c34862) - Bug 1147913 - Change NS_SOCKETTRANSPORTSERVICE_CONTRACTID to NS_STREAMTRANSPORTSERVICE_CONTRACTID in RespondWithHandler::ResolvedCallback. r=ehsan (5b443e88ab) - fix namespace (562ed51caa) - Bug 1206060 - Show pinning status at about:cache. r=michal (75ed53663f) - Bug 1032254 - Generic way to pin reasource in the HTTP cache, r=michal (eeb860f8e3) - Bug 1211504. Remove unused member from RefLayer. (fab6bae915) --- b2g/installer/package-manifest.in | 1 + browser/installer/package-manifest.in | 14 + dom/asmjscache/test/file_slow.js | 2 +- dom/audiochannel/AudioChannelAgent.h | 1 + dom/base/ChromeUtils.cpp | 20 + dom/base/ChromeUtils.h | 5 + dom/base/ConsoleReportCollector.cpp | 21 + dom/base/ConsoleReportCollector.h | 3 + dom/base/nsGlobalWindow.cpp | 7 - dom/base/nsIConsoleReportCollector.h | 10 +- ...rowser_messagemanager_loadprocessscript.js | 8 +- dom/base/test/browser_state_notifications.js | 2 +- dom/base/test/browser_use_counters.js | 6 +- dom/base/test/bug403852_fileOpener.js | 4 +- dom/base/test/file_audioLoop.html | 2 - dom/base/test/file_messagemanager_unload.html | 6 - dom/base/test/file_simplecontentpolicy.js | 6 +- dom/base/test/fileapi_chromeScript.js | 2 +- dom/battery/BatteryManager.cpp | 3 - dom/battery/moz.build | 3 + .../test/marionette/test_battery_level.js | 2 +- .../test_battery_status_charging.js | 6 +- .../test_battery_status_discharging.js | 6 +- .../marionette/test_battery_status_full.js | 6 +- .../test_battery_status_not_charging.js | 6 +- .../marionette/test_battery_status_unknown.js | 6 +- .../test_deprecated_battery_level.js | 2 +- ...test_deprecated_battery_status_charging.js | 6 +- ...t_deprecated_battery_status_discharging.js | 6 +- .../test_deprecated_battery_status_full.js | 6 +- ..._deprecated_battery_status_not_charging.js | 6 +- ...test_deprecated_battery_status_unknown.js} | 6 +- .../common/webapi/BluetoothAdapter.cpp | 3 +- dom/speakermanager/SpeakerManager.cpp | 8 +- dom/storage/DOMStorage.cpp | 85 +- dom/storage/DOMStorage.h | 12 +- dom/storage/DOMStorageCache.cpp | 5 +- dom/storage/DOMStorageManager.cpp | 15 + dom/storage/DOMStorageManager.h | 3 + dom/storage/moz.build | 3 + dom/svg/DOMSVGLengthList.cpp | 26 +- dom/svg/DOMSVGLengthList.h | 6 + dom/svg/DOMSVGNumberList.cpp | 26 +- dom/svg/DOMSVGNumberList.h | 6 + dom/svg/DOMSVGPathSegList.cpp | 33 +- dom/svg/DOMSVGPathSegList.h | 4 + dom/svg/DOMSVGPointList.cpp | 33 +- dom/svg/DOMSVGPointList.h | 4 + dom/svg/DOMSVGTransformList.cpp | 26 +- dom/svg/DOMSVGTransformList.h | 6 + dom/svg/SVGCircleElement.cpp | 23 +- dom/svg/SVGCircleElement.h | 3 +- dom/svg/SVGContentUtils.cpp | 68 +- dom/svg/SVGContentUtils.h | 32 +- dom/svg/SVGEllipseElement.cpp | 23 +- dom/svg/SVGEllipseElement.h | 3 +- dom/svg/SVGImageElement.cpp | 8 +- dom/svg/SVGImageElement.h | 3 +- dom/svg/SVGLineElement.cpp | 97 +- dom/svg/SVGLineElement.h | 7 +- dom/svg/SVGPathData.cpp | 2 +- dom/svg/SVGRectElement.cpp | 31 +- dom/svg/SVGRectElement.h | 3 +- dom/svg/nsSVGPathGeometryElement.h | 14 +- dom/svg/nsSVGPolyElement.cpp | 18 +- dom/svg/nsSVGPolyElement.h | 3 +- dom/svg/test/bounds-helper.svg | 32 + dom/svg/test/test_bounds.html | 94 +- .../localstorage/interOriginFrame.js | 2 +- .../test_localStorageCookieSettings.html | 15 - dom/webidl/DominatorTree.webidl | 9 +- dom/webidl/ThreadSafeChromeUtils.webidl | 12 + dom/workers/ServiceWorkerEvents.cpp | 13 +- extensions/cookie/nsCookiePermission.cpp | 2 +- gfx/layers/Layers.h | 1 - js/public/UbiNodeDominatorTree.h | 7 + js/src/builtin/ReflectParse.cpp | 349 ++---- js/src/builtin/WeakSetObject.cpp | 18 + js/src/gdb/mozilla/Root.py | 8 +- .../tests/debug/Object-script-AsmJSNative.js | 15 + js/src/jscntxt.cpp | 18 +- js/src/jsfriendapi.h | 3 + .../js1_8_5/reflect-parse/PatternBuilders.js | 10 +- .../js1_8_5/reflect-parse/basicBuilder.js | 3 +- js/src/tests/js1_8_5/reflect-parse/classes.js | 7 +- .../reflect-parse/computedPropNames.js | 9 + .../tests/js1_8_5/reflect-parse/generators.js | 12 +- .../tests/js1_8_5/reflect-parse/methodDefn.js | 6 +- .../tests/js1_8_5/reflect-parse/newTarget.js | 2 +- js/src/vm/Debugger.cpp | 2 +- js/xpconnect/tests/unit/test_weak_keys.js | 45 + js/xpconnect/tests/unit/xpcshell.ini | 1 + layout/base/nsCSSFrameConstructor.cpp | 22 + layout/reftests/svg/conditions-09-ref.svg | 5 + layout/reftests/svg/conditions-09.svg | 6 + layout/reftests/svg/reftest.list | 2 + .../stroke-linecap-circle-ellipse-01-ref.svg | 14 + .../svg/stroke-linecap-circle-ellipse-01.svg | 14 + ...ke-linecap-round-w-zero-length-segs-01.svg | 14 +- ...ke-linecap-round-w-zero-length-segs-02.svg | 6 +- ...e-linecap-square-w-zero-length-segs-01.svg | 13 +- ...e-linecap-square-w-zero-length-segs-02.svg | 7 +- layout/svg/crashtests/1140080-1.svg | 11 + layout/svg/crashtests/1149542-1.svg | 9 + layout/svg/crashtests/1182496-1.html | 21 + layout/svg/crashtests/1209525-1.svg | 7 + layout/svg/crashtests/1223281-1.svg | 24 + layout/svg/crashtests/325427-1.svg | 20 + layout/svg/crashtests/803562-1.svg | 18 + layout/svg/crashtests/950324-1.svg | 3 + layout/svg/crashtests/crashtests.list | 10 +- layout/svg/nsSVGPathGeometryFrame.cpp | 73 +- layout/svg/nsSVGUtils.cpp | 5 +- layout/svg/svg.css | 1 + modules/libjar/InterceptedJARChannel.cpp | 12 +- modules/libjar/InterceptedJARChannel.h | 3 - modules/libpref/init/all.js | 6 +- netwerk/base/EventTokenBucket.cpp | 2 - netwerk/base/LoadInfo.cpp | 2 + netwerk/base/Predictor.cpp | 3 +- netwerk/base/TLSServerSocket.cpp | 27 +- netwerk/base/nsBaseChannel.cpp | 32 +- netwerk/base/nsChannelClassifier.cpp | 24 +- netwerk/base/nsICachingChannel.idl | 7 +- .../base/nsINetworkInterceptController.idl | 22 +- netwerk/base/nsITLSServerSocket.idl | 11 +- netwerk/base/nsSocketTransportService2.cpp | 3 +- netwerk/base/nsSocketTransportService2.h | 2 +- netwerk/base/nsTemporaryFileInputStream.cpp | 74 +- netwerk/base/nsTemporaryFileInputStream.h | 6 +- netwerk/base/nsUDPSocket.cpp | 4 +- netwerk/cache/nsDiskCacheDeviceSQL.cpp | 7 +- netwerk/cache2/AppCacheStorage.cpp | 2 +- netwerk/cache2/CacheEntry.cpp | 126 +- netwerk/cache2/CacheEntry.h | 36 +- netwerk/cache2/CacheFile.cpp | 41 +- netwerk/cache2/CacheFile.h | 7 +- netwerk/cache2/CacheFileChunk.cpp | 2 +- netwerk/cache2/CacheFileChunk.h | 2 +- netwerk/cache2/CacheFileContextEvictor.cpp | 154 ++- netwerk/cache2/CacheFileContextEvictor.h | 12 +- netwerk/cache2/CacheFileIOManager.cpp | 242 +++- netwerk/cache2/CacheFileIOManager.h | 77 +- netwerk/cache2/CacheFileInputStream.h | 2 +- netwerk/cache2/CacheFileMetadata.cpp | 56 +- netwerk/cache2/CacheFileMetadata.h | 32 +- netwerk/cache2/CacheFileOutputStream.h | 2 +- netwerk/cache2/CacheIndex.cpp | 44 +- netwerk/cache2/CacheIndex.h | 37 +- netwerk/cache2/CacheIndexIterator.h | 2 +- netwerk/cache2/CacheStorage.cpp | 4 +- netwerk/cache2/CacheStorage.h | 5 +- netwerk/cache2/CacheStorageService.cpp | 199 +++- netwerk/cache2/CacheStorageService.h | 32 +- netwerk/cache2/OldWrappers.cpp | 2 +- netwerk/cache2/moz.build | 1 + netwerk/cache2/nsICacheStorageService.idl | 9 +- netwerk/cache2/nsICacheStorageVisitor.idl | 5 +- netwerk/cache2/nsICacheTesting.idl | 17 + netwerk/cookie/nsICookieService.idl | 4 +- netwerk/protocol/about/nsAboutCache.cpp | 14 +- netwerk/protocol/data/DataChannelChild.cpp | 2 +- netwerk/protocol/data/DataChannelParent.cpp | 2 +- netwerk/protocol/data/DataChannelParent.h | 2 +- netwerk/protocol/data/nsDataHandler.cpp | 4 +- netwerk/protocol/file/nsFileChannel.cpp | 8 + .../protocol/http/ConnectionDiagnostics.cpp | 3 +- netwerk/protocol/http/Http2Compression.cpp | 2 - netwerk/protocol/http/Http2Session.cpp | 139 +-- netwerk/protocol/http/Http2Session.h | 8 +- netwerk/protocol/http/Http2Stream.cpp | 19 +- netwerk/protocol/http/HttpBaseChannel.cpp | 30 +- netwerk/protocol/http/HttpBaseChannel.h | 6 +- netwerk/protocol/http/HttpChannelChild.cpp | 5 +- netwerk/protocol/http/HttpChannelChild.h | 1 + netwerk/protocol/http/InterceptedChannel.cpp | 43 +- netwerk/protocol/http/InterceptedChannel.h | 9 +- netwerk/protocol/http/SpdySession31.cpp | 13 +- netwerk/protocol/http/SpdyStream31.cpp | 5 - netwerk/protocol/http/TunnelUtils.cpp | 11 +- netwerk/protocol/http/TunnelUtils.h | 4 + netwerk/protocol/http/nsHttpChannel.cpp | 55 +- netwerk/protocol/http/nsHttpChannel.h | 7 +- netwerk/protocol/http/nsHttpConnection.cpp | 5 - netwerk/protocol/http/nsHttpConnectionMgr.cpp | 3 - netwerk/protocol/http/nsHttpHandler.cpp | 11 +- netwerk/protocol/http/nsHttpPipeline.cpp | 3 +- netwerk/protocol/http/nsHttpTransaction.cpp | 7 - .../protocol/websocket/WebSocketChannel.cpp | 33 +- netwerk/protocol/websocket/WebSocketChannel.h | 9 +- .../websocket/WebSocketEventListenerChild.cpp | 4 +- .../websocket/WebSocketEventService.cpp | 39 +- .../websocket/WebSocketEventService.h | 11 +- netwerk/protocol/websocket/WebSocketFrame.cpp | 3 +- .../streamconv/converters/ParseFTPList.cpp | 33 +- netwerk/test/TestCookie.cpp | 2 - netwerk/test/unit/head_cache.js | 1 + netwerk/test/unit/head_cache2.js | 20 +- ...current_read_resumable_entry_size_zero.js} | 0 ...ent_read_non-resumable_entry_size_zero.js} | 0 .../unit/test_cache2-30a-entry-pinning.js | 28 + .../test_cache2-30b-pinning-storage-clear.js | 34 + .../test_cache2-30c-pinning-deferred-doom.js | 129 ++ .../test_cache2-30d-pinning-WasEvicted-API.js | 107 ++ netwerk/test/unit/test_cache_jar.js | 3 +- netwerk/test/unit/xpcshell.ini | 8 +- netwerk/test/urltest.cpp | 3 +- .../tests/unit/test_tokenserverclient.js | 2 + services/common/tokenserverclient.js | 5 + testing/xpcshell/head.js | 3 +- toolkit/components/moz.build | 4 + .../privatebrowsing/PrivateBrowsing.manifest | 2 + ...vateBrowsingTrackingProtectionWhitelist.js | 68 ++ toolkit/components/privatebrowsing/moz.build | 16 + ...ateBrowsingTrackingProtectionWhitelist.idl | 46 + toolkit/components/telemetry/Histograms.json | 23 +- .../components/url-classifier/ChunkSet.cpp | 98 ++ toolkit/components/url-classifier/ChunkSet.h | 49 + .../components/url-classifier/Classifier.cpp | 747 ++++++++++++ .../components/url-classifier/Classifier.h | 111 ++ toolkit/components/url-classifier/Entries.h | 304 +++++ .../components/url-classifier/HashStore.cpp | 1058 +++++++++++++++++ toolkit/components/url-classifier/HashStore.h | 211 ++++ .../components/url-classifier/LookupCache.cpp | 651 ++++++++++ .../components/url-classifier/LookupCache.h | 145 +++ ...vateBrowsingTrackingProtectionWhitelist.js | 68 ++ .../url-classifier/ProtocolParser.cpp | 701 +++++++++++ .../url-classifier/ProtocolParser.h | 119 ++ .../url-classifier/SafeBrowsing.jsm | 158 ++- .../url-classifier/content/listmanager.js | 528 ++++++++ .../url-classifier/content/moz/alarm.js | 157 +++ .../content/moz/cryptohasher.js | 176 +++ .../url-classifier/content/moz/debug.js | 867 ++++++++++++++ .../url-classifier/content/moz/lang.js | 82 ++ .../url-classifier/content/moz/observer.js | 145 +++ .../url-classifier/content/moz/preferences.js | 276 +++++ .../url-classifier/content/moz/protocol4.js | 133 +++ .../url-classifier/content/multi-querier.js | 137 +++ .../url-classifier/content/request-backoff.js | 116 ++ .../url-classifier/content/trtable.js | 169 +++ .../url-classifier/content/wireformat.js | 230 ++++ .../url-classifier/content/xml-fetcher.js | 125 ++ toolkit/components/url-classifier/moz.build | 70 ++ .../nsCheckSummedOutputStream.cpp | 59 + .../nsCheckSummedOutputStream.h | 55 + ...ateBrowsingTrackingProtectionWhitelist.idl | 46 + .../nsIUrlClassifierDBService.idl | 226 ++++ .../nsIUrlClassifierHashCompleter.idl | 65 + .../nsIUrlClassifierPrefixSet.idl | 29 + .../nsIUrlClassifierStreamUpdater.idl | 36 + .../url-classifier/nsIUrlClassifierTable.idl | 31 + .../url-classifier/nsIUrlClassifierUtils.idl | 24 + .../url-classifier/nsIUrlListManager.idl | 67 ++ .../url-classifier/nsURLClassifier.manifest | 6 + .../nsUrlClassifierDBService.cpp | 92 +- .../url-classifier/nsUrlClassifierDBService.h | 238 ++++ .../nsUrlClassifierHashCompleter.js | 487 ++++++++ .../url-classifier/nsUrlClassifierLib.js | 35 + .../nsUrlClassifierListManager.js | 53 + .../nsUrlClassifierPrefixSet.cpp | 433 +++++++ .../url-classifier/nsUrlClassifierPrefixSet.h | 75 ++ .../url-classifier/nsUrlClassifierProxies.cpp | 334 ++++++ .../url-classifier/nsUrlClassifierProxies.h | 357 ++++++ .../nsUrlClassifierStreamUpdater.cpp | 635 ++++++++++ .../nsUrlClassifierStreamUpdater.h | 100 ++ .../url-classifier/nsUrlClassifierUtils.cpp | 363 ++++++ .../url-classifier/nsUrlClassifierUtils.h | 89 ++ .../mochitest/classifiedAnnotatedPBFrame.html | 24 + ...st_privatebrowsing_trackingprotection.html | 154 +++ toolkit/devtools/server/DominatorTree.h | 1 + toolkit/devtools/server/actors/object.js | 78 ++ toolkit/devtools/webconsole/console-output.js | 7 +- .../test/browser_webconsole_output_02.js | 186 +++ .../test/browser_webconsole_output_table.js | 198 +++ .../test/test-console-output-02.html | 66 + .../webconsole/test/test-console-table.html | 63 + toolkit/modules/PrivateBrowsingUtils.jsm | 12 + xpcom/base/CycleCollectedJSRuntime.cpp | 7 +- xpcom/base/DeferredFinalize.h | 7 +- 279 files changed, 15388 insertions(+), 1271 deletions(-) rename dom/battery/test/marionette/{test_deprecated_battery_unknown.js => test_deprecated_battery_status_unknown.js} (96%) create mode 100644 js/src/jit-test/tests/debug/Object-script-AsmJSNative.js create mode 100644 js/xpconnect/tests/unit/test_weak_keys.js create mode 100644 layout/reftests/svg/conditions-09-ref.svg create mode 100644 layout/reftests/svg/conditions-09.svg create mode 100644 layout/reftests/svg/stroke-linecap-circle-ellipse-01-ref.svg create mode 100644 layout/reftests/svg/stroke-linecap-circle-ellipse-01.svg create mode 100644 layout/svg/crashtests/1140080-1.svg create mode 100644 layout/svg/crashtests/1149542-1.svg create mode 100644 layout/svg/crashtests/1182496-1.html create mode 100644 layout/svg/crashtests/1209525-1.svg create mode 100644 layout/svg/crashtests/1223281-1.svg create mode 100644 layout/svg/crashtests/325427-1.svg create mode 100644 layout/svg/crashtests/803562-1.svg create mode 100644 layout/svg/crashtests/950324-1.svg create mode 100644 netwerk/cache2/nsICacheTesting.idl rename netwerk/test/unit/{test_cache2-28-concurrent_read_resumable_entry_size_zero.js => test_cache2-29a-concurrent_read_resumable_entry_size_zero.js} (100%) rename netwerk/test/unit/{test_cache2-29-concurrent_read_non-resumable_entry_size_zero.js => test_cache2-29b-concurrent_read_non-resumable_entry_size_zero.js} (100%) create mode 100644 netwerk/test/unit/test_cache2-30a-entry-pinning.js create mode 100644 netwerk/test/unit/test_cache2-30b-pinning-storage-clear.js create mode 100644 netwerk/test/unit/test_cache2-30c-pinning-deferred-doom.js create mode 100644 netwerk/test/unit/test_cache2-30d-pinning-WasEvicted-API.js create mode 100644 toolkit/components/privatebrowsing/PrivateBrowsing.manifest create mode 100644 toolkit/components/privatebrowsing/PrivateBrowsingTrackingProtectionWhitelist.js create mode 100644 toolkit/components/privatebrowsing/moz.build create mode 100644 toolkit/components/privatebrowsing/nsIPrivateBrowsingTrackingProtectionWhitelist.idl create mode 100644 toolkit/components/url-classifier/ChunkSet.cpp create mode 100644 toolkit/components/url-classifier/ChunkSet.h create mode 100644 toolkit/components/url-classifier/Classifier.cpp create mode 100644 toolkit/components/url-classifier/Classifier.h create mode 100644 toolkit/components/url-classifier/Entries.h create mode 100644 toolkit/components/url-classifier/HashStore.cpp create mode 100644 toolkit/components/url-classifier/HashStore.h create mode 100644 toolkit/components/url-classifier/LookupCache.cpp create mode 100644 toolkit/components/url-classifier/LookupCache.h create mode 100644 toolkit/components/url-classifier/PrivateBrowsingTrackingProtectionWhitelist.js create mode 100644 toolkit/components/url-classifier/ProtocolParser.cpp create mode 100644 toolkit/components/url-classifier/ProtocolParser.h create mode 100644 toolkit/components/url-classifier/content/listmanager.js create mode 100644 toolkit/components/url-classifier/content/moz/alarm.js create mode 100644 toolkit/components/url-classifier/content/moz/cryptohasher.js create mode 100644 toolkit/components/url-classifier/content/moz/debug.js create mode 100644 toolkit/components/url-classifier/content/moz/lang.js create mode 100644 toolkit/components/url-classifier/content/moz/observer.js create mode 100644 toolkit/components/url-classifier/content/moz/preferences.js create mode 100644 toolkit/components/url-classifier/content/moz/protocol4.js create mode 100644 toolkit/components/url-classifier/content/multi-querier.js create mode 100644 toolkit/components/url-classifier/content/request-backoff.js create mode 100644 toolkit/components/url-classifier/content/trtable.js create mode 100644 toolkit/components/url-classifier/content/wireformat.js create mode 100644 toolkit/components/url-classifier/content/xml-fetcher.js create mode 100644 toolkit/components/url-classifier/moz.build create mode 100644 toolkit/components/url-classifier/nsCheckSummedOutputStream.cpp create mode 100644 toolkit/components/url-classifier/nsCheckSummedOutputStream.h create mode 100644 toolkit/components/url-classifier/nsIPrivateBrowsingTrackingProtectionWhitelist.idl create mode 100644 toolkit/components/url-classifier/nsIUrlClassifierDBService.idl create mode 100644 toolkit/components/url-classifier/nsIUrlClassifierHashCompleter.idl create mode 100644 toolkit/components/url-classifier/nsIUrlClassifierPrefixSet.idl create mode 100644 toolkit/components/url-classifier/nsIUrlClassifierStreamUpdater.idl create mode 100644 toolkit/components/url-classifier/nsIUrlClassifierTable.idl create mode 100644 toolkit/components/url-classifier/nsIUrlClassifierUtils.idl create mode 100644 toolkit/components/url-classifier/nsIUrlListManager.idl create mode 100644 toolkit/components/url-classifier/nsURLClassifier.manifest create mode 100644 toolkit/components/url-classifier/nsUrlClassifierDBService.h create mode 100644 toolkit/components/url-classifier/nsUrlClassifierHashCompleter.js create mode 100644 toolkit/components/url-classifier/nsUrlClassifierLib.js create mode 100644 toolkit/components/url-classifier/nsUrlClassifierListManager.js create mode 100644 toolkit/components/url-classifier/nsUrlClassifierPrefixSet.cpp create mode 100644 toolkit/components/url-classifier/nsUrlClassifierPrefixSet.h create mode 100644 toolkit/components/url-classifier/nsUrlClassifierProxies.cpp create mode 100644 toolkit/components/url-classifier/nsUrlClassifierProxies.h create mode 100644 toolkit/components/url-classifier/nsUrlClassifierStreamUpdater.cpp create mode 100644 toolkit/components/url-classifier/nsUrlClassifierStreamUpdater.h create mode 100644 toolkit/components/url-classifier/nsUrlClassifierUtils.cpp create mode 100644 toolkit/components/url-classifier/nsUrlClassifierUtils.h create mode 100644 toolkit/components/url-classifier/tests/mochitest/classifiedAnnotatedPBFrame.html create mode 100644 toolkit/components/url-classifier/tests/mochitest/test_privatebrowsing_trackingprotection.html create mode 100644 toolkit/devtools/webconsole/test/browser_webconsole_output_02.js create mode 100644 toolkit/devtools/webconsole/test/browser_webconsole_output_table.js create mode 100644 toolkit/devtools/webconsole/test/test-console-output-02.html create mode 100644 toolkit/devtools/webconsole/test/test-console-table.html 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 @@