diff -Nru firefox-61.0~b13+build1/browser/app/blocklist.xml firefox-61.0~b14+build1/browser/app/blocklist.xml --- firefox-61.0~b13+build1/browser/app/blocklist.xml 2018-06-11 16:47:34.000000000 +0000 +++ firefox-61.0~b14+build1/browser/app/blocklist.xml 2018-06-14 16:06:50.000000000 +0000 @@ -1,5 +1,5 @@ - + @@ -2251,6 +2251,26 @@ + + + + + + + + + + + + + + + + + + + + diff -Nru firefox-61.0~b13+build1/browser/components/preferences/in-content/home.js firefox-61.0~b14+build1/browser/components/preferences/in-content/home.js --- firefox-61.0~b13+build1/browser/components/preferences/in-content/home.js 2018-06-11 16:47:35.000000000 +0000 +++ firefox-61.0~b14+build1/browser/components/preferences/in-content/home.js 2018-06-14 16:06:50.000000000 +0000 @@ -372,5 +372,8 @@ makeDisableControllingExtension(PREF_SETTING_TYPE, HOMEPAGE_OVERRIDE_KEY)); document.getElementById("disableNewTabExtension").addEventListener("command", makeDisableControllingExtension(URL_OVERRIDES_TYPE, NEW_TAB_KEY)); + + // Notify observers that the UI is now ready + Services.obs.notifyObservers(window, "home-pane-loaded"); } }; diff -Nru firefox-61.0~b13+build1/browser/config/version_display.txt firefox-61.0~b14+build1/browser/config/version_display.txt --- firefox-61.0~b13+build1/browser/config/version_display.txt 2018-06-11 16:47:35.000000000 +0000 +++ firefox-61.0~b14+build1/browser/config/version_display.txt 2018-06-14 16:06:51.000000000 +0000 @@ -1 +1 @@ -61.0b13 +61.0b14 diff -Nru firefox-61.0~b13+build1/browser/extensions/activity-stream/lib/AboutPreferences.jsm firefox-61.0~b14+build1/browser/extensions/activity-stream/lib/AboutPreferences.jsm --- firefox-61.0~b13+build1/browser/extensions/activity-stream/lib/AboutPreferences.jsm 2018-06-11 16:47:35.000000000 +0000 +++ firefox-61.0~b14+build1/browser/extensions/activity-stream/lib/AboutPreferences.jsm 2018-06-14 16:06:51.000000000 +0000 @@ -8,7 +8,7 @@ ChromeUtils.defineModuleGetter(this, "PluralForm", "resource://gre/modules/PluralForm.jsm"); const {actionTypes: at} = ChromeUtils.import("resource://activity-stream/common/Actions.jsm", {}); -const PREFERENCES_LOADED_EVENT = "sync-pane-loaded"; +const PREFERENCES_LOADED_EVENT = "home-pane-loaded"; const XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; // These "section" objects are formatted in a way to be similar to the ones from diff -Nru firefox-61.0~b13+build1/browser/locales/l10n-changesets.json firefox-61.0~b14+build1/browser/locales/l10n-changesets.json --- firefox-61.0~b13+build1/browser/locales/l10n-changesets.json 2018-06-11 16:47:35.000000000 +0000 +++ firefox-61.0~b14+build1/browser/locales/l10n-changesets.json 2018-06-14 16:06:51.000000000 +0000 @@ -102,7 +102,7 @@ "win64", "win64-devedition" ], - "revision": "543a90e76c47" + "revision": "05b1c56ef7d3" }, "be": { "platforms": [ @@ -117,7 +117,7 @@ "win64", "win64-devedition" ], - "revision": "287facf308a1" + "revision": "2a2bbc5b6564" }, "bg": { "platforms": [ @@ -132,7 +132,7 @@ "win64", "win64-devedition" ], - "revision": "977b75b2dc41" + "revision": "15834d8cf910" }, "bn-BD": { "platforms": [ @@ -177,7 +177,7 @@ "win64", "win64-devedition" ], - "revision": "b3356e311706" + "revision": "c6ec6dc3c9d8" }, "bs": { "platforms": [ @@ -222,7 +222,7 @@ "win64", "win64-devedition" ], - "revision": "73ff56d32398" + "revision": "2e587e9198fd" }, "cs": { "platforms": [ @@ -237,7 +237,7 @@ "win64", "win64-devedition" ], - "revision": "92890a6fa736" + "revision": "0329aa9865d4" }, "cy": { "platforms": [ @@ -252,7 +252,7 @@ "win64", "win64-devedition" ], - "revision": "237bb1d80c47" + "revision": "9e3bec44527f" }, "da": { "platforms": [ @@ -267,7 +267,7 @@ "win64", "win64-devedition" ], - "revision": "7b2bddf23e68" + "revision": "3c2beb3bab29" }, "de": { "platforms": [ @@ -282,7 +282,7 @@ "win64", "win64-devedition" ], - "revision": "854be781b82c" + "revision": "2725234b8130" }, "dsb": { "platforms": [ @@ -297,7 +297,7 @@ "win64", "win64-devedition" ], - "revision": "05c88ca33cd3" + "revision": "20d4d1538346" }, "el": { "platforms": [ @@ -312,7 +312,7 @@ "win64", "win64-devedition" ], - "revision": "2c617a1403be" + "revision": "853394eb26c1" }, "en-GB": { "platforms": [ @@ -372,7 +372,7 @@ "win64", "win64-devedition" ], - "revision": "3aa3d1954e21" + "revision": "87554d50cd14" }, "es-CL": { "platforms": [ @@ -387,7 +387,7 @@ "win64", "win64-devedition" ], - "revision": "610a68dfc1f4" + "revision": "ffb0e185e65e" }, "es-ES": { "platforms": [ @@ -402,7 +402,7 @@ "win64", "win64-devedition" ], - "revision": "97e38bdf2cd6" + "revision": "c36b07eab954" }, "es-MX": { "platforms": [ @@ -417,7 +417,7 @@ "win64", "win64-devedition" ], - "revision": "53eefad0aac3" + "revision": "8ab45f33d132" }, "et": { "platforms": [ @@ -447,7 +447,7 @@ "win64", "win64-devedition" ], - "revision": "6a38844e4ca2" + "revision": "f3f7acfb5ac9" }, "fa": { "platforms": [ @@ -462,7 +462,7 @@ "win64", "win64-devedition" ], - "revision": "5d07e81d65bf" + "revision": "12b3dda82bbb" }, "ff": { "platforms": [ @@ -507,7 +507,7 @@ "win64", "win64-devedition" ], - "revision": "9224b04284dd" + "revision": "d8030f899955" }, "fy-NL": { "platforms": [ @@ -522,7 +522,7 @@ "win64", "win64-devedition" ], - "revision": "3c42dc2c48b3" + "revision": "72f035f4b2bf" }, "ga-IE": { "platforms": [ @@ -552,7 +552,7 @@ "win64", "win64-devedition" ], - "revision": "53e620cf82d4" + "revision": "31691e27acc9" }, "gl": { "platforms": [ @@ -567,7 +567,7 @@ "win64", "win64-devedition" ], - "revision": "721a61a3ef3c" + "revision": "e38d3dc25fdd" }, "gn": { "platforms": [ @@ -582,7 +582,7 @@ "win64", "win64-devedition" ], - "revision": "415ec59b625e" + "revision": "8225c772273e" }, "gu-IN": { "platforms": [ @@ -597,7 +597,7 @@ "win64", "win64-devedition" ], - "revision": "791f3705c97e" + "revision": "7669d7c5983f" }, "he": { "platforms": [ @@ -612,7 +612,7 @@ "win64", "win64-devedition" ], - "revision": "2b5b311f3f0c" + "revision": "88ff59496bf7" }, "hi-IN": { "platforms": [ @@ -627,7 +627,7 @@ "win64", "win64-devedition" ], - "revision": "2a4d07e65cc8" + "revision": "104442dce877" }, "hr": { "platforms": [ @@ -657,7 +657,7 @@ "win64", "win64-devedition" ], - "revision": "82a46e814156" + "revision": "7bbefcc96e04" }, "hu": { "platforms": [ @@ -672,7 +672,7 @@ "win64", "win64-devedition" ], - "revision": "1615b375cba8" + "revision": "a817db3bc0a9" }, "hy-AM": { "platforms": [ @@ -702,7 +702,7 @@ "win64", "win64-devedition" ], - "revision": "a13f3727a3a6" + "revision": "db9c7882f72c" }, "id": { "platforms": [ @@ -717,7 +717,7 @@ "win64", "win64-devedition" ], - "revision": "d18f6ad33130" + "revision": "a02fc89b2ec6" }, "is": { "platforms": [ @@ -747,7 +747,7 @@ "win64", "win64-devedition" ], - "revision": "12ee38da9fbb" + "revision": "622572888f96" }, "ja": { "platforms": [ @@ -782,7 +782,7 @@ "win64", "win64-devedition" ], - "revision": "441a6857aae0" + "revision": "f901d2c74780" }, "kab": { "platforms": [ @@ -797,7 +797,7 @@ "win64", "win64-devedition" ], - "revision": "0372efc776a0" + "revision": "8384378dd041" }, "kk": { "platforms": [ @@ -812,7 +812,7 @@ "win64", "win64-devedition" ], - "revision": "23d32053ad8c" + "revision": "5e2dc2498027" }, "km": { "platforms": [ @@ -872,7 +872,7 @@ "win64", "win64-devedition" ], - "revision": "381f015724b0" + "revision": "a196db31275a" }, "lt": { "platforms": [ @@ -977,7 +977,7 @@ "win64", "win64-devedition" ], - "revision": "b9fff4c6cbeb" + "revision": "edb325903828" }, "my": { "platforms": [ @@ -1007,7 +1007,7 @@ "win64", "win64-devedition" ], - "revision": "20cefcf8ac0b" + "revision": "1c337d426064" }, "ne-NP": { "platforms": [ @@ -1052,7 +1052,7 @@ "win64", "win64-devedition" ], - "revision": "c0c639809413" + "revision": "9a4d161a94bb" }, "oc": { "platforms": [ @@ -1067,7 +1067,7 @@ "win64", "win64-devedition" ], - "revision": "7d5914819e3c" + "revision": "36591a8f4965" }, "or": { "platforms": [ @@ -1097,7 +1097,7 @@ "win64", "win64-devedition" ], - "revision": "d668d5edf45c" + "revision": "d2171273b2b2" }, "pl": { "platforms": [ @@ -1112,7 +1112,7 @@ "win64", "win64-devedition" ], - "revision": "ddf2f409bb86" + "revision": "3913d83b02a6" }, "pt-BR": { "platforms": [ @@ -1127,7 +1127,7 @@ "win64", "win64-devedition" ], - "revision": "b3205edb5aa7" + "revision": "7ea03c62a5a9" }, "pt-PT": { "platforms": [ @@ -1157,7 +1157,7 @@ "win64", "win64-devedition" ], - "revision": "9d8ab7eae5e0" + "revision": "da22c664ca79" }, "ro": { "platforms": [ @@ -1172,7 +1172,7 @@ "win64", "win64-devedition" ], - "revision": "3ac277eb86f8" + "revision": "8e02d79a27af" }, "ru": { "platforms": [ @@ -1187,7 +1187,7 @@ "win64", "win64-devedition" ], - "revision": "bfe44befb5fb" + "revision": "4aea1359f8bc" }, "si": { "platforms": [ @@ -1232,7 +1232,7 @@ "win64", "win64-devedition" ], - "revision": "5ed10f6cd0da" + "revision": "c367478457e7" }, "son": { "platforms": [ @@ -1277,7 +1277,7 @@ "win64", "win64-devedition" ], - "revision": "8c90e1db9f91" + "revision": "71c410e9af6d" }, "sv-SE": { "platforms": [ @@ -1292,7 +1292,7 @@ "win64", "win64-devedition" ], - "revision": "6fe8ed9ef8f8" + "revision": "bfd8141bf255" }, "ta": { "platforms": [ @@ -1322,7 +1322,7 @@ "win64", "win64-devedition" ], - "revision": "f9419676131e" + "revision": "98f09dda16ed" }, "th": { "platforms": [ @@ -1337,7 +1337,7 @@ "win64", "win64-devedition" ], - "revision": "95a4189ef457" + "revision": "586efc5ec2f7" }, "tr": { "platforms": [ @@ -1352,7 +1352,7 @@ "win64", "win64-devedition" ], - "revision": "e3ee173f2304" + "revision": "fc5e543bf669" }, "uk": { "platforms": [ @@ -1367,7 +1367,7 @@ "win64", "win64-devedition" ], - "revision": "52fec63f40e2" + "revision": "8c21896beb6a" }, "ur": { "platforms": [ @@ -1412,7 +1412,7 @@ "win64", "win64-devedition" ], - "revision": "5f13a7bd79a4" + "revision": "eaa1940f58b2" }, "xh": { "platforms": [ @@ -1442,7 +1442,7 @@ "win64", "win64-devedition" ], - "revision": "329f554d5663" + "revision": "e851d478fcab" }, "zh-TW": { "platforms": [ @@ -1457,6 +1457,6 @@ "win64", "win64-devedition" ], - "revision": "c272916cf6ca" + "revision": "259c19ba2ab7" } } diff -Nru firefox-61.0~b13+build1/.cron.yml firefox-61.0~b14+build1/.cron.yml --- firefox-61.0~b13+build1/.cron.yml 2018-06-11 16:47:34.000000000 +0000 +++ firefox-61.0~b14+build1/.cron.yml 2018-06-14 16:06:50.000000000 +0000 @@ -111,18 +111,21 @@ target-tasks-method: file_update run-on-projects: - mozilla-central + - mozilla-beta + - mozilla-release + - mozilla-esr60 when: by-project: # No default branch mozilla-central: - {weekday: 'Monday', hour: 10, minute: 0} - {weekday: 'Thursday', hour: 10, minute: 0} - mozilla-esr60: + mozilla-beta: - {weekday: 'Monday', hour: 10, minute: 0} - {weekday: 'Thursday', hour: 10, minute: 0} mozilla-release: - {weekday: 'Monday', hour: 10, minute: 0} - {weekday: 'Thursday', hour: 10, minute: 0} - mozilla-beta: + mozilla-esr60: - {weekday: 'Monday', hour: 10, minute: 0} - {weekday: 'Thursday', hour: 10, minute: 0} diff -Nru firefox-61.0~b13+build1/debian/changelog firefox-61.0~b14+build1/debian/changelog --- firefox-61.0~b13+build1/debian/changelog 2018-06-11 16:53:39.000000000 +0000 +++ firefox-61.0~b14+build1/debian/changelog 2018-06-14 15:43:21.000000000 +0000 @@ -1,3 +1,9 @@ +firefox (61.0~b14+build1-0ubuntu0.18.04.1) bionic; urgency=medium + + * New upstream release from the beta channel (FIREFOX_61_0b14_BUILD1) + + -- Rico Tzschichholz Thu, 14 Jun 2018 17:43:21 +0200 + firefox (61.0~b13+build1-0ubuntu0.18.04.1) bionic; urgency=medium * New upstream release from the beta channel (FIREFOX_61_0b13_BUILD1) diff -Nru firefox-61.0~b13+build1/dom/media/mediasource/TrackBuffersManager.cpp firefox-61.0~b14+build1/dom/media/mediasource/TrackBuffersManager.cpp --- firefox-61.0~b13+build1/dom/media/mediasource/TrackBuffersManager.cpp 2018-06-11 16:47:40.000000000 +0000 +++ firefox-61.0~b14+build1/dom/media/mediasource/TrackBuffersManager.cpp 2018-06-14 16:06:57.000000000 +0000 @@ -2362,18 +2362,8 @@ // SkipToNextRandomAccessPoint can only be called if aTimeThreadshold is known // to be buffered. - // So first determine the current position in the track buffer if necessary. - if (trackData.mNextGetSampleIndex.isNothing()) { - if (trackData.mNextSampleTimecode == TimeUnit()) { - // First demux, get first sample. - trackData.mNextGetSampleIndex = Some(0u); - } else { - int32_t pos = FindCurrentPosition(aTrack, aFuzz); - if (pos < 0) { - return 0; - } - trackData.mNextGetSampleIndex = Some(uint32_t(pos)); - } + if (NS_FAILED(SetNextGetSampleIndexIfNeeded(aTrack, aFuzz))) { + return 0; } TimeUnit nextSampleTimecode = trackData.mNextSampleTimecode; @@ -2639,8 +2629,13 @@ const TimeUnit& aFuzz) { MOZ_ASSERT(OnTaskQueue()); + + // So first determine the current position in the track buffer if necessary. + if (NS_FAILED(SetNextGetSampleIndexIfNeeded(aTrack, aFuzz))) { + return TimeUnit::FromInfinity(); + } + auto& trackData = GetTracksData(aTrack); - MOZ_ASSERT(trackData.mNextGetSampleIndex.isSome()); const TrackBuffersManager::TrackBuffer& track = GetTrackBuffer(aTrack); uint32_t i = trackData.mNextGetSampleIndex.ref(); @@ -2662,6 +2657,45 @@ return TimeUnit::FromInfinity(); } +nsresult +TrackBuffersManager::SetNextGetSampleIndexIfNeeded(TrackInfo::TrackType aTrack, + const TimeUnit& aFuzz) +{ + auto& trackData = GetTracksData(aTrack); + const TrackBuffer& track = GetTrackBuffer(aTrack); + + if (trackData.mNextGetSampleIndex.isSome()) { + // We already know the next GetSample index. + return NS_OK; + } + + if (!track.Length()) { + // There's nothing to find yet. + return NS_ERROR_DOM_MEDIA_END_OF_STREAM; + } + + if (trackData.mNextSampleTimecode == TimeUnit()) { + // First demux, get first sample. + trackData.mNextGetSampleIndex = Some(0u); + return NS_OK; + } + + if (trackData.mNextSampleTimecode > + track.LastElement()->mTimecode + track.LastElement()->mDuration) { + // The next element is past our last sample. We're done. + trackData.mNextGetSampleIndex = Some(uint32_t(track.Length())); + return NS_ERROR_DOM_MEDIA_END_OF_STREAM; + } + + int32_t pos = FindCurrentPosition(aTrack, aFuzz); + if (pos < 0) { + // Not found, must wait for more data. + return NS_ERROR_DOM_MEDIA_WAITING_FOR_DATA; + } + trackData.mNextGetSampleIndex = Some(uint32_t(pos)); + return NS_OK; +} + void TrackBuffersManager::TrackData::AddSizeOfResources(MediaSourceDecoder::ResourceSizes* aSizes) const { diff -Nru firefox-61.0~b13+build1/dom/media/mediasource/TrackBuffersManager.h firefox-61.0~b14+build1/dom/media/mediasource/TrackBuffersManager.h --- firefox-61.0~b13+build1/dom/media/mediasource/TrackBuffersManager.h 2018-06-11 16:47:40.000000000 +0000 +++ firefox-61.0~b14+build1/dom/media/mediasource/TrackBuffersManager.h 2018-06-14 16:06:57.000000000 +0000 @@ -160,6 +160,15 @@ MediaResult& aResult); int32_t FindCurrentPosition(TrackInfo::TrackType aTrack, const media::TimeUnit& aFuzz) const; + + // Will set the next GetSample index if needed. This information is determined + // through the value of mNextSampleTimecode. Return false if the index + // couldn't be determined or if there's nothing more that could be demuxed. + // This occurs if either the track buffer doesn't contain the required + // timecode or is empty. + nsresult SetNextGetSampleIndexIfNeeded(TrackInfo::TrackType aTrack, + const media::TimeUnit& aFuzz); + media::TimeUnit GetNextRandomAccessPoint(TrackInfo::TrackType aTrack, const media::TimeUnit& aFuzz); diff -Nru firefox-61.0~b13+build1/dom/plugins/ipc/FunctionBroker.cpp firefox-61.0~b14+build1/dom/plugins/ipc/FunctionBroker.cpp --- firefox-61.0~b13+build1/dom/plugins/ipc/FunctionBroker.cpp 2018-06-11 16:47:40.000000000 +0000 +++ firefox-61.0~b14+build1/dom/plugins/ipc/FunctionBroker.cpp 2018-06-14 16:06:58.000000000 +0000 @@ -731,6 +731,29 @@ struct HSRExAReqInfo::FixedValue<4> { static const DWORD_PTR value; }; const DWORD_PTR HSRExAReqInfo::FixedValue<4>::value = 0; +/* HttpEndRequestA */ + +typedef FunctionBroker HttpEndRequestAFB; + +template<> +ShouldHookFunc * const + HttpEndRequestAFB::BaseType::mShouldHook = &CheckQuirks; + +typedef RequestInfo HERAReqInfo; + +template<> template<> +struct HERAReqInfo::FixedValue<1> { static const LPINTERNET_BUFFERSA value; }; +const LPINTERNET_BUFFERSA HERAReqInfo::FixedValue<1>::value = nullptr; + +template<> template<> +struct HERAReqInfo::FixedValue<2> { static const DWORD value; }; +const DWORD HERAReqInfo::FixedValue<2>::value = 0; + +template<> template<> +struct HERAReqInfo::FixedValue<3> { static const DWORD_PTR value; }; +const DWORD_PTR HERAReqInfo::FixedValue<3>::value = 0; + /* InternetQueryOptionA */ typedef FunctionBroker disconnectedDisplays; nsTArray connectedDisplays; + nsTArray> prevDisplays; + prevDisplays = mDisplays; + // Check if any displays have been disconnected - for (auto& display : mDisplays) { + for (auto& display : prevDisplays) { bool found = false; for (auto& displayUpdate : aDisplayUpdates) { if (display->GetDisplayInfo().GetDisplayID() == displayUpdate.GetDisplayID()) { @@ -199,7 +202,7 @@ nsTArray> displays; for (VRDisplayInfo& displayUpdate : aDisplayUpdates) { bool isNewDisplay = true; - for (auto& display : mDisplays) { + for (auto& display : prevDisplays) { const VRDisplayInfo& prevInfo = display->GetDisplayInfo(); if (prevInfo.GetDisplayID() == displayUpdate.GetDisplayID()) { if (displayUpdate.GetIsConnected() && !prevInfo.GetIsConnected()) { @@ -629,7 +632,9 @@ VRManagerChild::RecvDispatchSubmitFrameResult(const uint32_t& aDisplayID, const VRSubmitFrameResultInfo& aResult) { - for (auto& display : mDisplays) { + nsTArray> displays; + displays = mDisplays; + for (auto& display : displays) { if (display->GetDisplayInfo().GetDisplayID() == aDisplayID) { display->UpdateSubmitFrameResult(aResult); } diff -Nru firefox-61.0~b13+build1/js/src/gc/AtomMarking.cpp firefox-61.0~b14+build1/js/src/gc/AtomMarking.cpp --- firefox-61.0~b13+build1/js/src/gc/AtomMarking.cpp 2018-06-11 16:47:45.000000000 +0000 +++ firefox-61.0~b14+build1/js/src/gc/AtomMarking.cpp 2018-06-14 16:07:03.000000000 +0000 @@ -29,12 +29,12 @@ // is done by manipulating the mark bitmaps in the chunks used for the atoms. // When the atoms zone is being collected, the mark bitmaps for the chunk(s) // used by the atoms are updated normally during marking. After marking -// finishes, the chunk mark bitmaps are translated to a more efficient atom -// mark bitmap (see below) that is stored on the zones which the GC collected +// finishes, the chunk mark bitmaps are translated to a more efficient atom mark +// bitmap (see below) that is stored on the zones which the GC collected // (computeBitmapFromChunkMarkBits). Before sweeping begins, the chunk mark // bitmaps are updated with any atoms that might be referenced by zones which -// weren't collected (updateChunkMarkBits). The GC sweeping will then release -// all atoms which are not marked by any zone. +// weren't collected (markAtomsUsedByUncollectedZones). The GC sweeping will +// then release all atoms which are not marked by any zone. // // The representation of atom mark bitmaps is as follows: // @@ -96,8 +96,10 @@ } void -AtomMarkingRuntime::updateZoneBitmap(Zone* zone, const DenseBitmap& bitmap) +AtomMarkingRuntime::refineZoneBitmapForCollectedZone(Zone* zone, const DenseBitmap& bitmap) { + MOZ_ASSERT(zone->isCollectingFromAnyThread()); + if (zone->isAtomsZone()) return; @@ -110,7 +112,7 @@ // Set any bits in the chunk mark bitmaps for atoms which are marked in bitmap. template static void -AddBitmapToChunkMarkBits(JSRuntime* runtime, Bitmap& bitmap) +BitwiseOrIntoChunkMarkBits(JSRuntime* runtime, Bitmap& bitmap) { // Make sure that by copying the mark bits for one arena in word sizes we // do not affect the mark bits for other arenas. @@ -128,7 +130,7 @@ } void -AtomMarkingRuntime::updateChunkMarkBits(JSRuntime* runtime) +AtomMarkingRuntime::markAtomsUsedByUncollectedZones(JSRuntime* runtime) { MOZ_ASSERT(CurrentThreadIsPerformingGC()); MOZ_ASSERT(!runtime->hasHelperThreadZones()); @@ -145,11 +147,11 @@ if (!zone->isCollectingFromAnyThread()) zone->markedAtoms().bitwiseOrInto(markedUnion); } - AddBitmapToChunkMarkBits(runtime, markedUnion); + BitwiseOrIntoChunkMarkBits(runtime, markedUnion); } else { for (ZonesIter zone(runtime, SkipAtoms); !zone.done(); zone.next()) { if (!zone->isCollectingFromAnyThread()) - AddBitmapToChunkMarkBits(runtime, zone->markedAtoms()); + BitwiseOrIntoChunkMarkBits(runtime, zone->markedAtoms()); } } } diff -Nru firefox-61.0~b13+build1/js/src/gc/AtomMarking.h firefox-61.0~b14+build1/js/src/gc/AtomMarking.h --- firefox-61.0~b13+build1/js/src/gc/AtomMarking.h 2018-06-11 16:47:44.000000000 +0000 +++ firefox-61.0~b14+build1/js/src/gc/AtomMarking.h 2018-06-14 16:07:03.000000000 +0000 @@ -53,11 +53,11 @@ // Update the atom marking bitmap in |zone| according to another // overapproximation of the reachable atoms in |bitmap|. - void updateZoneBitmap(Zone* zone, const DenseBitmap& bitmap); + void refineZoneBitmapForCollectedZone(Zone* zone, const DenseBitmap& bitmap); // Set any bits in the chunk mark bitmaps for atoms which are marked in any - // zone in the runtime. - void updateChunkMarkBits(JSRuntime* runtime); + // uncollected zone in the runtime. + void markAtomsUsedByUncollectedZones(JSRuntime* runtime); // Mark an atom or id as being newly reachable by the context's zone. template void markAtom(JSContext* cx, T* thing); diff -Nru firefox-61.0~b13+build1/js/src/gc/GC.cpp firefox-61.0~b14+build1/js/src/gc/GC.cpp --- firefox-61.0~b13+build1/js/src/gc/GC.cpp 2018-06-11 16:47:44.000000000 +0000 +++ firefox-61.0~b14+build1/js/src/gc/GC.cpp 2018-06-14 16:07:03.000000000 +0000 @@ -5383,21 +5383,19 @@ }; static void -UpdateAtomsBitmap(GCParallelTask* task) +UpdateAtomsBitmap(JSRuntime* runtime) { - JSRuntime* runtime = task->runtime(); - DenseBitmap marked; if (runtime->gc.atomMarking.computeBitmapFromChunkMarkBits(runtime, marked)) { for (GCZonesIter zone(runtime); !zone.done(); zone.next()) - runtime->gc.atomMarking.updateZoneBitmap(zone, marked); + runtime->gc.atomMarking.refineZoneBitmapForCollectedZone(zone, marked); } else { - // Ignore OOM in computeBitmapFromChunkMarkBits. The updateZoneBitmap - // call can only remove atoms from the zone bitmap, so it is - // conservative to just not call it. + // Ignore OOM in computeBitmapFromChunkMarkBits. The + // refineZoneBitmapForCollectedZone call can only remove atoms from the + // zone bitmap, so it is conservative to just not call it. } - runtime->gc.atomMarking.updateChunkMarkBits(runtime); + runtime->gc.atomMarking.markAtomsUsedByUncollectedZones(runtime); // For convenience sweep these tables non-incrementally as part of bitmap // sweeping; they are likely to be much smaller than the main atoms table. @@ -5700,15 +5698,19 @@ callFinalizeCallbacks(fop, JSFINALIZE_GROUP_START); } + // Updating the atom marking bitmaps. This marks atoms referenced by + // uncollected zones so cannot be done in parallel with the other sweeping + // work below. + if (sweepingAtoms) { + AutoPhase ap(stats(), PhaseKind::UPDATE_ATOMS_BITMAP); + UpdateAtomsBitmap(rt); + } + sweepDebuggerOnMainThread(fop); { AutoLockHelperThreadState lock; - Maybe updateAtomsBitmap; - if (sweepingAtoms) - updateAtomsBitmap.emplace(rt, UpdateAtomsBitmap, PhaseKind::UPDATE_ATOMS_BITMAP, lock); - AutoPhase ap(stats(), PhaseKind::SWEEP_COMPARTMENTS); AutoRunParallelTask sweepCCWrappers(rt, SweepCCWrappers, PhaseKind::SWEEP_CC_WRAPPER, lock); diff -Nru firefox-61.0~b13+build1/js/src/shell/js.cpp firefox-61.0~b14+build1/js/src/shell/js.cpp --- firefox-61.0~b13+build1/js/src/shell/js.cpp 2018-06-11 16:47:46.000000000 +0000 +++ firefox-61.0~b14+build1/js/src/shell/js.cpp 2018-06-14 16:07:04.000000000 +0000 @@ -3585,6 +3585,7 @@ sc->isWorker = true; JS_SetContextPrivate(cx, sc); + JS_SetGrayGCRootsTracer(cx, TraceGrayRoots, nullptr); SetWorkerContextOptions(cx); JS::SetBuildIdOp(cx, ShellBuildId); diff -Nru firefox-61.0~b13+build1/js/src/tests/non262/regress/regress-1466387-worker-grayroot.js firefox-61.0~b14+build1/js/src/tests/non262/regress/regress-1466387-worker-grayroot.js --- firefox-61.0~b13+build1/js/src/tests/non262/regress/regress-1466387-worker-grayroot.js 1970-01-01 00:00:00.000000000 +0000 +++ firefox-61.0~b14+build1/js/src/tests/non262/regress/regress-1466387-worker-grayroot.js 2018-06-14 16:07:04.000000000 +0000 @@ -0,0 +1,28 @@ +var BUGNUMBER = 1466387; +var summary = 'grayRoot() testing on worker thread'; + +// Before bug 1466387, the gray root tracer was not set up on worker threads, +// but the grayRoot() function was still available. This resulted in a GC +// collecting the gray root, then a read barrier firing on the dead object. +// +// This is a crashtest. If it does not crash, it will throw a ReferenceError, +// but that's ok. + +print('BUGNUMBER: ' + BUGNUMBER); +print("STATUS: " + summary); + +if (typeof 'evalInWorder' == 'function') { + evalInWorker(` + var wm = new WeakMap(); + grayRoot().map = wm; + gczeal(4,10); + evaluate(\` + grayRoot().map = __v_1173; + if (!class i { constructor() { } } ()) { + (function __f_252( get , ) {})(); + } + \`); +`); +} + +this.reportCompare && reportCompare(true, true, summary); diff -Nru firefox-61.0~b13+build1/l10n/az/browser/browser/preferences/permissions.ftl firefox-61.0~b14+build1/l10n/az/browser/browser/preferences/permissions.ftl --- firefox-61.0~b13+build1/l10n/az/browser/browser/preferences/permissions.ftl 2018-06-11 16:49:35.000000000 +0000 +++ firefox-61.0~b14+build1/l10n/az/browser/browser/preferences/permissions.ftl 2018-06-14 16:08:53.000000000 +0000 @@ -82,6 +82,12 @@ .style = { permissions-window.style } permissions-exceptions-addons-desc = Hansı saytların əlavə yükləyə biləcəyini seçə bilərsiniz. İcaz vermək istədiyiniz saytın tam ünvanını yazdıqdan sonra "İcazə ver"-ə klikləyin. +## Exceptions - Autoplay Media + +permissions-exceptions-autoplay-media-window = + .title = İcazə verilən saytlar - Avto Oxutma + .style = { permissions-window.style } + ## Site Permissions - Notifications permissions-site-notification-window = diff -Nru firefox-61.0~b13+build1/l10n/az/browser/browser/preferences/preferences.ftl firefox-61.0~b14+build1/l10n/az/browser/browser/preferences/preferences.ftl --- firefox-61.0~b13+build1/l10n/az/browser/browser/preferences/preferences.ftl 2018-06-11 16:49:35.000000000 +0000 +++ firefox-61.0~b14+build1/l10n/az/browser/browser/preferences/preferences.ftl 2018-06-14 16:08:53.000000000 +0000 @@ -697,6 +697,12 @@ permissions-notification-pause = .label = { -brand-short-name } yenidən başladılana qədər bildirişləri dayandır .accesskey = n +permissions-block-autoplay-media = + .label = Saytların səsli medianı avtomatik oxutmalarını əngəllə + .accesskey = B +permissions-block-autoplay-media-exceptions = + .label = İstisnalar… + .accesskey = E permissions-block-popups = .label = Peyda olan pəncərələri blokla .accesskey = b diff -Nru firefox-61.0~b13+build1/l10n/az/browser/chrome/browser/browser.dtd firefox-61.0~b14+build1/l10n/az/browser/chrome/browser/browser.dtd --- firefox-61.0~b13+build1/l10n/az/browser/chrome/browser/browser.dtd 2018-06-11 16:49:35.000000000 +0000 +++ firefox-61.0~b14+build1/l10n/az/browser/chrome/browser/browser.dtd 2018-06-14 16:08:53.000000000 +0000 @@ -57,6 +57,8 @@ + + @@ -904,6 +906,7 @@ + diff -Nru firefox-61.0~b13+build1/l10n/az/browser/chrome/browser/browser.properties firefox-61.0~b14+build1/l10n/az/browser/chrome/browser/browser.properties --- firefox-61.0~b13+build1/l10n/az/browser/chrome/browser/browser.properties 2018-06-11 16:49:35.000000000 +0000 +++ firefox-61.0~b14+build1/l10n/az/browser/chrome/browser/browser.properties 2018-06-14 16:08:53.000000000 +0000 @@ -569,6 +569,11 @@ trackingProtection.intro.step1of3=1 / 3 trackingProtection.intro.nextButton.label=Sonrakı +trackingProtection.toggle.enable.tooltip=İzlənmə Qorumasını aktivləşdir +trackingProtection.toggle.disable.tooltip=İzlənmə Qorumasını söndür +trackingProtection.toggle.enable.pbmode.tooltip=İzlənmə Qoruması Məxfi Səyahətdə aktivləşdir +trackingProtection.toggle.disable.pbmode.tooltip=İzlənmə Qoruması Məxfi Səyahətdə söndür + trackingProtection.icon.activeTooltip=İzləmə cəhdi əngəlləndi trackingProtection.icon.disabledTooltip=İzləmə məzmunu aşkar edildi @@ -576,6 +581,7 @@ editBookmarkPanel.pageBookmarkedTitle=Səhifə Əlfəcinləndi editBookmarkPanel.pageBookmarkedDescription=%S sizin üçün bu səhifəni həmişə xatırlayacaq. editBookmarkPanel.bookmarkedRemovedTitle=Əlfəcin Silindi +editBookmarkPanel.newBookmarkTitle=Yeni Əlfəcin editBookmarkPanel.editBookmarkTitle=Bu Əlfəcini Redaktə et editBookmarkPanel.cancel.label=Ləğv et diff -Nru firefox-61.0~b13+build1/l10n/az/dom/chrome/dom/dom.properties firefox-61.0~b14+build1/l10n/az/dom/chrome/dom/dom.properties --- firefox-61.0~b13+build1/l10n/az/dom/chrome/dom/dom.properties 2018-06-11 16:49:35.000000000 +0000 +++ firefox-61.0~b14+build1/l10n/az/dom/chrome/dom/dom.properties 2018-06-14 16:08:53.000000000 +0000 @@ -366,3 +366,4 @@ IDBOpenDBOptions_StorageTypeWarning=indexedDB.open-ə göndərilən seçimlərdə ‘storage’ atributunun vaxtı çıxıb və tezliklə dəstəklənməyəcək. Daimi yaddaş üçün lütfən əvəzinə navigator.storage.persist() işlədin. # LOCALIZATION NOTE: Do not translate "getPropertyCSSValue" and "getPropertyValue". GetPropertyCSSValueWarning=getPropertyCSSValue istifadəsi köhnəlib, əvəzinə getPropertyValue işlədin. +DOMQuadBoundsAttrWarning=DOMQuad.bounds köhnəlib, əvəzinə DOMQuad.getBounds() işlədin diff -Nru firefox-61.0~b13+build1/l10n/az/dom/chrome/security/csp.properties firefox-61.0~b14+build1/l10n/az/dom/chrome/security/csp.properties --- firefox-61.0~b13+build1/l10n/az/dom/chrome/security/csp.properties 2018-06-11 16:49:35.000000000 +0000 +++ firefox-61.0~b14+build1/l10n/az/dom/chrome/security/csp.properties 2018-06-14 16:08:53.000000000 +0000 @@ -87,6 +87,11 @@ ignoringReportOnlyDirective = Ancaq-raport siyasətli ‘%1$S’ çatdırmada sandbox direktivi nəzərə alınmır # LOCALIZATION NOTE (deprecatedReferrerDirective): # %1$S is the value of the deprecated Referrer Directive. +deprecatedReferrerDirective = Referrer direktivi ‘%1$S’ köhnəlib. Lütfən Referrer-Policy başlığı işlədin. +# LOCALIZATION NOTE (IgnoringSrcBecauseOfDirective): +# %1$S is the name of the src that is ignored. +# %2$S is the name of the directive that causes the src to be ignored. +IgnoringSrcBecauseOfDirective=‘%2$S’ direktivi ilə ‘%1$S’ rədd edildi. # CSP Errors: # LOCALIZATION NOTE (couldntParseInvalidSource): @@ -104,9 +109,10 @@ # LOCALIZATION NOTE (duplicateDirective): # %1$S is the name of the duplicate directive duplicateDirective = %1$S direktivinin nüsxəsi aşkarlandı. İlki xaricində hamısı görməzdən gəlinəcək. -# LOCALIZATION NOTE (deprecatedDirective): -# %1$S is the name of the deprecated directive, %2$S is the name of the replacement. -deprecatedDirective = '%1$S' direktivi artıq dəstəklənmir. Lütfən əvəzinə '%2$S' direktivini işlədin. +# LOCALIZATION NOTE (deprecatedChildSrcDirective): +# %1$S is the value of the deprecated directive. +# Do not localize: worker-src, frame-src +deprecatedChildSrcDirective = ‘%1$S’ direktivi köhnəlib. Lütfən worker idarəsi üçün ‘worker-src’, frame idarəsi üçün də ‘frame-src’ istifadə edin. # LOCALIZATION NOTE (couldntParseInvalidSandboxFlag): # %1$S is the option that could not be understood couldntParseInvalidSandboxFlag = Xətalı ‘%1$S’ sandbox bayrağı emal edilə bilmədi diff -Nru firefox-61.0~b13+build1/l10n/be/browser/browser/preferences/permissions.ftl firefox-61.0~b14+build1/l10n/be/browser/browser/preferences/permissions.ftl --- firefox-61.0~b13+build1/l10n/be/browser/browser/preferences/permissions.ftl 2018-06-11 16:49:42.000000000 +0000 +++ firefox-61.0~b14+build1/l10n/be/browser/browser/preferences/permissions.ftl 2018-06-14 16:09:06.000000000 +0000 @@ -83,6 +83,13 @@ .style = { permissions-window.style } permissions-exceptions-addons-desc = Вы можаце вызначыць, якім вэб-сайтам дазволена ўсталёўваць дадаткі. Набярыце дакладны адрас сайта, якому вы хочаце гэта дазволіць, і пстрыкніце Дазволіць. +## Exceptions - Autoplay Media + +permissions-exceptions-autoplay-media-window = + .title = Дазволеныя вэб-сайты - Аўтапрайграванне + .style = { permissions-window.style } +permissions-exceptions-autoplay-media-desc = Вы можаце пазначыць, якім вэб-сайтам дазволена прайграваць медыя-элементы аўтаматычна. Упішыце дакладны адрас сайта, якому вы дазваляеце, і націсніце Дазволіць. + ## Site Permissions - Notifications permissions-site-notification-window = diff -Nru firefox-61.0~b13+build1/l10n/be/browser/browser/preferences/preferences.ftl firefox-61.0~b14+build1/l10n/be/browser/browser/preferences/preferences.ftl --- firefox-61.0~b13+build1/l10n/be/browser/browser/preferences/preferences.ftl 2018-06-11 16:49:42.000000000 +0000 +++ firefox-61.0~b14+build1/l10n/be/browser/browser/preferences/preferences.ftl 2018-06-14 16:09:06.000000000 +0000 @@ -582,6 +582,9 @@ history-remember-option = .label = Памятаць гісторыю маіх аглядання і сцягванняў .accesskey = а +history-remember-browser-option = + .label = Памятаць гісторыю аглядання і сцягванняў + .accesskey = П history-remember-search-option = .label = Памятаць гісторыю пошуку і запаўнення формаў .accesskey = ш @@ -697,6 +700,12 @@ permissions-notification-pause = .label = Прыпыніць апавяшчэнні да перазапуску { -brand-short-name } .accesskey = а +permissions-block-autoplay-media = + .label = Забараніць вэб-сайтам аўтаматычна прайграваць медыя з гукам + .accesskey = З +permissions-block-autoplay-media-exceptions = + .label = Выключэнні… + .accesskey = к permissions-block-popups = .label = Блакаваць выплыўныя вокны .accesskey = Б diff -Nru firefox-61.0~b13+build1/l10n/be/browser/browser/preferences/syncDisconnect.ftl firefox-61.0~b14+build1/l10n/be/browser/browser/preferences/syncDisconnect.ftl --- firefox-61.0~b13+build1/l10n/be/browser/browser/preferences/syncDisconnect.ftl 1970-01-01 00:00:00.000000000 +0000 +++ firefox-61.0~b14+build1/l10n/be/browser/browser/preferences/syncDisconnect.ftl 2018-06-14 16:09:06.000000000 +0000 @@ -0,0 +1,29 @@ +# 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/. + +sync-disconnect-dialog = + .title = Адлучыць { -sync-brand-short-name }? + .style = width: 36em; min-height: 35em; +sync-disconnect-heading = Выдаліць таксама даныя аглядання з гэтага камп'ютара? Вашы даныя { -sync-brand-name } застануцца ў вашым уліковым запісе. +sync-disconnect-remove-sync-caption = Выдаліць даныя { -sync-brand-name } +sync-disconnect-remove-sync-data = Закладкі, гісторыя, паролі і іншае. +sync-disconnect-remove-other-caption = Выдаляць іншыя прыватныя даныя +sync-disconnect-remove-other-data = Файлы кукаў, кэшу, пазасеткавыя даныя вэб-сайтаў і г.д. +# Shown while the disconnect is in progress +sync-disconnect-disconnecting = Адлучэнне… +sync-disconnect-cancel = + .label = Скасаваць + .accesskey = С + +## Disconnect confirm Button +## +## The 2 labels which may be shown on the single "Disconnect" button, depending +## on the state of the checkboxes. + +sync-disconnect-confirm-disconnect-delete = + .label = Адлучыць і выдаліць + .accesskey = д +sync-disconnect-confirm-disconnect = + .label = Толькі адлучыць + .accesskey = Т diff -Nru firefox-61.0~b13+build1/l10n/be/browser/chrome/browser/activity-stream/newtab.properties firefox-61.0~b14+build1/l10n/be/browser/chrome/browser/activity-stream/newtab.properties --- firefox-61.0~b13+build1/l10n/be/browser/chrome/browser/activity-stream/newtab.properties 2018-06-11 16:49:42.000000000 +0000 +++ firefox-61.0~b14+build1/l10n/be/browser/chrome/browser/activity-stream/newtab.properties 2018-06-14 16:09:06.000000000 +0000 @@ -91,7 +91,6 @@ # what is shown for the homepage, new windows, and new tabs. prefs_home_header=Хатні экран Firefox prefs_home_description=Выберыце пажаданае змесціва для хатняга экрана Firefox. -prefs_restore_defaults_button=Аднавіць прадвызначэнні # LOCALIZATION NOTE (prefs_section_rows_option): This is a semi-colon list of # plural forms used in a drop down of multiple row options (1 row, 2 rows). # See: http://developer.mozilla.org/en/docs/Localization_and_Plurals @@ -107,25 +106,14 @@ prefs_highlights_options_pocket_label=Захаваныя ў Pocket старонкі prefs_snippets_description=Абнаўленні ад Mozilla і Firefox settings_pane_button_label=Наладзіць вашу старонку новай карткі -settings_pane_header=Налады новай карткі -settings_pane_body2=Выберыце тое, што вы бачыце на гэтай старонцы. -settings_pane_search_header=Пошук -settings_pane_search_body=Пошук у Сеціве з вашай новай карткі. settings_pane_topsites_header=Папулярныя сайты -settings_pane_topsites_body=Доступ да сайтаў, якія вы часцей наведваеце. -settings_pane_topsites_options_showmore=Паказваць два шэрагі settings_pane_highlights_header=Выбранае -settings_pane_highlights_body2=Знайдзіце зваротны шлях да цікавых рэчаў, якія вы нядаўна наведалі або дадалі ў закладкі. settings_pane_highlights_options_bookmarks=Закладкі -settings_pane_highlights_options_visited=Наведаныя сайты # LOCALIZATION NOTE(settings_pane_snippets_header): For the "Snippets" feature # traditionally on about:home. Alternative translation options: "Small Note" or # something that expresses the idea of "a small message, shortened from # something else, and non-essential but also not entirely trivial and useless." settings_pane_snippets_header=Урыўкі -settings_pane_snippets_body=Чытайце кароткія і радасныя навіны ад Mozilla аб Firefox, інтэрнэт-культуру і выпадковыя мемы. -settings_pane_done_button=Гатова -settings_pane_topstories_options_sponsored=Паказаць артыкулы ад спонсараў # LOCALIZATION NOTE (edit_topsites_*): This is shown in the Edit Top Sites modal # dialog. @@ -155,9 +143,6 @@ # LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the # end of the list of popular topic links. pocket_read_even_more=Іншыя навіны -# LOCALIZATION NOTE (pocket_description): This is shown in the settings pane -# to provide more information about Pocket. -pocket_description=Адкрыйце для сябе высакаякасны кантэнт, які вы маглі б прапусціць, з дапамогай Pocket, які стаў часткай Mozilla. highlights_empty_state=Пачніце агляданне, і мы пакажам вам тут некаторыя з найлепшых артыкулаў, відэаролікаў і іншых старонак, якія вы нядаўна наведалі або дадалі ў закладкі. # LOCALIZATION NOTE (topstories_empty_state): When there are no recommendations, @@ -186,7 +171,31 @@ section_menu_action_collapse_section=Згарнуць раздзел section_menu_action_expand_section=Разгарнуць раздзел section_menu_action_manage_section=Наладзіць раздзел +section_menu_action_manage_webext=Кіраваць пашырэннем section_menu_action_add_topsite=Дадаць папулярны сайт section_menu_action_move_up=Пасунуць вышэй section_menu_action_move_down=Пасунуць ніжэй section_menu_action_privacy_notice=Паведамленне аб прыватнасці + +# LOCALIZATION NOTE (firstrun_*). These strings are displayed only once, on the +# firstrun of the browser, they give an introduction to Firefox and Sync. +firstrun_title=Вазьміце Firefox з сабой +firstrun_content=Атрымайце доступ да вашых закладак, гісторыі, пароляў і іншых налад на ўсіх вашых прыладах. +firstrun_learn_more_link=Даведайцеся больш пра ўліковыя запісы Firefox + +# LOCALIZATION NOTE (firstrun_form_header and firstrun_form_sub_header): +# firstrun_form_sub_header is a continuation of firstrun_form_header, they are one sentence. +# firstrun_form_header is displayed more boldly as the call to action. +firstrun_form_header=Увядзіце сваю электронную пошту +firstrun_form_sub_header=каб прадоўжыць з Firefox Sync. + +firstrun_email_input_placeholder=Эл.пошта + +# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and +# {privacy} is equal to firstrun_privacy_notice. {terms} and {privacy} are clickable links. +firstrun_extra_legal_links=Працягваючы, вы згаджаецеся з {terms} і {privacy}. +firstrun_terms_of_service=умовамі абслугоўвання +firstrun_privacy_notice=паведамленнем аб прыватнасці + +firstrun_continue_to_login=Працягнуць +firstrun_skip_login=Прапусціць гэты крок diff -Nru firefox-61.0~b13+build1/l10n/be/browser/chrome/browser/browser.dtd firefox-61.0~b14+build1/l10n/be/browser/chrome/browser/browser.dtd --- firefox-61.0~b13+build1/l10n/be/browser/chrome/browser/browser.dtd 2018-06-11 16:49:42.000000000 +0000 +++ firefox-61.0~b14+build1/l10n/be/browser/chrome/browser/browser.dtd 2018-06-14 16:09:06.000000000 +0000 @@ -35,6 +35,9 @@ + + + + + @@ -431,6 +438,8 @@ + + - - - - - + + diff -Nru firefox-61.0~b13+build1/l10n/be/browser/pdfviewer/viewer.properties firefox-61.0~b14+build1/l10n/be/browser/pdfviewer/viewer.properties --- firefox-61.0~b13+build1/l10n/be/browser/pdfviewer/viewer.properties 2018-06-11 16:49:42.000000000 +0000 +++ firefox-61.0~b14+build1/l10n/be/browser/pdfviewer/viewer.properties 2018-06-14 16:09:06.000000000 +0000 @@ -65,6 +65,20 @@ cursor_hand_tool.title=Уключыць ручную прыладу cursor_hand_tool_label=Ручная прылада +scroll_vertical.title=Ужываць вертыкальную пракрутку +scroll_vertical_label=Вертыкальная пракрутка +scroll_horizontal.title=Ужываць гарызантальную пракрутку +scroll_horizontal_label=Гарызантальная пракрутка +scroll_wrapped.title=Ужываць маштабавальную пракрутку +scroll_wrapped_label=Маштабавальная пракрутка + +spread_none.title=Не выкарыстоўваць разгорнутыя старонкі +spread_none_label=Без разгорнутых старонак +spread_odd.title=Разгорнутыя старонкі пачынаючы з няцотных нумароў +spread_odd_label=Няцотныя старонкі злева +spread_even.title=Разгорнутыя старонкі пачынаючы з цотных нумароў +spread_even_label=Цотныя старонкі злева + # Document properties dialog box document_properties.title=Уласцівасці дакумента… document_properties_label=Уласцівасці дакумента… diff -Nru firefox-61.0~b13+build1/l10n/be/devtools/client/application.ftl firefox-61.0~b14+build1/l10n/be/devtools/client/application.ftl --- firefox-61.0~b13+build1/l10n/be/devtools/client/application.ftl 1970-01-01 00:00:00.000000000 +0000 +++ firefox-61.0~b14+build1/l10n/be/devtools/client/application.ftl 2018-06-14 16:09:06.000000000 +0000 @@ -0,0 +1,63 @@ +# 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/. + + +### These strings are used inside the Application panel which is available +### by setting the preference `devtools-application-enabled` to true. + + +### The correct localization of this file might be to keep it in English, or another +### language commonly spoken among web developers. You want to make that choice consistent +### across the developer tools. A good criteria is the language in which you'd find the +### best documentation on web development on the web. + +# Header for the list of Service Workers displayed in the application panel for the current page. +serviceworker-list-header = Service Workers +# Text displayed next to the list of Service Workers to encourage users to check out +# about:debugging to see all registered Service Workers. +serviceworker-list-aboutdebugging = Адкрыць about:debugging для Service Workers з іншых даменаў +# Text for the button to unregister a Service Worker. Displayed for active Service Workers. +serviceworker-worker-unregister = Скасаваць рэгістрацыю +# Text for the debug link displayed for an already started Service Worker. Clicking on the +# link opens a new devtools toolbox for this service worker. The title attribute is only +# displayed when the link is disabled. +serviceworker-worker-debug = Адладка + .title = Можна адладжваць толькі запушчаныя service workers +# Text for the start link displayed for a registered but not running Service Worker. +# Clicking on the link will attempt to start the service worker. +serviceworker-worker-start = Запусціць +# Text displayed for the updated time of the service worker. The