diff options
32 files changed, 1831 insertions, 294 deletions
diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js index 27c2d13fbd..21bbb6c8a9 100644 --- a/browser/app/profile/firefox.js +++ b/browser/app/profile/firefox.js @@ -822,6 +822,10 @@ pref("browser.dataFeatureRecommendations.enabled", false); // sets darkTheme data. pref("browser.theme.dark-private-windows", true); +// Pref to control whether or not Private Browsing windows show up +// as separate icons in the Windows taskbar. +pref("browser.privateWindowSeparation.enabled", true); + // Controls visibility of the privacy segmentation preferences section. pref("browser.privacySegmentation.preferences.show", false); diff --git a/browser/components/BrowserContentHandler.sys.mjs b/browser/components/BrowserContentHandler.sys.mjs index 6c156d1700..1ac7a09d2d 100644 --- a/browser/components/BrowserContentHandler.sys.mjs +++ b/browser/components/BrowserContentHandler.sys.mjs @@ -322,7 +322,13 @@ function openBrowserWindow( Ci.nsILoadContext ).usePrivateBrowsing = true; - if (AppConstants.platform == "win") { + if ( + AppConstants.platform == "win" && + Services.prefs.getBoolPref( + "browser.privateWindowSeparation.enabled", + true + ) + ) { lazy.WinTaskbar.setGroupIdForWindow( win, lazy.WinTaskbar.defaultPrivateGroupId diff --git a/browser/components/BrowserGlue.sys.mjs b/browser/components/BrowserGlue.sys.mjs index 81889db040..2f2aa0ac49 100644 --- a/browser/components/BrowserGlue.sys.mjs +++ b/browser/components/BrowserGlue.sys.mjs @@ -2743,6 +2743,10 @@ BrowserGlue.prototype = { name: "ensurePrivateBrowsingShortcutExists", condition: AppConstants.platform == "win" && + Services.prefs.getBoolPref( + "browser.privateWindowSeparation.enabled", + true + ) && // We don't want a shortcut if it's been disabled, eg: by enterprise policy. lazy.PrivateBrowsingUtils.enabled && // Private Browsing shortcuts for packaged builds come with the package, diff --git a/browser/config/version.txt b/browser/config/version.txt index 29810a755b..6f1605c380 100644 --- a/browser/config/version.txt +++ b/browser/config/version.txt @@ -1 +1 @@ -127.0.1 +127.0.2 diff --git a/browser/config/version_display.txt b/browser/config/version_display.txt index 29810a755b..6f1605c380 100644 --- a/browser/config/version_display.txt +++ b/browser/config/version_display.txt @@ -1 +1 @@ -127.0.1 +127.0.2 diff --git a/browser/extensions/webcompat/data/injections.js b/browser/extensions/webcompat/data/injections.js index 87b1da747b..a188a40f8d 100644 --- a/browser/extensions/webcompat/data/injections.js +++ b/browser/extensions/webcompat/data/injections.js @@ -1056,6 +1056,20 @@ const AVAILABLE_INJECTIONS = [ ], }, }, + { + id: "1882040", + platform: "android", + domain: "YouTube Shorts", + bug: "1882040", + contentScripts: { + matches: ["*://m.youtube.com/shorts/*"], + css: [ + { + file: "injections/css/bug1882040-disable-pull-to-refresh.css", + }, + ], + }, + }, ]; module.exports = AVAILABLE_INJECTIONS; diff --git a/browser/extensions/webcompat/injections/css/bug1882040-disable-pull-to-refresh.css b/browser/extensions/webcompat/injections/css/bug1882040-disable-pull-to-refresh.css new file mode 100644 index 0000000000..b075f96212 --- /dev/null +++ b/browser/extensions/webcompat/injections/css/bug1882040-disable-pull-to-refresh.css @@ -0,0 +1,14 @@ +/* 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/. */ + +/** + * m.youtube.com/shorts - pull-to-refresh breaks scrolling + * Bug #1882040 - https://bugzilla.mozilla.org/show_bug.cgi?id=1882040 + * + * Pull-to-refresh is breaking scrolling on the YouTube Shorts mobile page. + * The easiest work-around is to inject this CSS to disable it for now. + */ +html { + overscroll-behavior: contain; +} diff --git a/browser/extensions/webcompat/manifest.json b/browser/extensions/webcompat/manifest.json index 683ea6c1ae..a0af51cd32 100644 --- a/browser/extensions/webcompat/manifest.json +++ b/browser/extensions/webcompat/manifest.json @@ -2,7 +2,7 @@ "manifest_version": 2, "name": "Web Compatibility Interventions", "description": "Urgent post-release fixes for web compatibility.", - "version": "125.1.0", + "version": "125.2.0", "browser_specific_settings": { "gecko": { "id": "webcompat@mozilla.org", diff --git a/browser/extensions/webcompat/moz.build b/browser/extensions/webcompat/moz.build index a40641f33b..a42e7cb0eb 100644 --- a/browser/extensions/webcompat/moz.build +++ b/browser/extensions/webcompat/moz.build @@ -76,6 +76,7 @@ FINAL_TARGET_FILES.features["webcompat@mozilla.org"]["injections"]["css"] += [ "injections/css/bug1849388-kucharkaprodceru.cz-scroll-fix.css", "injections/css/bug1868345-tvmovie.de-scroll-fix.css", "injections/css/bug1877346-offerup.com-infinite-scroll-fix.css", + "injections/css/bug1882040-disable-pull-to-refresh.css", "injections/css/bug1884842-foodora.cz-height-fix.css", ] diff --git a/browser/installer/windows/nsis/shared.nsh b/browser/installer/windows/nsis/shared.nsh index f9f50a5afa..f9cd1feac1 100755 --- a/browser/installer/windows/nsis/shared.nsh +++ b/browser/installer/windows/nsis/shared.nsh @@ -175,6 +175,9 @@ ; updated, but only if we're not the instance of PostUpdate that was started ; by the service, because this needs to run as the actual user. Also, don't do ; that if the installer was told not to register the agent task at all. +; XXXbytesized - This also needs to un-register any scheduled tasks for the WDBA +; that were registered using elevation, but currently it does +; not. See Bugs 1638509 and 1902719. !ifdef MOZ_DEFAULT_BROWSER_AGENT ${If} $TmpVal == "HKCU" ClearErrors @@ -184,10 +187,6 @@ ${If} $TmpVal == "HKCU" ${OrIf} ${Errors} ExecWait '"$INSTDIR\default-browser-agent.exe" register-task $AppUserModelID' ${EndIf} -${ElseIf} $TmpVal == "HKLM" - ; If we're the privileged PostUpdate, make sure that the unprivileged one - ; will have permission to create a task by clearing out the old one first. - ExecWait '"$INSTDIR\default-browser-agent.exe" unregister-task $AppUserModelID' ${EndIf} !endif diff --git a/build/unix/elfhack/elfhack.cpp b/build/unix/elfhack/elfhack.cpp index 719d4ac8f5..baedadedf0 100644 --- a/build/unix/elfhack/elfhack.cpp +++ b/build/unix/elfhack/elfhack.cpp @@ -1116,7 +1116,7 @@ int do_relocation_section(Elf* elf, unsigned int rel_type, // can actually use it) if (elf->getSegmentByType(PT_GNU_RELRO)) { ElfSection* gnu_versym = dyn->getSectionForType(DT_VERSYM); - auto lookup = [&symtab, &gnu_versym](const char* symbol) { + auto ensure_symbol = [&symtab, &gnu_versym](const char* symbol) { Elf_SymValue* sym_value = symtab->lookup(symbol, STT(FUNC)); if (!sym_value) { symtab->syms.emplace_back(); @@ -1138,11 +1138,13 @@ int do_relocation_section(Elf* elf, unsigned int rel_type, gnu_versym->grow(gnu_versym->getSize() + gnu_versym->getEntSize()); } } - return sym_value; }; - - Elf_SymValue* mprotect = lookup("mprotect"); - Elf_SymValue* sysconf = lookup("sysconf"); + // ensure_symbol may trigger a symbol table vector resize, so only lookup + // the symbols after we're done touching the symbol table. + ensure_symbol("mprotect"); + ensure_symbol("sysconf"); + Elf_SymValue* mprotect = symtab->lookup("mprotect", STT(FUNC)); + Elf_SymValue* sysconf = symtab->lookup("sysconf", STT(FUNC)); // Add relocations for the mprotect and sysconf symbols. auto add_relocation_to = [&new_rels, &symtab, rel_type2]( diff --git a/config/milestone.txt b/config/milestone.txt index fccd17fbc2..5cd787dc83 100644 --- a/config/milestone.txt +++ b/config/milestone.txt @@ -10,4 +10,4 @@ # hardcoded milestones in the tree from these two files. #-------------------------------------------------------- -127.0.1 +127.0.2 diff --git a/dom/media/mediasource/TrackBuffersManager.cpp b/dom/media/mediasource/TrackBuffersManager.cpp index c87fa239f1..58ba7c250b 100644 --- a/dom/media/mediasource/TrackBuffersManager.cpp +++ b/dom/media/mediasource/TrackBuffersManager.cpp @@ -922,7 +922,11 @@ void TrackBuffersManager::SegmentParserLoop() { if (mNewMediaSegmentStarted) { if (NS_SUCCEEDED(newData) && mLastParsedEndTime.isSome() && start < mLastParsedEndTime.ref()) { - MSE_DEBUG("Re-creating demuxer"); + MSE_DEBUG("Re-creating demuxer, new start (%" PRId64 + ") is smaller than last parsed end time (%" PRId64 ")", + start.ToMicroseconds(), + mLastParsedEndTime->ToMicroseconds()); + mFrameEndTimeBeforeRecreateDemuxer = Some(end); ResetDemuxingState(); return; } @@ -1038,8 +1042,15 @@ void TrackBuffersManager::CreateDemuxerforMIMEType() { if (mType.Type() == MEDIAMIMETYPE(VIDEO_WEBM) || mType.Type() == MEDIAMIMETYPE(AUDIO_WEBM)) { - mInputDemuxer = - new WebMDemuxer(mCurrentInputBuffer, true /* IsMediaSource*/); + if (mFrameEndTimeBeforeRecreateDemuxer) { + MSE_DEBUG( + "CreateDemuxerFromMimeType: " + "mFrameEndTimeBeforeRecreateDemuxer=%" PRId64, + mFrameEndTimeBeforeRecreateDemuxer->ToMicroseconds()); + } + mInputDemuxer = new WebMDemuxer(mCurrentInputBuffer, true, + mFrameEndTimeBeforeRecreateDemuxer); + mFrameEndTimeBeforeRecreateDemuxer.reset(); DDLINKCHILD("demuxer", mInputDemuxer.get()); return; } @@ -1047,6 +1058,7 @@ void TrackBuffersManager::CreateDemuxerforMIMEType() { if (mType.Type() == MEDIAMIMETYPE(VIDEO_MP4) || mType.Type() == MEDIAMIMETYPE(AUDIO_MP4)) { mInputDemuxer = new MP4Demuxer(mCurrentInputBuffer); + mFrameEndTimeBeforeRecreateDemuxer.reset(); DDLINKCHILD("demuxer", mInputDemuxer.get()); return; } @@ -1625,9 +1637,11 @@ void TrackBuffersManager::MaybeDispatchEncryptedEvent( void TrackBuffersManager::OnVideoDemuxCompleted( const RefPtr<MediaTrackDemuxer::SamplesHolder>& aSamples) { mTaskQueueCapability->AssertOnCurrentThread(); - MSE_DEBUG("%zu video samples demuxed", aSamples->GetSamples().Length()); mVideoTracks.mDemuxRequest.Complete(); mVideoTracks.mQueuedSamples.AppendElements(aSamples->GetSamples()); + MSE_DEBUG("%zu video samples demuxed, queued-sz=%zu", + aSamples->GetSamples().Length(), + mVideoTracks.mQueuedSamples.Length()); MaybeDispatchEncryptedEvent(aSamples->GetSamples()); DoDemuxAudio(); @@ -1892,6 +1906,9 @@ void TrackBuffersManager::ProcessFrames(TrackBuffer& aSamples, // coded frame. if (!sample->mKeyframe) { previouslyDroppedSample = nullptr; + SAMPLE_DEBUGV("skipping sample [%" PRId64 ",%" PRId64 "]", + sample->mTime.ToMicroseconds(), + sample->GetEndTime().ToMicroseconds()); continue; } // 2. Set the need random access point flag on track buffer to false. @@ -1971,6 +1988,7 @@ void TrackBuffersManager::ProcessFrames(TrackBuffer& aSamples, // 4. Unset the highest end timestamp on all track buffers. // 5. Set the need random access point flag on all track buffers to // true. + MSE_DEBUG("Resetting append state"); track->ResetAppendState(); } // 6. Jump to the Loop Top step above to restart processing of the current @@ -2553,10 +2571,12 @@ void TrackBuffersManager::RecreateParser(bool aReuseInitData) { mParser = ContainerParser::CreateForMIMEType(mType); DDLINKCHILD("parser", mParser.get()); if (aReuseInitData && mInitData) { + MSE_DEBUG("Using existing init data to reset parser"); TimeUnit start, end; mParser->ParseStartAndEndTimestamps(MediaSpan(mInitData), start, end); mProcessedInput = mInitData->Length(); } else { + MSE_DEBUG("Resetting parser, not reusing init data"); mProcessedInput = 0; } } @@ -2843,12 +2863,20 @@ const MediaRawData* TrackBuffersManager::GetSample(TrackInfo::TrackType aTrack, const TrackBuffer& track = GetTrackBuffer(aTrack); if (aIndex >= track.Length()) { + MSE_DEBUGV( + "Can't get sample due to reaching to the end, index=%u, " + "length=%zu", + aIndex, track.Length()); // reached the end. return nullptr; } if (!(aExpectedDts + aFuzz).IsValid() || !(aExpectedPts + aFuzz).IsValid()) { // Time overflow, it seems like we also reached the end. + MSE_DEBUGV("Can't get sample due to time overflow, expectedPts=%" PRId64 + ", aExpectedDts=%" PRId64 ", fuzz=%" PRId64, + aExpectedPts.ToMicroseconds(), aExpectedPts.ToMicroseconds(), + aFuzz.ToMicroseconds()); return nullptr; } @@ -2859,6 +2887,12 @@ const MediaRawData* TrackBuffersManager::GetSample(TrackInfo::TrackType aTrack, return sample; } + MSE_DEBUGV("Can't get sample due to big gap, sample=%" PRId64 + ", expectedPts=%" PRId64 ", aExpectedDts=%" PRId64 + ", fuzz=%" PRId64, + sample->mTime.ToMicroseconds(), aExpectedPts.ToMicroseconds(), + aExpectedPts.ToMicroseconds(), aFuzz.ToMicroseconds()); + // Gap is too big. End of Stream or Waiting for Data. // TODO, check that we have continuous data based on the sanitized buffered // range instead. diff --git a/dom/media/mediasource/TrackBuffersManager.h b/dom/media/mediasource/TrackBuffersManager.h index c72f2f5453..0e9c857586 100644 --- a/dom/media/mediasource/TrackBuffersManager.h +++ b/dom/media/mediasource/TrackBuffersManager.h @@ -568,6 +568,8 @@ class TrackBuffersManager final // mTaskQueue. However, there's special locking around mTaskQueue, so we keep // both for now. Maybe<EventTargetCapability<TaskQueue>> mTaskQueueCapability; + + Maybe<media::TimeUnit> mFrameEndTimeBeforeRecreateDemuxer; }; } // namespace mozilla diff --git a/dom/media/webm/NesteggPacketHolder.h b/dom/media/webm/NesteggPacketHolder.h index 7c74f752d3..e1e7822106 100644 --- a/dom/media/webm/NesteggPacketHolder.h +++ b/dom/media/webm/NesteggPacketHolder.h @@ -25,11 +25,12 @@ class NesteggPacketHolder { mOffset(-1), mTimestamp(-1), mDuration(-1), + mDefaultDuration(-1), mTrack(0), mIsKeyframe(false) {} - bool Init(nestegg_packet* aPacket, int64_t aOffset, unsigned aTrack, - bool aIsKeyframe) { + bool Init(nestegg_packet* aPacket, nestegg* aContext, int64_t aOffset, + unsigned aTrack, bool aIsKeyframe) { uint64_t timestamp_ns; if (nestegg_packet_tstamp(aPacket, ×tamp_ns) == -1) { return false; @@ -47,6 +48,10 @@ class NesteggPacketHolder { if (!nestegg_packet_duration(aPacket, &duration_ns)) { mDuration = duration_ns / 1000; } + if (!nestegg_track_default_duration(aContext, mTrack, &duration_ns)) { + mDefaultDuration = duration_ns / 1000; + } + return true; } @@ -66,6 +71,10 @@ class NesteggPacketHolder { MOZ_ASSERT(IsInitialized()); return mDuration; } + int64_t DefaultDuration() const { + MOZ_ASSERT(IsInitialized()); + return mDefaultDuration; + } unsigned Track() { MOZ_ASSERT(IsInitialized()); return mTrack; @@ -78,7 +87,7 @@ class NesteggPacketHolder { private: ~NesteggPacketHolder() { nestegg_free_packet(mPacket); } - bool IsInitialized() { return mOffset >= 0; } + bool IsInitialized() const { return mOffset >= 0; } nestegg_packet* mPacket; @@ -90,8 +99,13 @@ class NesteggPacketHolder { int64_t mTimestamp; // Packet duration in microseconds; -1 if unknown or retrieval failed. + // https://www.webmproject.org/docs/container/#BlockDuration int64_t mDuration; + // Default durtaion in microseconds; -1 if unknown or retrieval failed. + // https://www.webmproject.org/docs/container/#Duration + int64_t mDefaultDuration; + // Track ID. unsigned mTrack; diff --git a/dom/media/webm/WebMDemuxer.cpp b/dom/media/webm/WebMDemuxer.cpp index da14118205..48d3d57ed9 100644 --- a/dom/media/webm/WebMDemuxer.cpp +++ b/dom/media/webm/WebMDemuxer.cpp @@ -15,6 +15,7 @@ #include "gfx2DGlue.h" #include "gfxUtils.h" #include "mozilla/EndianUtils.h" +#include "mozilla/Maybe.h" #include "mozilla/SharedThreadPool.h" #include "MediaDataDemuxer.h" #include "nsAutoRef.h" @@ -150,7 +151,9 @@ int WebMDemuxer::NestEggContext::Init() { WebMDemuxer::WebMDemuxer(MediaResource* aResource) : WebMDemuxer(aResource, false) {} -WebMDemuxer::WebMDemuxer(MediaResource* aResource, bool aIsMediaSource) +WebMDemuxer::WebMDemuxer( + MediaResource* aResource, bool aIsMediaSource, + Maybe<media::TimeUnit> aFrameEndTimeBeforeRecreateDemuxer) : mVideoContext(this, aResource), mAudioContext(this, aResource), mBufferedState(nullptr), @@ -169,6 +172,14 @@ WebMDemuxer::WebMDemuxer(MediaResource* aResource, bool aIsMediaSource) // Audio/video contexts hold a MediaResourceIndex. DDLINKCHILD("video context", mVideoContext.GetResource()); DDLINKCHILD("audio context", mAudioContext.GetResource()); + + MOZ_ASSERT_IF(!aIsMediaSource, + aFrameEndTimeBeforeRecreateDemuxer.isNothing()); + if (aIsMediaSource && aFrameEndTimeBeforeRecreateDemuxer) { + mVideoFrameEndTimeBeforeReset = aFrameEndTimeBeforeRecreateDemuxer; + WEBM_DEBUG("Set mVideoFrameEndTimeBeforeReset=%" PRId64, + mVideoFrameEndTimeBeforeReset->ToMicroseconds()); + } } WebMDemuxer::~WebMDemuxer() { @@ -588,6 +599,12 @@ nsresult WebMDemuxer::GetNextPacket(TrackInfo::TrackType aType, } int64_t tstamp = holder->Timestamp(); int64_t duration = holder->Duration(); + int64_t defaultDuration = holder->DefaultDuration(); + if (aType == TrackInfo::TrackType::kVideoTrack) { + WEBM_DEBUG("GetNextPacket(video): tstamp=%" PRId64 ", duration=%" PRId64 + ", defaultDuration=%" PRId64, + tstamp, duration, defaultDuration); + } // The end time of this frame is the start time of the next frame. Fetch // the timestamp of the next packet for this track. If we've reached the @@ -610,6 +627,12 @@ nsresult WebMDemuxer::GetNextPacket(TrackInfo::TrackType aType, next_tstamp = tstamp + duration; } else if (lastFrameTime.isSome()) { next_tstamp = tstamp + (tstamp - lastFrameTime.ref()); + } else if (defaultDuration >= 0) { + next_tstamp = tstamp + defaultDuration; + } else if (mVideoFrameEndTimeBeforeReset) { + WEBM_DEBUG("Setting next timestamp to be %" PRId64 " us", + mVideoFrameEndTimeBeforeReset->ToMicroseconds()); + next_tstamp = mVideoFrameEndTimeBeforeReset->ToMicroseconds(); } else if (mIsMediaSource) { (this->*pushPacket)(holder); } else { @@ -930,7 +953,7 @@ nsresult WebMDemuxer::DemuxPacket(TrackInfo::TrackType aType, int64_t offset = Resource(aType).Tell(); RefPtr<NesteggPacketHolder> holder = new NesteggPacketHolder(); - if (!holder->Init(packet, offset, track, false)) { + if (!holder->Init(packet, Context(aType), offset, track, false)) { WEBM_DEBUG("NesteggPacketHolder::Init: error"); return NS_ERROR_DOM_MEDIA_DEMUXER_ERR; } diff --git a/dom/media/webm/WebMDemuxer.h b/dom/media/webm/WebMDemuxer.h index 3b3bdc21e2..28407908a9 100644 --- a/dom/media/webm/WebMDemuxer.h +++ b/dom/media/webm/WebMDemuxer.h @@ -94,7 +94,9 @@ class WebMDemuxer : public MediaDataDemuxer, explicit WebMDemuxer(MediaResource* aResource); // Indicate if the WebMDemuxer is to be used with MediaSource. In which // case the demuxer will stop reads to the last known complete block. - WebMDemuxer(MediaResource* aResource, bool aIsMediaSource); + WebMDemuxer( + MediaResource* aResource, bool aIsMediaSource, + Maybe<media::TimeUnit> aFrameEndTimeBeforeRecreateDemuxer = Nothing()); RefPtr<InitPromise> Init() override; @@ -223,6 +225,8 @@ class WebMDemuxer : public MediaDataDemuxer, Maybe<int64_t> mLastAudioFrameTime; Maybe<int64_t> mLastVideoFrameTime; + Maybe<media::TimeUnit> mVideoFrameEndTimeBeforeReset; + // Codec ID of audio track int mAudioCodec; // Codec ID of video track diff --git a/mobile/android/android-components/components/feature/webcompat/src/main/assets/extensions/webcompat/data/injections.js b/mobile/android/android-components/components/feature/webcompat/src/main/assets/extensions/webcompat/data/injections.js index 87b1da747b..a188a40f8d 100644 --- a/mobile/android/android-components/components/feature/webcompat/src/main/assets/extensions/webcompat/data/injections.js +++ b/mobile/android/android-components/components/feature/webcompat/src/main/assets/extensions/webcompat/data/injections.js @@ -1056,6 +1056,20 @@ const AVAILABLE_INJECTIONS = [ ], }, }, + { + id: "1882040", + platform: "android", + domain: "YouTube Shorts", + bug: "1882040", + contentScripts: { + matches: ["*://m.youtube.com/shorts/*"], + css: [ + { + file: "injections/css/bug1882040-disable-pull-to-refresh.css", + }, + ], + }, + }, ]; module.exports = AVAILABLE_INJECTIONS; diff --git a/mobile/android/android-components/components/feature/webcompat/src/main/assets/extensions/webcompat/injections/css/bug1882040-disable-pull-to-refresh.css b/mobile/android/android-components/components/feature/webcompat/src/main/assets/extensions/webcompat/injections/css/bug1882040-disable-pull-to-refresh.css new file mode 100644 index 0000000000..b075f96212 --- /dev/null +++ b/mobile/android/android-components/components/feature/webcompat/src/main/assets/extensions/webcompat/injections/css/bug1882040-disable-pull-to-refresh.css @@ -0,0 +1,14 @@ +/* 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/. */ + +/** + * m.youtube.com/shorts - pull-to-refresh breaks scrolling + * Bug #1882040 - https://bugzilla.mozilla.org/show_bug.cgi?id=1882040 + * + * Pull-to-refresh is breaking scrolling on the YouTube Shorts mobile page. + * The easiest work-around is to inject this CSS to disable it for now. + */ +html { + overscroll-behavior: contain; +} diff --git a/mobile/android/android-components/components/feature/webcompat/src/main/assets/extensions/webcompat/manifest.json b/mobile/android/android-components/components/feature/webcompat/src/main/assets/extensions/webcompat/manifest.json index 6f6d519d7c..8353eee2f4 100644 --- a/mobile/android/android-components/components/feature/webcompat/src/main/assets/extensions/webcompat/manifest.json +++ b/mobile/android/android-components/components/feature/webcompat/src/main/assets/extensions/webcompat/manifest.json @@ -2,7 +2,7 @@ "manifest_version": 2, "name": "Mozilla Android Components - Web Compatibility Interventions", "description": "Urgent post-release fixes for web compatibility.", - "version": "125.0.0", + "version": "125.2.0", "browser_specific_settings": { "gecko": { "id": "webcompat@mozilla.org", diff --git a/mobile/android/fenix/app/metrics.yaml b/mobile/android/fenix/app/metrics.yaml index a620eb4d39..2b94cb5cd4 100644 --- a/mobile/android/fenix/app/metrics.yaml +++ b/mobile/android/fenix/app/metrics.yaml @@ -7731,6 +7731,20 @@ first_session: tags: - Performance - Attribution + install_source: + type: string + lifetime: application + description: | + Used to identify the source the app was installed from. + bugs: + - https://bugzilla.mozilla.org/show_bug.cgi?id=1898363 + data_reviews: + - https://phabricator.services.mozilla.com/D212913 + data_sensitivity: + - technical + notification_emails: + - android-probes@mozilla.com + expires: never play_store_attribution: install_referrer_response: type: text diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/metrics/FirstSessionPing.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/metrics/FirstSessionPing.kt index 0666ab06e7..d281f03c06 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/metrics/FirstSessionPing.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/metrics/FirstSessionPing.kt @@ -4,8 +4,13 @@ package org.mozilla.fenix.components.metrics +import android.annotation.SuppressLint import android.content.Context import android.content.SharedPreferences +import android.content.pm.PackageManager +import android.os.Build +import android.os.Build.VERSION.SDK_INT +import androidx.annotation.RequiresApi import androidx.annotation.VisibleForTesting import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers @@ -16,6 +21,7 @@ import org.mozilla.fenix.Config import org.mozilla.fenix.GleanMetrics.Events import org.mozilla.fenix.GleanMetrics.FirstSession import org.mozilla.fenix.GleanMetrics.Pings +import org.mozilla.fenix.ext.application import org.mozilla.fenix.ext.settings class FirstSessionPing(private val context: Context) { @@ -70,6 +76,7 @@ class FirstSessionPing(private val context: Context) { }, ) FirstSession.timestamp.set() + FirstSession.installSource.set(installSourcePackage()) } CoroutineScope(Dispatchers.IO).launch { @@ -81,6 +88,38 @@ class FirstSessionPing(private val context: Context) { } } + @SuppressLint("NewApi") // Lint cannot resolve 'sdk' as 'SDK_INT' as it's not referenced directly. + @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) + internal fun installSourcePackage(sdk: Int = SDK_INT) = with(context.application) { + if (sdk >= Build.VERSION_CODES.R) { + installSourcePackageForBuildMinR(packageManager, packageName) + } else { + installSourcePackageForBuildMaxQ(packageManager, packageName) + } + } + + @RequiresApi(Build.VERSION_CODES.R) + private fun installSourcePackageForBuildMinR( + packageManager: PackageManager, + packageName: String, + ) = try { + packageManager.getInstallSourceInfo(packageName).installingPackageName + } catch (e: PackageManager.NameNotFoundException) { + Logger.debug("$packageName is not available to the caller") + null + }.orEmpty() + + private fun installSourcePackageForBuildMaxQ( + packageManager: PackageManager, + packageName: String, + ) = try { + @Suppress("DEPRECATION") + packageManager.getInstallerPackageName(packageName) + } catch (e: IllegalArgumentException) { + Logger.debug("$packageName is not installed") + null + }.orEmpty() + /** * Check that at least one of the metrics values is set before sending the ping. * Note: it is normal for many of these values to not be set as campaigns do not always diff --git a/mobile/android/fenix/app/src/test/java/org/mozilla/fenix/components/metrics/FirstSessionPingTest.kt b/mobile/android/fenix/app/src/test/java/org/mozilla/fenix/components/metrics/FirstSessionPingTest.kt index c3e920f2ca..10d3a20aa3 100644 --- a/mobile/android/fenix/app/src/test/java/org/mozilla/fenix/components/metrics/FirstSessionPingTest.kt +++ b/mobile/android/fenix/app/src/test/java/org/mozilla/fenix/components/metrics/FirstSessionPingTest.kt @@ -5,6 +5,9 @@ package org.mozilla.fenix.components.metrics import android.content.Context +import android.content.pm.PackageManager +import android.os.Build +import android.os.Build.VERSION.SDK_INT import io.mockk.Runs import io.mockk.every import io.mockk.just @@ -12,7 +15,9 @@ import io.mockk.mockk import io.mockk.mockkStatic import io.mockk.spyk import io.mockk.verify +import org.junit.Assert.assertEquals import org.junit.Test +import org.mozilla.fenix.FenixApplication import org.mozilla.fenix.ext.settings import org.mozilla.fenix.utils.Settings @@ -20,10 +25,19 @@ internal class FirstSessionPingTest { @Test fun `checkAndSend() triggers the ping if it wasn't marked as triggered`() { + val mockedPackageManager: PackageManager = mockk(relaxed = true) + mockedPackageManager.configureMockInstallSourcePackage() + + val mockedApplication: FenixApplication = mockk(relaxed = true) + every { mockedApplication.packageManager } returns mockedPackageManager + val mockedContext: Context = mockk(relaxed = true) + every { mockedContext.applicationContext } returns mockedApplication + val mockedSettings: Settings = mockk(relaxed = true) mockkStatic("org.mozilla.fenix.ext.ContextKt") every { mockedContext.settings() } returns mockedSettings + val mockAp = spyk(FirstSessionPing(mockedContext), recordPrivateCalls = true) every { mockAp.checkMetricsNotEmpty() } returns true every { mockAp.wasAlreadyTriggered() } returns false @@ -46,4 +60,116 @@ internal class FirstSessionPingTest { verify(exactly = 0) { mockAp.triggerPing() } } + + @Test + fun `WHEN build version is R installSourcePackage RETURNS the set package name`() { + val mockedPackageManager: PackageManager = mockk(relaxed = true) + val testPackageName = "test R" + mockedPackageManager.mockInstallSourcePackageForBuildMinR(testPackageName) + + val mockedApplication: FenixApplication = mockk(relaxed = true) + every { mockedApplication.packageManager } returns mockedPackageManager + + val mockedContext: Context = mockk(relaxed = true) + every { mockedContext.applicationContext } returns mockedApplication + + val result = FirstSessionPing(mockedContext).installSourcePackage(Build.VERSION_CODES.R) + assertEquals(testPackageName, result) + } + + @Test + fun `GIVEN packageManager throws an exception WHEN Build version is R installSourcePackage RETURNS an empty string`() { + val mockedPackageManager: PackageManager = mockk(relaxed = true) + every { mockedPackageManager.getInstallSourceInfo(any()).installingPackageName } throws PackageManager.NameNotFoundException() + + val mockedApplication: FenixApplication = mockk(relaxed = true) + every { mockedApplication.packageManager } returns mockedPackageManager + + val mockedContext: Context = mockk(relaxed = true) + every { mockedContext.applicationContext } returns mockedApplication + + val result = FirstSessionPing(mockedContext).installSourcePackage(Build.VERSION_CODES.R) + assertEquals("", result) + } + + @Test + fun `WHEN build version is more than R installSourcePackage RETURNS the set package name`() { + val mockedPackageManager: PackageManager = mockk(relaxed = true) + val testPackageName = "test > R" + mockedPackageManager.mockInstallSourcePackageForBuildMinR(testPackageName) + + val mockedApplication: FenixApplication = mockk(relaxed = true) + every { mockedApplication.packageManager } returns mockedPackageManager + + val mockedContext: Context = mockk(relaxed = true) + every { mockedContext.applicationContext } returns mockedApplication + + val result = + FirstSessionPing(mockedContext).installSourcePackage(Build.VERSION_CODES.R.plus(1)) + assertEquals(testPackageName, result) + } + + @Test + fun `GIVEN packageManager throws an exception WHEN Build version is more than R installSourcePackage RETURNS an empty string`() { + val mockedPackageManager: PackageManager = mockk(relaxed = true) + every { mockedPackageManager.getInstallSourceInfo(any()).installingPackageName } throws PackageManager.NameNotFoundException() + + val mockedApplication: FenixApplication = mockk(relaxed = true) + every { mockedApplication.packageManager } returns mockedPackageManager + + val mockedContext: Context = mockk(relaxed = true) + every { mockedContext.applicationContext } returns mockedApplication + + val result = + FirstSessionPing(mockedContext).installSourcePackage(Build.VERSION_CODES.R.plus(1)) + assertEquals("", result) + } + + @Test + fun `WHEN build version is less than R installSourcePackage RETURNS the set package name`() { + val mockedPackageManager: PackageManager = mockk(relaxed = true) + val testPackageName = "test < R" + mockedPackageManager.mockInstallSourcePackageForBuildMaxQ(testPackageName) + + val mockedApplication: FenixApplication = mockk(relaxed = true) + every { mockedApplication.packageManager } returns mockedPackageManager + + val mockedContext: Context = mockk(relaxed = true) + every { mockedContext.applicationContext } returns mockedApplication + + val result = + FirstSessionPing(mockedContext).installSourcePackage(Build.VERSION_CODES.R.minus(1)) + assertEquals(testPackageName, result) + } + + @Test + fun `GIVEN packageManager throws an exception WHEN Build version is less than R installSourcePackage RETURNS an empty string`() { + val mockedPackageManager: PackageManager = mockk(relaxed = true) + @Suppress("DEPRECATION") + every { mockedPackageManager.getInstallerPackageName(any()) } throws IllegalArgumentException() + + val mockedApplication: FenixApplication = mockk(relaxed = true) + every { mockedApplication.packageManager } returns mockedPackageManager + + val mockedContext: Context = mockk(relaxed = true) + every { mockedContext.applicationContext } returns mockedApplication + + val result = + FirstSessionPing(mockedContext).installSourcePackage(Build.VERSION_CODES.R.minus(1)) + assertEquals("", result) + } } + +private fun PackageManager.configureMockInstallSourcePackage() = + if (SDK_INT >= Build.VERSION_CODES.R) { + mockInstallSourcePackageForBuildMinR() + } else { + mockInstallSourcePackageForBuildMaxQ() + } + +private fun PackageManager.mockInstallSourcePackageForBuildMinR(packageName: String = "") = + every { getInstallSourceInfo(any()).installingPackageName } returns packageName + +@Suppress("DEPRECATION") +private fun PackageManager.mockInstallSourcePackageForBuildMaxQ(packageName: String = "") = + every { getInstallerPackageName(any()) } returns packageName diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/LollipopAsyncCodec.java b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/LollipopAsyncCodec.java index aaf8810bbb..444ee633b6 100644 --- a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/LollipopAsyncCodec.java +++ b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/LollipopAsyncCodec.java @@ -8,6 +8,7 @@ import android.media.MediaCodec; import android.media.MediaCodecInfo.CodecCapabilities; import android.media.MediaCrypto; import android.media.MediaFormat; +import android.os.Binder; import android.os.Build; import android.os.Bundle; import android.os.Handler; @@ -134,7 +135,18 @@ import org.mozilla.gecko.util.HardwareCodecCapabilityUtils; } /* package */ LollipopAsyncCodec(final String name) throws IOException { - mCodec = MediaCodec.createByCodecName(name); + // Create the codec. + // We wrap the call to MediaCodec.createByCodecName in a pair of + // clearCallingIdentity / restoreCallingIdentity, so that the resource + // gets attributed to this process and not to whichever process was calling us. + // This works around a battery usage attribution bug in Android 14+, + // see bug 1902077. + final long token = Binder.clearCallingIdentity(); + try { + mCodec = MediaCodec.createByCodecName(name); + } finally { + Binder.restoreCallingIdentity(token); + } } @Override diff --git a/mobile/android/version.txt b/mobile/android/version.txt index 29810a755b..6f1605c380 100644 --- a/mobile/android/version.txt +++ b/mobile/android/version.txt @@ -1 +1 @@ -127.0.1 +127.0.2 diff --git a/services/settings/dumps/blocklists/addons-bloomfilters.json b/services/settings/dumps/blocklists/addons-bloomfilters.json index aed250d702..74ea78929d 100644 --- a/services/settings/dumps/blocklists/addons-bloomfilters.json +++ b/services/settings/dumps/blocklists/addons-bloomfilters.json @@ -3,6 +3,345 @@ { "stash": { "blocked": [ + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.8.0", + "{886a6486-37b3-4bcd-891b-fd0e325e7b1a}:18.9.1289", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.6.6", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.11.3", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.15.4", + "{886a6486-37b3-4bcd-891b-fd0e325e7b1a}:12.0.328", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.1.14", + "{886a6486-37b3-4bcd-891b-fd0e325e7b1a}:21.2.1669", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.3.1", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.20.0", + "{886a6486-37b3-4bcd-891b-fd0e325e7b1a}:12.0.918", + "avg@toolbar:4.3.9.6", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.1.23", + "{886a6486-37b3-4bcd-891b-fd0e325e7b1a}:12.0.717", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.22.2", + "addonY261@easyshare.app:1.24.125", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.2.0", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.6.4", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.1.0", + "{886a6486-37b3-4bcd-891b-fd0e325e7b1a}:22.0.1673", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.1.13", + "imguard-ff3@mark.nicodemus:3.5.31.10", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.18.0", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.17.2", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.6.1", + "softphone.service@five9.com:11.5.1", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.0.12", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.15.5", + "{a9967d75-7a61-4aee-ae11-869571bab731}:4.3.31", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.1.8", + "avg@toolbar:4.3.9.2", + "{886a6486-37b3-4bcd-891b-fd0e325e7b1a}:19.5.1559", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.6.3", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.1.20", + "{886a6486-37b3-4bcd-891b-fd0e325e7b1a}:22.2.1686", + "assetview.m@hammock.co.jp:1.0.0.1010", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.1.9", + "dmpgopmhgecgfpbiphgfobeaeaodaidj@577f46ac-44d3-4c0e-8d56-fce12b71f5a0.com:0.542.0", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.11.1", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.13.2", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.20.1", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.11.2", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.16.0", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.9.2", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.7.4", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.1.17", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.11.0", + "{886a6486-37b3-4bcd-891b-fd0e325e7b1a}:20.4.1659", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.0.13", + "dmpgopmhgecgfpbiphgfobeaeaodaidj@577f46ac-44d3-4c0e-8d56-fce12b71f5a0.com:0.647.0", + "{886a6486-37b3-4bcd-891b-fd0e325e7b1a}:18.7.1071", + "dmpgopmhgecgfpbiphgfobeaeaodaidj@9c8387ec-edad-4985-82c0-25a0b84fffb4.com:0.716.0", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.17.1", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.22.3", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.21.1", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.7.0", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.18.1", + "{886a6486-37b3-4bcd-891b-fd0e325e7b1a}:12.0.385", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.10.1", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.4.5", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.5.0", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.1.5", + "{886a6486-37b3-4bcd-891b-fd0e325e7b1a}:20.0.1581", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.13.0", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.7.1", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.3.0", + "{886a6486-37b3-4bcd-891b-fd0e325e7b1a}:12.0.800", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.10.2", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.0.9", + "{886a6486-37b3-4bcd-891b-fd0e325e7b1a}:19.1.1344", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.7.3", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.4.3", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.6.0", + "avg@toolbar:4.3.9.7", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.19.1", + "avg@toolbar:12.0.343", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.1.6", + "{886a6486-37b3-4bcd-891b-fd0e325e7b1a}:20.1.1611", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.16.1", + "{f4625e44-461e-47b3-af62-bbc713d48c69}:0.0.28", + "{886a6486-37b3-4bcd-891b-fd0e325e7b1a}:18.7.1072", + "avg@toolbar:4.3.9.1", + "{886a6486-37b3-4bcd-891b-fd0e325e7b1a}:20.2.1637", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.1.22", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.6.8", + "{886a6486-37b3-4bcd-891b-fd0e325e7b1a}:12.0.141", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.14.0", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.4.0", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.22.1", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.7.2", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.1.15", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.12.0", + "{886a6486-37b3-4bcd-891b-fd0e325e7b1a}:22.1.1678", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.1.1", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.21.0", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.20.2", + "dmpgopmhgecgfpbiphgfobeaeaodaidj@577f46ac-44d3-4c0e-8d56-fce12b71f5a0.com:0.657.0", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.1.16", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.1.18", + "{886a6486-37b3-4bcd-891b-fd0e325e7b1a}:12.0.405", + "{886a6486-37b3-4bcd-891b-fd0e325e7b1a}:12.0.520", + "softphone.service@five9.com:11.5.0", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.6.2", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.9.0", + "{caa5fe90-dc92-4633-b17d-df6bc6fc70e7}:4.3.31", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.9.1", + "avg@toolbar:4.3.9.4", + "dmpgopmhgecgfpbiphgfobeaeaodaidj@9c8387ec-edad-4985-82c0-25a0b84fffb4.com:0.696.0", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.1.2", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.15.2", + "{886a6486-37b3-4bcd-891b-fd0e325e7b1a}:12.0.580", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.6.9", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.15.3", + "addonY261@easyshare.app:1.24.122", + "{886a6486-37b3-4bcd-891b-fd0e325e7b1a}:19.2.1454", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.1.12", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.4.1", + "blabla@blub:3.999.999", + "{886a6486-37b3-4bcd-891b-fd0e325e7b1a}:12.0.330", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.0.10", + "{886a6486-37b3-4bcd-891b-fd0e325e7b1a}:12.0.755", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.13.1", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.15.1", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.15.0", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.17.0", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.1.7", + "dmpgopmhgecgfpbiphgfobeaeaodaidj@577f46ac-44d3-4c0e-8d56-fce12b71f5a0.com:0.751.0", + "{886a6486-37b3-4bcd-891b-fd0e325e7b1a}:18.8.1222", + "{886a6486-37b3-4bcd-891b-fd0e325e7b1a}:19.3.1492", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.0.11", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.20.3", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.1.21", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.15.6", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.4.4", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.1.11", + "{886a6486-37b3-4bcd-891b-fd0e325e7b1a}:19.4.1512", + "{886a6486-37b3-4bcd-891b-fd0e325e7b1a}:19.3.1501", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.6.5", + "{ca613ee6-4211-4ae2-aa3c-d29608461d11}:3.1.10", + "dmpgopmhgecgfpbiphgfobeaeaodaidj@9c8387ec-edad-4985-82c0-25a0b84fffb4.com:0.707.0" + ], + "unblocked": [] + }, + "schema": 1718956118911, + "key_format": "{guid}:{version}", + "stash_time": 1718973306269, + "id": "b3ce3f72-c80d-405b-ab93-9663bcc5bc46", + "last_modified": 1718973362963 + }, + { + "stash": { + "blocked": [ + "time-tracker-on-site@everhour.com:1.6.39", + "time-tracker-on-site@everhour.com:1.6.68", + "time-tracker-on-site@everhour.com:1.6.157", + "time-tracker-on-site@everhour.com:1.6.92", + "time-tracker-on-site@everhour.com:1.6.100", + "time-tracker-on-site@everhour.com:1.6.101", + "time-tracker-on-site@everhour.com:1.6.66", + "browser-extension@jazznetworks.com:3.1.22", + "time-tracker-on-site@everhour.com:1.6.90", + "time-tracker-on-site@everhour.com:1.6.107", + "time-tracker-on-site@everhour.com:1.6.69", + "time-tracker-on-site@everhour.com:1.6.210", + "time-tracker-on-site@everhour.com:1.6.207", + "time-tracker-on-site@everhour.com:1.6.119", + "time-tracker-on-site@everhour.com:1.6.131", + "{8245b70d-c74d-48ed-95d4-c42af09378a6}:0.3.0", + "time-tracker-on-site@everhour.com:1.6.199", + "time-tracker-on-site@everhour.com:1.6.173", + "time-tracker-on-site@everhour.com:1.6.178", + "time-tracker-on-site@everhour.com:1.6.139", + "time-tracker-on-site@everhour.com:1.6.156", + "time-tracker-on-site@everhour.com:1.6.49", + "time-tracker-on-site@everhour.com:1.6.194", + "time-tracker-on-site@everhour.com:1.6.81", + "time-tracker-on-site@everhour.com:1.6.109", + "time-tracker-on-site@everhour.com:1.6.177", + "time-tracker-on-site@everhour.com:1.6.65", + "time-tracker-on-site@everhour.com:1.6.105", + "time-tracker-on-site@everhour.com:1.6.175", + "time-tracker-on-site@everhour.com:1.6.88", + "time-tracker-on-site@everhour.com:1.6.198", + "time-tracker-on-site@everhour.com:1.6.136", + "time-tracker-on-site@everhour.com:1.6.36", + "time-tracker-on-site@everhour.com:1.6.45", + "time-tracker-on-site@everhour.com:1.6.64", + "time-tracker-on-site@everhour.com:1.6.91", + "time-tracker-on-site@everhour.com:1.6.174", + "time-tracker-on-site@everhour.com:1.6.113", + "time-tracker-on-site@everhour.com:1.6.138", + "time-tracker-on-site@everhour.com:1.6.182", + "time-tracker-on-site@everhour.com:1.6.84", + "time-tracker-on-site@everhour.com:1.6.166", + "time-tracker-on-site@everhour.com:1.6.163", + "time-tracker-on-site@everhour.com:1.6.193", + "time-tracker-on-site@everhour.com:1.6.75", + "time-tracker-on-site@everhour.com:1.6.146", + "time-tracker-on-site@everhour.com:1.6.70", + "time-tracker-on-site@everhour.com:1.6.145", + "time-tracker-on-site@everhour.com:1.6.154", + "time-tracker-on-site@everhour.com:1.6.155", + "time-tracker-on-site@everhour.com:1.6.191", + "time-tracker-on-site@everhour.com:1.6.94", + "time-tracker-on-site@everhour.com:1.6.46", + "time-tracker-on-site@everhour.com:1.6.117", + "time-tracker-on-site@everhour.com:1.6.48", + "time-tracker-on-site@everhour.com:1.6.58", + "time-tracker-on-site@everhour.com:1.6.47", + "time-tracker-on-site@everhour.com:1.6.183", + "time-tracker-on-site@everhour.com:1.6.72", + "time-tracker-on-site@everhour.com:1.6.200", + "time-tracker-on-site@everhour.com:1.6.202", + "time-tracker-on-site@everhour.com:1.6.184", + "time-tracker-on-site@everhour.com:1.6.104", + "time-tracker-on-site@everhour.com:1.6.195", + "time-tracker-on-site@everhour.com:1.6.86", + "time-tracker-on-site@everhour.com:1.6.55", + "time-tracker-on-site@everhour.com:1.6.205", + "time-tracker-on-site@everhour.com:1.6.82", + "time-tracker-on-site@everhour.com:1.6.151", + "time-tracker-on-site@everhour.com:1.6.206", + "time-tracker-on-site@everhour.com:1.6.51", + "time-tracker-on-site@everhour.com:1.6.188", + "time-tracker-on-site@everhour.com:1.6.59", + "time-tracker-on-site@everhour.com:1.6.127", + "time-tracker-on-site@everhour.com:1.6.57", + "time-tracker-on-site@everhour.com:1.6.50", + "time-tracker-on-site@everhour.com:1.6.201", + "time-tracker-on-site@everhour.com:1.6.152", + "time-tracker-on-site@everhour.com:1.6.169", + "time-tracker-on-site@everhour.com:1.6.52", + "time-tracker-on-site@everhour.com:1.6.170", + "time-tracker-on-site@everhour.com:1.6.122", + "time-tracker-on-site@everhour.com:1.6.168", + "time-tracker-on-site@everhour.com:1.6.63", + "time-tracker-on-site@everhour.com:1.6.73", + "time-tracker-on-site@everhour.com:1.6.97", + "time-tracker-on-site@everhour.com:1.6.103", + "time-tracker-on-site@everhour.com:1.6.95", + "time-tracker-on-site@everhour.com:1.6.203", + "time-tracker-on-site@everhour.com:1.6.62", + "time-tracker-on-site@everhour.com:1.6.118", + "time-tracker-on-site@everhour.com:1.6.130", + "time-tracker-on-site@everhour.com:1.6.172", + "time-tracker-on-site@everhour.com:1.6.171", + "time-tracker-on-site@everhour.com:1.6.108", + "time-tracker-on-site@everhour.com:1.6.78", + "time-tracker-on-site@everhour.com:1.6.144", + "time-tracker-on-site@everhour.com:1.6.167", + "time-tracker-on-site@everhour.com:1.6.67", + "time-tracker-on-site@everhour.com:1.6.129", + "time-tracker-on-site@everhour.com:1.6.187", + "time-tracker-on-site@everhour.com:1.6.176", + "time-tracker-on-site@everhour.com:1.6.137", + "time-tracker-on-site@everhour.com:1.6.96", + "time-tracker-on-site@everhour.com:1.6.162", + "time-tracker-on-site@everhour.com:1.6.132", + "time-tracker-on-site@everhour.com:1.6.159", + "time-tracker-on-site@everhour.com:1.6.60", + "time-tracker-on-site@everhour.com:1.6.44", + "browser-extension@jazznetworks.com:3.1.19", + "time-tracker-on-site@everhour.com:1.6.134", + "time-tracker-on-site@everhour.com:1.6.121", + "time-tracker-on-site@everhour.com:1.6.123", + "time-tracker-on-site@everhour.com:1.6.125", + "time-tracker-on-site@everhour.com:1.6.80", + "time-tracker-on-site@everhour.com:1.6.56", + "time-tracker-on-site@everhour.com:1.6.133", + "time-tracker-on-site@everhour.com:1.6.197", + "time-tracker-on-site@everhour.com:1.6.110", + "time-tracker-on-site@everhour.com:1.6.93", + "time-tracker-on-site@everhour.com:1.6.161", + "{8245b70d-c74d-48ed-95d4-c42af09378a6}:0.1.5", + "time-tracker-on-site@everhour.com:1.6.186", + "time-tracker-on-site@everhour.com:1.6.143", + "time-tracker-on-site@everhour.com:1.6.190", + "time-tracker-on-site@everhour.com:1.6.85", + "time-tracker-on-site@everhour.com:1.6.196", + "time-tracker-on-site@everhour.com:1.6.204", + "time-tracker-on-site@everhour.com:1.6.147", + "time-tracker-on-site@everhour.com:1.6.38", + "time-tracker-on-site@everhour.com:1.6.135", + "time-tracker-on-site@everhour.com:1.6.208", + "time-tracker-on-site@everhour.com:1.6.185", + "time-tracker-on-site@everhour.com:1.6.87", + "time-tracker-on-site@everhour.com:1.6.150", + "time-tracker-on-site@everhour.com:1.6.141", + "time-tracker-on-site@everhour.com:1.6.54", + "time-tracker-on-site@everhour.com:1.6.61", + "time-tracker-on-site@everhour.com:1.6.165", + "time-tracker-on-site@everhour.com:1.6.189", + "time-tracker-on-site@everhour.com:1.6.35", + "time-tracker-on-site@everhour.com:1.6.79", + "time-tracker-on-site@everhour.com:1.6.180", + "time-tracker-on-site@everhour.com:1.6.74", + "time-tracker-on-site@everhour.com:1.6.160", + "time-tracker-on-site@everhour.com:1.6.111", + "time-tracker-on-site@everhour.com:1.6.102", + "time-tracker-on-site@everhour.com:1.6.71", + "time-tracker-on-site@everhour.com:1.6.149", + "time-tracker-on-site@everhour.com:1.6.114", + "time-tracker-on-site@everhour.com:1.6.77", + "time-tracker-on-site@everhour.com:1.6.158", + "time-tracker-on-site@everhour.com:1.6.89", + "time-tracker-on-site@everhour.com:1.6.83", + "time-tracker-on-site@everhour.com:1.6.98", + "time-tracker-on-site@everhour.com:1.6.116", + "time-tracker-on-site@everhour.com:1.6.126", + "time-tracker-on-site@everhour.com:1.6.106", + "time-tracker-on-site@everhour.com:1.6.76", + "time-tracker-on-site@everhour.com:1.6.140", + "time-tracker-on-site@everhour.com:1.6.153", + "time-tracker-on-site@everhour.com:1.6.209", + "time-tracker-on-site@everhour.com:1.6.120", + "time-tracker-on-site@everhour.com:1.6.37", + "time-tracker-on-site@everhour.com:1.6.164", + "time-tracker-on-site@everhour.com:1.6.53", + "time-tracker-on-site@everhour.com:1.6.41", + "time-tracker-on-site@everhour.com:1.6.124", + "time-tracker-on-site@everhour.com:1.6.192", + "time-tracker-on-site@everhour.com:1.6.181", + "time-tracker-on-site@everhour.com:1.6.112", + "time-tracker-on-site@everhour.com:1.6.40", + "time-tracker-on-site@everhour.com:1.6.148", + "time-tracker-on-site@everhour.com:1.6.142", + "time-tracker-on-site@everhour.com:1.6.179" + ], + "unblocked": [] + }, + "schema": 1718875718819, + "key_format": "{guid}:{version}", + "stash_time": 1718908505730, + "id": "0aa5526f-fa05-4866-8ead-6a8eeb748e38", + "last_modified": 1718908563116 + }, + { + "stash": { + "blocked": [ "{80f72148-c2c1-4690-b9bb-eb49b7e35aad}:1.2" ], "unblocked": [] @@ -720,5 +1059,5 @@ "last_modified": 1707395854769 } ], - "timestamp": 1718109362020 + "timestamp": 1718973362963 } diff --git a/services/settings/dumps/main/devtools-compatibility-browsers.json b/services/settings/dumps/main/devtools-compatibility-browsers.json index ccb7f43884..4022eaaf41 100644 --- a/services/settings/dumps/main/devtools-compatibility-browsers.json +++ b/services/settings/dumps/main/devtools-compatibility-browsers.json @@ -1,6 +1,33 @@ { "data": [ { + "name": "Safari", + "schema": 1718755502911, + "status": "current", + "version": "17.6", + "browserid": "safari", + "id": "4dc72290-4d4e-472d-9348-51def293d286", + "last_modified": 1718777113320 + }, + { + "name": "Safari on iOS", + "schema": 1718755503054, + "status": "current", + "version": "17.6", + "browserid": "safari_ios", + "id": "f5260c7c-37e9-4a80-b775-6fcb7d3134db", + "last_modified": 1718777113317 + }, + { + "name": "Edge", + "schema": 1718755502762, + "status": "current", + "version": "126", + "browserid": "edge", + "id": "c8bf4918-03b7-4be2-bf75-4d6139dbd7c9", + "last_modified": 1718777113307 + }, + { "name": "Chrome Android", "schema": 1718237106974, "status": "beta", @@ -173,15 +200,6 @@ }, { "name": "Edge", - "schema": 1717286706151, - "status": "beta", - "version": "126", - "browserid": "edge", - "id": "c8bf4918-03b7-4be2-bf75-4d6139dbd7c9", - "last_modified": 1718005312974 - }, - { - "name": "Edge", "schema": 1717286706227, "status": "nightly", "version": "127", @@ -190,33 +208,6 @@ "last_modified": 1718005312971 }, { - "name": "Edge", - "schema": 1716941107417, - "status": "current", - "version": "125", - "browserid": "edge", - "id": "f1147d5f-d690-43d0-879d-117c6ca24a16", - "last_modified": 1716966331501 - }, - { - "name": "Safari on iOS", - "schema": 1715731507984, - "status": "current", - "version": "17.5", - "browserid": "safari_ios", - "id": "4375a82d-f2f1-4883-8da7-0aedfb05b8f9", - "last_modified": 1715839095923 - }, - { - "name": "Safari", - "schema": 1715731507854, - "status": "current", - "version": "17.5", - "browserid": "safari", - "id": "24e30aff-fbf8-4a96-a036-84f970447d4b", - "last_modified": 1715839095920 - }, - { "name": "Node.js", "schema": 1715126727137, "status": "current", @@ -307,5 +298,5 @@ "last_modified": 1665656484764 } ], - "timestamp": 1718606078088 + "timestamp": 1718777113320 } diff --git a/services/settings/dumps/main/search-config-v2.json b/services/settings/dumps/main/search-config-v2.json index 3848d688ae..7024860d45 100644 --- a/services/settings/dumps/main/search-config-v2.json +++ b/services/settings/dumps/main/search-config-v2.json @@ -179,6 +179,7 @@ ], "classification": "unknown", "name": "Amazon.co.jp", + "partnerCode": "mozillajapan-fx-22", "urls": { "search": { "base": "https://www.amazon.co.jp/exec/obidos/external-search/", @@ -189,7 +190,7 @@ }, { "name": "tag", - "value": "mozillajapan-fx-22" + "value": "{partnerCode}" }, { "name": "sourceid", @@ -202,16 +203,29 @@ }, "id": "9d089e46-dc94-4d4f-8f17-cc07b59aa9e4", "identifier": "amazon-jp", - "last_modified": 1702906502401, + "last_modified": 1718719100309, "recordType": "engine", - "schema": 1702901805111, + "schema": 1718637175117, "variants": [ { "environment": { "regions": [ "jp" ] - } + }, + "subVariants": [ + { + "environment": { + "applications": [ + "firefox-android", + "focus-android", + "firefox-ios", + "focus-ios" + ] + }, + "partnerCode": "moz-jp-mbl-22" + } + ] } ] }, @@ -231,13 +245,16 @@ }, "id": "788a2ded-6872-4742-8115-c14dde7a18f9", "identifier": "amazondotcom-us", - "last_modified": 1702906502412, + "last_modified": 1718719100307, "notes": "Amazon.com (us only)", "recordType": "engine", - "schema": 1702901802672, + "schema": 1718698346192, "variants": [ { "environment": { + "applications": [ + "firefox" + ], "regions": [ "us" ] @@ -308,16 +325,35 @@ }, "id": "ad58537f-f397-46ec-a1a8-935e12f0aab6", "identifier": "baidu", - "last_modified": 1702906502749, + "last_modified": 1718719100295, "recordType": "engine", - "schema": 1702901740286, + "schema": 1718698349444, "variants": [ { "environment": { "locales": [ "zh-CN" ] - } + }, + "subVariants": [ + { + "environment": { + "applications": [ + "firefox-android", + "focus-android", + "firefox-ios", + "focus-ios" + ] + }, + "urls": { + "search": { + "base": "https://m.baidu.com/s", + "params": [], + "searchTermParamName": "word" + } + } + } + ] } ] }, @@ -339,13 +375,7 @@ }, { "name": "form", - "searchAccessPoint": { - "addressbar": "MOZLBR", - "contextmenu": "MOZCON", - "homepage": "MOZSPG", - "newtab": "MOZTSB", - "searchbar": "MOZSBR" - } + "value": "MOZLBR" } ], "searchTermParamName": "q" @@ -367,96 +397,17 @@ }, "id": "05645095-d26e-4f20-9137-f24a14a23f28", "identifier": "bing", - "last_modified": 1713282817048, + "last_modified": 1718719100291, "recordType": "engine", - "schema": 1713199744323, + "schema": 1718698353718, "variants": [ { "environment": { - "locales": [ - "ach", - "af", - "an", - "ar", - "ast", - "az", - "bn", - "bs", - "ca", - "ca-valencia", - "cak", - "cs", - "cy", - "da", - "de", - "dsb", - "el", - "en-CA", - "en-GB", - "en-US", - "eo", - "es-CL", - "es-ES", - "es-MX", - "eu", - "fa", - "ff", - "fi", - "fr", - "fur", - "fy-NL", - "gd", - "gl", - "gn", - "gu-IN", - "he", - "hi-IN", - "hr", - "hsb", - "hy-AM", - "ia", - "id", - "is", - "it", - "ja", - "ja-JP-macos", - "ka", - "kab", - "km", - "kn", - "lij", - "lo", - "lt", - "meh", - "mk", - "ms", - "my", - "nb-NO", - "ne-NP", - "nl", - "nn-NO", - "oc", - "pa-IN", - "pt-BR", - "rm", - "ro", - "sc", - "sco", - "son", - "sq", - "sr", - "sv-SE", - "te", - "th", - "tl", - "tr", - "trs", - "uk", - "ur", - "uz", - "wo", - "xh", - "zh-CN" + "allRegionsAndLocales": true, + "applications": [ + "firefox", + "firefox-android", + "firefox-ios" ] }, "subVariants": [ @@ -468,6 +419,52 @@ }, "partnerCode": "MOZR", "telemetrySuffix": "esr" + }, + { + "environment": { + "applications": [ + "firefox-android" + ] + }, + "partnerCode": "MOZB", + "urls": { + "search": { + "params": [ + { + "name": "pc", + "value": "{partnerCode}" + }, + { + "name": "form", + "value": "MOZMBA" + } + ], + "searchTermParamName": "q" + } + } + }, + { + "environment": { + "applications": [ + "firefox-ios" + ] + }, + "partnerCode": "MOZW", + "urls": { + "search": { + "params": [ + { + "name": "pc", + "value": "{partnerCode}" + }, + { + "name": "form", + "value": "MOZWSB" + } + ], + "searchTermParamName": "q" + } + } } ] } @@ -542,6 +539,7 @@ "base": { "classification": "unknown", "name": "Cốc Cốc", + "partnerCode": "firefox", "urls": { "search": { "base": "https://coccoc.com/search", @@ -552,7 +550,7 @@ }, { "name": "utm_source", - "value": "firefox" + "value": "{partnerCode}" } ], "searchTermParamName": "query" @@ -575,16 +573,29 @@ }, "id": "20104daa-cb8a-40b9-a8c5-2433f4476c3e", "identifier": "coccoc", - "last_modified": 1702906502314, + "last_modified": 1718719100314, "recordType": "engine", - "schema": 1702901821664, + "schema": 1718698356483, "variants": [ { "environment": { "locales": [ "vi" ] - } + }, + "subVariants": [ + { + "environment": { + "applications": [ + "firefox-android", + "focus-android", + "firefox-ios", + "focus-ios" + ] + }, + "partnerCode": "ffmobile" + } + ] } ] }, @@ -621,16 +632,31 @@ }, "id": "3330e927-6733-4239-9738-b41c5c460b11", "identifier": "daum-kr", - "last_modified": 1702906502311, + "last_modified": 1718719100316, "recordType": "engine", - "schema": 1702901822275, + "schema": 1718698358587, "variants": [ { "environment": { "locales": [ "ko" ] - } + }, + "subVariants": [ + { + "environment": { + "applications": [ + "firefox-android", + "focus-android" + ] + }, + "urls": { + "search": { + "base": "https://m.search.daum.net/search" + } + } + } + ] } ] }, @@ -668,9 +694,9 @@ }, "id": "04e99a38-13ee-47d8-8aa4-64482b3dea99", "identifier": "ddg", - "last_modified": 1713282817053, + "last_modified": 1718719100285, "recordType": "engine", - "schema": 1713282081098, + "schema": 1718698362015, "variants": [ { "environment": { @@ -690,6 +716,26 @@ }, { "environment": { + "allRegionsAndLocales": true, + "applications": [ + "firefox-android", + "focus-android" + ] + }, + "partnerCode": "fpas" + }, + { + "environment": { + "allRegionsAndLocales": true, + "applications": [ + "firefox-ios", + "focus-ios" + ] + }, + "partnerCode": "ffip" + }, + { + "environment": { "distributions": [ "mint-001" ] @@ -752,9 +798,9 @@ }, "id": "d8b7ed81-00f3-478a-a835-dc0677d7190a", "identifier": "ebay", - "last_modified": 1702906502450, + "last_modified": 1718719100298, "recordType": "engine", - "schema": 1702901794691, + "schema": 1718698365997, "variants": [ { "environment": { @@ -764,7 +810,18 @@ "regions": [ "us" ] - } + }, + "subVariants": [ + { + "environment": { + "applications": [ + "firefox-android", + "focus-android" + ] + }, + "partnerCode": "5338791379" + } + ] } ] }, @@ -821,9 +878,9 @@ }, "id": "8dee7454-6c6c-4b22-a411-4e474c7afbb3", "identifier": "ebay-at", - "last_modified": 1702906502421, + "last_modified": 1718719100305, "recordType": "engine", - "schema": 1702901800849, + "schema": 1718698368829, "variants": [ { "environment": { @@ -835,7 +892,18 @@ "regions": [ "at" ] - } + }, + "subVariants": [ + { + "environment": { + "applications": [ + "firefox-android", + "focus-android" + ] + }, + "partnerCode": "5338791379" + } + ] } ] }, @@ -892,9 +960,9 @@ }, "id": "e5a64fe0-2cb9-4b22-83d3-4e529c3702a9", "identifier": "ebay-au", - "last_modified": 1702906502429, + "last_modified": 1718719100302, "recordType": "engine", - "schema": 1702901799015, + "schema": 1718698373814, "variants": [ { "environment": { @@ -907,7 +975,18 @@ "regions": [ "au" ] - } + }, + "subVariants": [ + { + "environment": { + "applications": [ + "firefox-android", + "focus-android" + ] + }, + "partnerCode": "5338791379" + } + ] } ] }, @@ -964,9 +1043,9 @@ }, "id": "5f40614e-4fc6-4dee-a897-07b258e00820", "identifier": "ebay-be", - "last_modified": 1702906502442, + "last_modified": 1718719100300, "recordType": "engine", - "schema": 1702901796541, + "schema": 1718698383258, "variants": [ { "environment": { @@ -981,7 +1060,18 @@ "regions": [ "be" ] - } + }, + "subVariants": [ + { + "environment": { + "applications": [ + "firefox-android", + "focus-android" + ] + }, + "partnerCode": "5338791379" + } + ] } ] }, @@ -1038,9 +1128,9 @@ }, "id": "336d7fa9-7579-4981-bfb0-024c6c5f977d", "identifier": "ebay-ca", - "last_modified": 1715090108516, + "last_modified": 1718719100278, "recordType": "engine", - "schema": 1714065170548, + "schema": 1718698388762, "variants": [ { "environment": { @@ -1053,7 +1143,18 @@ "regions": [ "ca" ] - } + }, + "subVariants": [ + { + "environment": { + "applications": [ + "firefox-android", + "focus-android" + ] + }, + "partnerCode": "5338791379" + } + ] }, { "environment": { @@ -1063,7 +1164,18 @@ "locales": [ "en-CA" ] - } + }, + "subVariants": [ + { + "environment": { + "applications": [ + "firefox-android", + "focus-android" + ] + }, + "partnerCode": "5338791379" + } + ] } ] }, @@ -1120,9 +1232,9 @@ }, "id": "8d8484a2-b856-4edd-93d7-c53a7aaca6e1", "identifier": "ebay-ch", - "last_modified": 1715090108518, + "last_modified": 1718719100276, "recordType": "engine", - "schema": 1714498577167, + "schema": 1718698406340, "variants": [ { "environment": { @@ -1138,7 +1250,18 @@ "regions": [ "ch" ] - } + }, + "subVariants": [ + { + "environment": { + "applications": [ + "firefox-android", + "focus-android" + ] + }, + "partnerCode": "5338791379" + } + ] }, { "environment": { @@ -1148,7 +1271,18 @@ "locales": [ "rm" ] - } + }, + "subVariants": [ + { + "environment": { + "applications": [ + "firefox-android", + "focus-android" + ] + }, + "partnerCode": "5338791379" + } + ] } ] }, @@ -1205,9 +1339,9 @@ }, "id": "e991a5f7-616e-43b0-b349-7995b837a520", "identifier": "ebay-de", - "last_modified": 1715090108527, + "last_modified": 1718719100269, "recordType": "engine", - "schema": 1714498578625, + "schema": 1718698412277, "variants": [ { "environment": { @@ -1221,7 +1355,18 @@ "dsb", "hsb" ] - } + }, + "subVariants": [ + { + "environment": { + "applications": [ + "firefox-android", + "focus-android" + ] + }, + "partnerCode": "5338791379" + } + ] } ] }, @@ -1278,9 +1423,9 @@ }, "id": "0592aedc-f4e5-4873-a8d4-da9482071613", "identifier": "ebay-es", - "last_modified": 1715090108511, + "last_modified": 1718719100283, "recordType": "engine", - "schema": 1714498579838, + "schema": 1718698418873, "variants": [ { "environment": { @@ -1296,7 +1441,18 @@ "eu", "gl" ] - } + }, + "subVariants": [ + { + "environment": { + "applications": [ + "firefox-android", + "focus-android" + ] + }, + "partnerCode": "5338791379" + } + ] } ] }, @@ -1353,9 +1509,9 @@ }, "id": "d327156c-dfc4-47f6-a620-3846a21144d9", "identifier": "ebay-fr", - "last_modified": 1715090108513, + "last_modified": 1718719100280, "recordType": "engine", - "schema": 1714498580858, + "schema": 1718698423588, "variants": [ { "environment": { @@ -1370,7 +1526,18 @@ "fr", "wo" ] - } + }, + "subVariants": [ + { + "environment": { + "applications": [ + "firefox-android", + "focus-android" + ] + }, + "partnerCode": "5338791379" + } + ] } ] }, @@ -1427,9 +1594,9 @@ }, "id": "0a9fed24-cd33-4293-bac8-eb26a285c9f1", "identifier": "ebay-ie", - "last_modified": 1715090108524, + "last_modified": 1718719100271, "recordType": "engine", - "schema": 1714498581865, + "schema": 1718698428556, "variants": [ { "environment": { @@ -1442,7 +1609,18 @@ "regions": [ "ie" ] - } + }, + "subVariants": [ + { + "environment": { + "applications": [ + "firefox-android", + "focus-android" + ] + }, + "partnerCode": "5338791379" + } + ] }, { "environment": { @@ -1452,7 +1630,18 @@ "locales": [ "ga-IE" ] - } + }, + "subVariants": [ + { + "environment": { + "applications": [ + "firefox-android", + "focus-android" + ] + }, + "partnerCode": "5338791379" + } + ] } ] }, @@ -1509,9 +1698,9 @@ }, "id": "f36dd44c-ba5f-44e5-8b19-672eb1ed62fd", "identifier": "ebay-it", - "last_modified": 1715090108532, + "last_modified": 1718719100264, "recordType": "engine", - "schema": 1714498582844, + "schema": 1718698434710, "variants": [ { "environment": { @@ -1524,7 +1713,18 @@ "lij", "sc" ] - } + }, + "subVariants": [ + { + "environment": { + "applications": [ + "firefox-android", + "focus-android" + ] + }, + "partnerCode": "5338791379" + } + ] } ] }, @@ -1581,9 +1781,9 @@ }, "id": "670475c3-d56f-4f87-9834-ddb12d0e8cbd", "identifier": "ebay-nl", - "last_modified": 1715090108529, + "last_modified": 1718719100266, "recordType": "engine", - "schema": 1714498583851, + "schema": 1718698440696, "variants": [ { "environment": { @@ -1595,7 +1795,18 @@ "fy-NL", "nl" ] - } + }, + "subVariants": [ + { + "environment": { + "applications": [ + "firefox-android", + "focus-android" + ] + }, + "partnerCode": "5338791379" + } + ] }, { "environment": { @@ -1605,7 +1816,18 @@ "regions": [ "nl" ] - } + }, + "subVariants": [ + { + "environment": { + "applications": [ + "firefox-android", + "focus-android" + ] + }, + "partnerCode": "5338791379" + } + ] } ] }, @@ -1662,16 +1884,27 @@ }, "id": "37f83917-8d6e-46d6-9d15-8e7779339d08", "identifier": "ebay-pl", - "last_modified": 1715090108535, + "last_modified": 1718719100261, "recordType": "engine", - "schema": 1714498585934, + "schema": 1718698443475, "variants": [ { "environment": { "regions": [ "pl" ] - } + }, + "subVariants": [ + { + "environment": { + "applications": [ + "firefox-android", + "focus-android" + ] + }, + "partnerCode": "5338791379" + } + ] } ] }, @@ -1728,9 +1961,9 @@ }, "id": "37f83917-8d6e-46d6-9d15-8e7779339d18", "identifier": "ebay-uk", - "last_modified": 1715090108522, + "last_modified": 1718719100273, "recordType": "engine", - "schema": 1714498584991, + "schema": 1718698449042, "variants": [ { "environment": { @@ -1744,27 +1977,40 @@ "en-GB", "gd" ] - } + }, + "subVariants": [ + { + "environment": { + "applications": [ + "firefox-android", + "focus-android" + ] + }, + "partnerCode": "5338791379" + } + ] }, { "environment": { "locales": [ + "en-US", "sco" ], "regions": [ "gb" ] - } - }, - { - "environment": { - "locales": [ - "en-US" - ], - "regions": [ - "gb" - ] - } + }, + "subVariants": [ + { + "environment": { + "applications": [ + "firefox-android", + "focus-android" + ] + }, + "partnerCode": "5338791379" + } + ] } ] }, @@ -1798,16 +2044,36 @@ }, "id": "e8e4a7e3-aead-43e3-887d-4064a186bd70", "identifier": "ecosia", - "last_modified": 1702906502308, + "last_modified": 1718719100319, "recordType": "engine", - "schema": 1702901822899, + "schema": 1718698454063, "variants": [ { "environment": { "locales": [ "de" ] - } + }, + "subVariants": [ + { + "environment": { + "applications": [ + "firefox-android", + "focus-android" + ] + }, + "partnerCode": "813cf1dd" + }, + { + "environment": { + "applications": [ + "firefox-ios", + "focus-ios" + ] + }, + "partnerCode": "16eeffc4" + } + ] } ] }, @@ -1856,16 +2122,33 @@ }, "id": "d21e561b-64ae-4a33-b2f0-c4a490a5cf82", "identifier": "faclair-beag", - "last_modified": 1702906502303, + "last_modified": 1718719100322, "recordType": "engine", - "schema": 1702901824109, + "schema": 1718698465691, "variants": [ { "environment": { "locales": [ "gd" ] - } + }, + "subVariants": [ + { + "environment": { + "applications": [ + "firefox-android", + "focus-android", + "firefox-ios", + "focus-ios" + ] + }, + "urls": { + "search": { + "base": "https://www.faclair.com/m" + } + } + } + ] } ] }, @@ -2157,9 +2440,9 @@ }, "id": "7ace4aa1-e762-4f4b-87b9-b23b3c3a930b", "identifier": "google", - "last_modified": 1713282817051, + "last_modified": 1718719100288, "recordType": "engine", - "schema": 1713282083062, + "schema": 1718698468913, "variants": [ { "environment": { @@ -2174,6 +2457,18 @@ }, "partnerCode": "firefox-b-e", "telemetrySuffix": "b-e" + }, + { + "environment": { + "applications": [ + "firefox-android", + "focus-android", + "firefox-ios", + "focus-ios" + ] + }, + "partnerCode": "firefox-b-m", + "telemetrySuffix": "b-m" } ], "telemetrySuffix": "b-d" @@ -2213,6 +2508,18 @@ }, "partnerCode": "firefox-b-1-e", "telemetrySuffix": "b-1-e" + }, + { + "environment": { + "applications": [ + "firefox-android", + "focus-android", + "firefox-ios", + "focus-ios" + ] + }, + "partnerCode": "firefox-b-1-m", + "telemetrySuffix": "b-1-m" } ], "telemetrySuffix": "b-1-d", @@ -2822,16 +3129,36 @@ }, "id": "2e62746e-b90a-42ee-b0f2-9ed0e1e2eaf0", "identifier": "qwant", - "last_modified": 1710766863306, + "last_modified": 1718719100293, "recordType": "engine", - "schema": 1710460806956, + "schema": 1718698472747, "variants": [ { "environment": { "locales": [ "fr" ] - } + }, + "subVariants": [ + { + "environment": { + "applications": [ + "firefox-android", + "focus-android" + ] + }, + "partnerCode": "ff_android" + }, + { + "environment": { + "applications": [ + "firefox-ios", + "focus-ios" + ] + }, + "partnerCode": "ff_ios" + } + ] }, { "environment": { @@ -2843,7 +3170,27 @@ "it", "nl" ] - } + }, + "subVariants": [ + { + "environment": { + "applications": [ + "firefox-android", + "focus-android" + ] + }, + "partnerCode": "ff_android" + }, + { + "environment": { + "applications": [ + "firefox-ios", + "focus-ios" + ] + }, + "partnerCode": "ff_ios" + } + ] }, { "environment": { @@ -2981,14 +3328,41 @@ { "base": { "classification": "unknown", + "name": "Reddit", + "urls": { + "search": { + "base": "https://www.reddit.com/search/", + "params": [], + "searchTermParamName": "q" + } + } + }, + "id": "f2038189-6bfe-458b-b379-577fe9db4d51", + "identifier": "reddit", + "last_modified": 1718719100336, + "recordType": "engine", + "schema": 1718698475234, + "variants": [ + { + "environment": { + "allRegionsAndLocales": true + }, + "optional": true + } + ] + }, + { + "base": { + "classification": "unknown", "name": "Salidzini.lv", + "partnerCode": "firefox-plugin", "urls": { "search": { "base": "https://www.salidzini.lv/search.php", "params": [ { "name": "utm_source", - "value": "firefox-plugin" + "value": "{partnerCode}" } ], "searchTermParamName": "q" @@ -3001,9 +3375,9 @@ }, "id": "883c6f10-cac4-4dc0-b631-9a28cbadda49", "identifier": "salidzinilv", - "last_modified": 1702906502262, + "last_modified": 1718719100324, "recordType": "engine", - "schema": 1702901833283, + "schema": 1718698485230, "variants": [ { "environment": { @@ -3011,7 +3385,20 @@ "ltg", "lv" ] - } + }, + "subVariants": [ + { + "environment": { + "applications": [ + "firefox-android", + "focus-android", + "firefox-ios", + "focus-ios" + ] + }, + "partnerCode": "firefox_mobile" + } + ] } ] }, @@ -3039,16 +3426,29 @@ }, "id": "b0cdb724-b7df-47d0-8ead-93aa0a8f60a2", "identifier": "seznam-cz", - "last_modified": 1702906502339, + "last_modified": 1718719100311, "recordType": "engine", - "schema": 1702901816717, + "schema": 1718698494927, "variants": [ { "environment": { "locales": [ "cs" ] - } + }, + "subVariants": [ + { + "environment": { + "applications": [ + "firefox-android", + "focus-android", + "firefox-ios", + "focus-ios" + ] + }, + "partnerCode": "SearchBox" + } + ] } ] }, @@ -7196,6 +7596,46 @@ { "base": { "classification": "unknown", + "name": "ವಿಕ್ಷನರಿ (kn)", + "urls": { + "search": { + "base": "https://kn.wiktionary.org/wiki/ವಿಶೇಷ:Search", + "searchTermParamName": "search" + }, + "suggestions": { + "base": "https://kn.wiktionary.org/w/api.php", + "params": [ + { + "name": "action", + "value": "opensearch" + }, + { + "name": "namespace", + "value": "0" + } + ], + "searchTermParamName": "search" + } + } + }, + "id": "a2b8eb91-dc15-4d98-8a1f-d7dced364111", + "identifier": "wiktionary-kn", + "last_modified": 1718719100333, + "recordType": "engine", + "schema": 1718698503954, + "variants": [ + { + "environment": { + "locales": [ + "kn" + ] + } + } + ] + }, + { + "base": { + "classification": "unknown", "name": "Wikiccionari (oc)", "urls": { "search": { @@ -7236,6 +7676,46 @@ { "base": { "classification": "unknown", + "name": "விக்சனரி (ta)", + "urls": { + "search": { + "base": "https://ta.wiktionary.org/wiki/சிறப்பு:Search", + "searchTermParamName": "search" + }, + "suggestions": { + "base": "https://ta.wiktionary.org/w/api.php", + "params": [ + { + "name": "action", + "value": "opensearch" + }, + { + "name": "namespace", + "value": "0" + } + ], + "searchTermParamName": "search" + } + } + }, + "id": "bcb9427b-c7c4-4665-9620-16ec5c0b304f", + "identifier": "wiktionary-ta", + "last_modified": 1718719100330, + "recordType": "engine", + "schema": 1718698508333, + "variants": [ + { + "environment": { + "locales": [ + "ta" + ] + } + } + ] + }, + { + "base": { + "classification": "unknown", "name": "విక్షనరీ (te)", "urls": { "search": { @@ -7387,6 +7867,32 @@ ] }, { + "base": { + "classification": "unknown", + "name": "YouTube", + "urls": { + "search": { + "base": "https://www.youtube.com/results", + "params": [], + "searchTermParamName": "search_query" + } + } + }, + "id": "05b6f528-bd00-4101-b107-b91d5f70b44b", + "identifier": "youtube", + "last_modified": 1718719100328, + "recordType": "engine", + "schema": 1718698509654, + "variants": [ + { + "environment": { + "allRegionsAndLocales": true + }, + "optional": true + } + ] + }, + { "id": "3e1fed64-5ec7-4b1c-bedc-741fe3c59bc3", "last_modified": 1707833224345, "orders": [ @@ -7420,5 +7926,5 @@ "schema": 1707824831520 } ], - "timestamp": 1717416922458 + "timestamp": 1718719100336 } diff --git a/services/settings/dumps/security-state/intermediates.json b/services/settings/dumps/security-state/intermediates.json index c3f3a44fc6..eff3924711 100644 --- a/services/settings/dumps/security-state/intermediates.json +++ b/services/settings/dumps/security-state/intermediates.json @@ -1,6 +1,402 @@ { "data": [ { + "schema": 1719024776570, + "derHash": "srAvm5G4z0vIm6HgAOYDBrACrqiiTAiy1/Pdi46trqU=", + "subject": "CN=TLC ECC EV SSL CA 2,O=泰尔认证中心有限公司,C=CN", + "subjectDN": "MFQxCzAJBgNVBAYTAkNOMScwJQYDVQQKDB7ms7DlsJTorqTor4HkuK3lv4PmnInpmZDlhazlj7gxHDAaBgNVBAMTE1RMQyBFQ0MgRVYgU1NMIENBIDI=", + "whitelist": false, + "attachment": { + "hash": "9c1932ccf6f5a9e5b723cce15947a784b4d8e5794edea688f09a2ae2b5ca22a0", + "size": 1142, + "filename": "fBELsva28hn0N50XbcZbAya0d7Zu7S6gjlqfyhkBMnw=.pem", + "location": "security-state-staging/intermediates/c0a83d91-c04e-4901-9ba1-fee733fe1f13.pem", + "mimetype": "application/x-pem-file" + }, + "pubKeyHash": "fBELsva28hn0N50XbcZbAya0d7Zu7S6gjlqfyhkBMnw=", + "crlite_enrolled": false, + "id": "d6882fa3-6d22-4c8b-85b2-ab63a2898a06", + "last_modified": 1719025023284 + }, + { + "schema": 1719024775346, + "derHash": "pCcOUlFpH27EDPd0xnF+Lv7D6x44RgfcdYNilqqhXFk=", + "subject": "CN=SSL.com EV TLS Transit RSA CA R2,O=SSL Corporation,C=US", + "subjectDN": "MFIxCzAJBgNVBAYTAlVTMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xKTAnBgNVBAMMIFNTTC5jb20gRVYgVExTIFRyYW5zaXQgUlNBIENBIFIy", + "whitelist": false, + "attachment": { + "hash": "c0b5f9a55256377fad49f1b2101194f0e95b4564e00613ae33c5e2671c939a58", + "size": 1987, + "filename": "BB0JZc-VhUu9ni64PNmCZWVFCZMOLGDKjfZ9-B9983Q=.pem", + "location": "security-state-staging/intermediates/c3dfb7ce-9232-4f39-ac84-1bc21cca4d34.pem", + "mimetype": "application/x-pem-file" + }, + "pubKeyHash": "BB0JZc+VhUu9ni64PNmCZWVFCZMOLGDKjfZ9+B9983Q=", + "crlite_enrolled": false, + "id": "2627d6e2-7985-4aa6-b9b1-0358ea649f25", + "last_modified": 1719025023281 + }, + { + "schema": 1719024774371, + "derHash": "woof3xSuPwRfvF4WAqAQMKdyNsxSJn8jYImcgy6XXBU=", + "subject": "CN=SSL.com OV TLS Issuing RSA CA 1,O=SSL Corporation,C=US", + "subjectDN": "MFExCzAJBgNVBAYTAlVTMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xKDAmBgNVBAMMH1NTTC5jb20gT1YgVExTIElzc3VpbmcgUlNBIENBIDE=", + "whitelist": false, + "attachment": { + "hash": "d5c50345eadd12dcfdb648e4b0505d9965485d426dcdf4fa382c2909d563497e", + "size": 1813, + "filename": "hAjHe-3BykIlgjLNTOWLMDSaNA7iWDMBf9vMHQFxBfM=.pem", + "location": "security-state-staging/intermediates/d59f9ef5-45f8-4953-a99f-8cb62cdb168d.pem", + "mimetype": "application/x-pem-file" + }, + "pubKeyHash": "hAjHe+3BykIlgjLNTOWLMDSaNA7iWDMBf9vMHQFxBfM=", + "crlite_enrolled": false, + "id": "1341aca7-8299-4d1f-849b-e714ffc036c1", + "last_modified": 1719025023279 + }, + { + "schema": 1719024775642, + "derHash": "LLPH9oVwnKlHSKgp0DRRXZntRHrFAvY8B9EuzNM3sWE=", + "subject": "CN=TLC ECC OV SSL CA 2,O=泰尔认证中心有限公司,C=CN", + "subjectDN": "MFQxCzAJBgNVBAYTAkNOMScwJQYDVQQKDB7ms7DlsJTorqTor4HkuK3lv4PmnInpmZDlhazlj7gxHDAaBgNVBAMTE1RMQyBFQ0MgT1YgU1NMIENBIDI=", + "whitelist": false, + "attachment": { + "hash": "69481e097e49bba3a97dab83f3154aa16ce172d6d74db496be6a6e1920ed1c0f", + "size": 1146, + "filename": "UqX0nbABVp5VC7JTjlMCX5lb7bevqfQbLXs2Gr7HcZ0=.pem", + "location": "security-state-staging/intermediates/7208c135-07df-407b-adb6-b23c846ca34b.pem", + "mimetype": "application/x-pem-file" + }, + "pubKeyHash": "UqX0nbABVp5VC7JTjlMCX5lb7bevqfQbLXs2Gr7HcZ0=", + "crlite_enrolled": false, + "id": "37004837-9c61-4ddb-95ac-93ce7e075209", + "last_modified": 1719025023276 + }, + { + "schema": 1719024773500, + "derHash": "O4w3nyP6IiVqDh9E2S8KD8dwvN6fhVfxYBSbzaIu3ng=", + "subject": "CN=SSL.com EV TLS Issuing ECC CA R1,O=SSL Corporation,C=US", + "subjectDN": "MFIxCzAJBgNVBAYTAlVTMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xKTAnBgNVBAMMIFNTTC5jb20gRVYgVExTIElzc3VpbmcgRUNDIENBIFIx", + "whitelist": false, + "attachment": { + "hash": "7625cc3a6cadb841df17d1dca35e294af256b9c56a45e43a582ea0d786608410", + "size": 1406, + "filename": "cCqwzeMmcY9GAwoG1CFguEUHPI8MEGng1iWmfPgg6H4=.pem", + "location": "security-state-staging/intermediates/84939c8b-963a-414a-888f-aedc9c366336.pem", + "mimetype": "application/x-pem-file" + }, + "pubKeyHash": "cCqwzeMmcY9GAwoG1CFguEUHPI8MEGng1iWmfPgg6H4=", + "crlite_enrolled": false, + "id": "e4fc358e-8793-4e9a-b4d5-cb322257ea3d", + "last_modified": 1719025023274 + }, + { + "schema": 1719024773793, + "derHash": "0wa/DYW9ENCDoeyls41AFJ5cRQ+ZYCHMCN4lTRci5hk=", + "subject": "CN=SSL.com OV TLS Issuing ECC CA 1,O=SSL Corporation,C=US", + "subjectDN": "MFExCzAJBgNVBAYTAlVTMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xKDAmBgNVBAMMH1NTTC5jb20gT1YgVExTIElzc3VpbmcgRUNDIENBIDE=", + "whitelist": false, + "attachment": { + "hash": "718298bae74fcc46e0c6daa8f20b7e662df079fed662c8ea3fe763a369f208d1", + "size": 1406, + "filename": "_1gJkt0BlZX88iJllnik6BHg_MLbYbbnb-YQmvJxQak=.pem", + "location": "security-state-staging/intermediates/bdb668ac-f337-42bb-9f8d-38720a09383c.pem", + "mimetype": "application/x-pem-file" + }, + "pubKeyHash": "/1gJkt0BlZX88iJllnik6BHg/MLbYbbnb+YQmvJxQak=", + "crlite_enrolled": false, + "id": "ab7fe0f5-4013-44b7-b8a9-6172af8799ac", + "last_modified": 1719025023271 + }, + { + "schema": 1719024774082, + "derHash": "NWt4pNuavKyeuAUdWlEUPG+T70Hbrv1/3icXtqOd1sQ=", + "subject": "CN=TLC ECC DV SSL CA 2,O=泰尔认证中心有限公司,C=CN", + "subjectDN": "MFQxCzAJBgNVBAYTAkNOMScwJQYDVQQKDB7ms7DlsJTorqTor4HkuK3lv4PmnInpmZDlhazlj7gxHDAaBgNVBAMTE1RMQyBFQ0MgRFYgU1NMIENBIDI=", + "whitelist": false, + "attachment": { + "hash": "3f9e1908ef9c4123aac43c61cf6654bd7e15ddb508cb5379b4124e0d16c5ca34", + "size": 1146, + "filename": "Z88H8nHx9myIVW-dnsUUbOxZMxxlvx8PsVn2Kc8Jqh0=.pem", + "location": "security-state-staging/intermediates/89ef9d5e-8a26-4ea2-a989-8c9c5e085d73.pem", + "mimetype": "application/x-pem-file" + }, + "pubKeyHash": "Z88H8nHx9myIVW+dnsUUbOxZMxxlvx8PsVn2Kc8Jqh0=", + "crlite_enrolled": false, + "id": "6292f23c-d72a-411b-83cb-11ecf4a3ee6a", + "last_modified": 1719025023269 + }, + { + "schema": 1719024772920, + "derHash": "RVaj0ypLZUIAupkHztdIaSfZ+S8eCKeudgdmrDfn/To=", + "subject": "CN=TLC RSA DV SSL CA 2,O=泰尔认证中心有限公司,C=CN", + "subjectDN": "MFQxCzAJBgNVBAYTAkNOMScwJQYDVQQKDB7ms7DlsJTorqTor4HkuK3lv4PmnInpmZDlhazlj7gxHDAaBgNVBAMTE1RMQyBSU0EgRFYgU1NMIENBIDI=", + "whitelist": false, + "attachment": { + "hash": "cf5f3cb7cee5d05d9a7b49ee64c36ce5de39be33ae18b11649bd4bb389edbf1a", + "size": 2158, + "filename": "mECJ1cnyrycLzcKV2LqQWeskbezkJWrusiJ2gSXRSCE=.pem", + "location": "security-state-staging/intermediates/bf1122af-46f7-427d-ad7e-ae12dba95892.pem", + "mimetype": "application/x-pem-file" + }, + "pubKeyHash": "mECJ1cnyrycLzcKV2LqQWeskbezkJWrusiJ2gSXRSCE=", + "crlite_enrolled": false, + "id": "d1f46731-faa9-4eea-af58-5da3d5d56ed5", + "last_modified": 1719025023266 + }, + { + "schema": 1719024772313, + "derHash": "/p+w94PruEMQmqMd6dqYZLZUKUDDB98jGAsR8ffhCN4=", + "subject": "CN=SSL.com TLS Transit ECC CA R2,O=SSL Corporation,C=US", + "subjectDN": "ME8xCzAJBgNVBAYTAlVTMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xJjAkBgNVBAMMHVNTTC5jb20gVExTIFRyYW5zaXQgRUNDIENBIFIy", + "whitelist": false, + "attachment": { + "hash": "be14d7376806b71c91552e2f864b32818eebd29d61899c09dbd2166351212890", + "size": 1382, + "filename": "OXyj9ngbqO9cjLeO_-t9Ggl2EP4JTnVWHq4LEwhFM9w=.pem", + "location": "security-state-staging/intermediates/3fa21f3a-2ff3-4972-af95-fb2d086804bd.pem", + "mimetype": "application/x-pem-file" + }, + "pubKeyHash": "OXyj9ngbqO9cjLeO/+t9Ggl2EP4JTnVWHq4LEwhFM9w=", + "crlite_enrolled": false, + "id": "0ff4c892-1613-4af3-809c-3c6b5ece0e72", + "last_modified": 1719025023263 + }, + { + "schema": 1719024776268, + "derHash": "qz3oGfNC8KYdGZ1L6GpPfz8oEM3/Cwv/hy9Nk+gSzoA=", + "subject": "CN=SSL.com TLS Issuing RSA CA R1,O=SSL Corporation,C=US", + "subjectDN": "ME8xCzAJBgNVBAYTAlVTMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xJjAkBgNVBAMMHVNTTC5jb20gVExTIElzc3VpbmcgUlNBIENBIFIx", + "whitelist": false, + "attachment": { + "hash": "1164037827e9098e1a72d32ca812010928452b24d425fecc657556a3ae232629", + "size": 1792, + "filename": "0FKBVxnyd4Jq8v8ST-3sjO-WoB7PLBEpSdixbHE1L4g=.pem", + "location": "security-state-staging/intermediates/7d87e17a-40a1-4694-bd90-0e5d9218c6e7.pem", + "mimetype": "application/x-pem-file" + }, + "pubKeyHash": "0FKBVxnyd4Jq8v8ST+3sjO+WoB7PLBEpSdixbHE1L4g=", + "crlite_enrolled": false, + "id": "e46a8e8e-bef3-4fd2-98e1-ecbff463e571", + "last_modified": 1719025023261 + }, + { + "schema": 1719024771710, + "derHash": "Ha+BICXiN2J5wHQFDuNeGy2Qn4tXoA+Ct7XSgSDDWCo=", + "subject": "CN=SSL.com EV TLS Issuing RSA CA R1,O=SSL Corporation,C=US", + "subjectDN": "MFIxCzAJBgNVBAYTAlVTMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xKTAnBgNVBAMMIFNTTC5jb20gRVYgVExTIElzc3VpbmcgUlNBIENBIFIx", + "whitelist": false, + "attachment": { + "hash": "61dac3455ed233b863ccbd8d70bc65cb52189afac735c5bd6ef0e98710522ee2", + "size": 1817, + "filename": "3ebNWkR6qhSsVzk3WkbXqmW0areNxC--6UeU--EA9Io=.pem", + "location": "security-state-staging/intermediates/f4578e65-7979-4ff6-8286-dc31924b210a.pem", + "mimetype": "application/x-pem-file" + }, + "pubKeyHash": "3ebNWkR6qhSsVzk3WkbXqmW0areNxC++6UeU++EA9Io=", + "crlite_enrolled": false, + "id": "7bc24395-a445-4d62-8038-16bcd2024f10", + "last_modified": 1719025023258 + }, + { + "schema": 1719024771991, + "derHash": "f+VXL76TSvxBUWUf7wmLmUCkeWbECFV3MU1xBM3oQyk=", + "subject": "CN=SSL.com EV TLS Transit ECC CA R2,O=SSL Corporation,C=US", + "subjectDN": "MFIxCzAJBgNVBAYTAlVTMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xKTAnBgNVBAMMIFNTTC5jb20gRVYgVExTIFRyYW5zaXQgRUNDIENBIFIy", + "whitelist": false, + "attachment": { + "hash": "9eab9d4614f96a6e18b8525b20c15197bcf21286de199ef3ebcc813ac73dd3ba", + "size": 1406, + "filename": "YhmwQZRxuMMLT6QK3cqSB3SCtkKBIgqOYUC1UCixGUM=.pem", + "location": "security-state-staging/intermediates/60390ed2-14e9-4c8c-bad1-9eec6ae0bf55.pem", + "mimetype": "application/x-pem-file" + }, + "pubKeyHash": "YhmwQZRxuMMLT6QK3cqSB3SCtkKBIgqOYUC1UCixGUM=", + "crlite_enrolled": false, + "id": "02193840-91ed-4fcb-be07-f1751f47f98a", + "last_modified": 1719025023256 + }, + { + "schema": 1719024771417, + "derHash": "uQzzmOG+LlnGvx4Pf5lsqy4VM3NKC8MomJwTXrGdZyk=", + "subject": "CN=SSL.com IV TLS Transit RSA CA 1,O=SSL Corporation,C=US", + "subjectDN": "MFExCzAJBgNVBAYTAlVTMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xKDAmBgNVBAMMH1NTTC5jb20gSVYgVExTIFRyYW5zaXQgUlNBIENBIDE=", + "whitelist": false, + "attachment": { + "hash": "4b4e26f7523ea7df828a4fadc885460560f458ba0b2ae86964ced1ccb7b6dfcb", + "size": 1967, + "filename": "R_O5JJ9biXMtEnmiODpukBteFwfJM0MXwQWiSsjJALQ=.pem", + "location": "security-state-staging/intermediates/b5423f85-913a-4e3a-8513-23c1665306b9.pem", + "mimetype": "application/x-pem-file" + }, + "pubKeyHash": "R/O5JJ9biXMtEnmiODpukBteFwfJM0MXwQWiSsjJALQ=", + "crlite_enrolled": false, + "id": "86450b8e-41cf-4cc7-85ef-01badba6bcd7", + "last_modified": 1719025023253 + }, + { + "schema": 1719024770519, + "derHash": "LcfdxEC2MyJ0hoxeHfXRW9ceWhhh0ithgbwcLL+jKzQ=", + "subject": "CN=SSL.com TLS Issuing ECC CA R2,O=SSL Corporation,C=US", + "subjectDN": "ME8xCzAJBgNVBAYTAlVTMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xJjAkBgNVBAMMHVNTTC5jb20gVExTIElzc3VpbmcgRUNDIENBIFIy", + "whitelist": false, + "attachment": { + "hash": "831bb8448deba8589c5e258466d9fdc144350799db0188471107ff985235b288", + "size": 1382, + "filename": "NPRrBk96t64vay83a8Kf7kLV8Vmdi_17Qgpes328_Pk=.pem", + "location": "security-state-staging/intermediates/342d50a7-5e74-40f4-95b5-e5a46ffc8961.pem", + "mimetype": "application/x-pem-file" + }, + "pubKeyHash": "NPRrBk96t64vay83a8Kf7kLV8Vmdi/17Qgpes328/Pk=", + "crlite_enrolled": false, + "id": "59e3180e-a2ff-4f1f-ab29-a4cedbee022f", + "last_modified": 1719025023251 + }, + { + "schema": 1719024770157, + "derHash": "E3LHtNasOkOL38h6KdMDMV/zT8Wx5zIFk2t7mShKivU=", + "subject": "CN=SSL.com IV TLS Issuing RSA CA 1,O=SSL Corporation,C=US", + "subjectDN": "MFExCzAJBgNVBAYTAlVTMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xKDAmBgNVBAMMH1NTTC5jb20gSVYgVExTIElzc3VpbmcgUlNBIENBIDE=", + "whitelist": false, + "attachment": { + "hash": "ffba53970e8343098fe2f7d1dd9e7d7266090ac1fde303062c630d64a886fa9a", + "size": 1792, + "filename": "mhzhCo3EEEyXI3PieOhth0fVaJYvXtTu14HQEFJNQ18=.pem", + "location": "security-state-staging/intermediates/53f315e5-d84c-4648-9e8a-bbe42cc0f61d.pem", + "mimetype": "application/x-pem-file" + }, + "pubKeyHash": "mhzhCo3EEEyXI3PieOhth0fVaJYvXtTu14HQEFJNQ18=", + "crlite_enrolled": false, + "id": "286b2b4f-05b5-4254-afae-dcee91fc0b65", + "last_modified": 1719025023248 + }, + { + "schema": 1719024772618, + "derHash": "69QX9ZXD8lm3RVyBNSk1BbaSxH4PdNO6iFziLIh1yig=", + "subject": "CN=SSL.com TLS Transit RSA CA R2,O=SSL Corporation,C=US", + "subjectDN": "ME8xCzAJBgNVBAYTAlVTMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xJjAkBgNVBAMMHVNTTC5jb20gVExTIFRyYW5zaXQgUlNBIENBIFIy", + "whitelist": false, + "attachment": { + "hash": "c8aeda26502973c751bb9fb0f2a141c34809a5ea2966a08bf7340eec6da09e7c", + "size": 1963, + "filename": "vn0e1DEpYDnOWeNSH0IkuvrS8iIAE7x5aB7EolDUxS0=.pem", + "location": "security-state-staging/intermediates/6e6717df-3a67-4ebc-b765-c3b396af4ad5.pem", + "mimetype": "application/x-pem-file" + }, + "pubKeyHash": "vn0e1DEpYDnOWeNSH0IkuvrS8iIAE7x5aB7EolDUxS0=", + "crlite_enrolled": false, + "id": "5441196b-5c54-46fc-bf5f-09666be138dc", + "last_modified": 1719025023246 + }, + { + "schema": 1719024771131, + "derHash": "WrpyCi9Sd3TVFtwSAh5iSHVq3wRurggYVV6Wn45DzB8=", + "subject": "CN=SSL.com OV TLS Transit RSA CA 1,O=SSL Corporation,C=US", + "subjectDN": "MFExCzAJBgNVBAYTAlVTMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xKDAmBgNVBAMMH1NTTC5jb20gT1YgVExTIFRyYW5zaXQgUlNBIENBIDE=", + "whitelist": false, + "attachment": { + "hash": "4371eae1a111c2f325f97f40cddaf70a5bec29b7d75fa8c8014fa9d9b242e0a3", + "size": 1987, + "filename": "o0HYUK1eZnSZd9pJ4VJWzYwXhM_Kd77fUqkcbAgPyBQ=.pem", + "location": "security-state-staging/intermediates/1be23df4-c1f9-493a-a3a6-9d74eda651df.pem", + "mimetype": "application/x-pem-file" + }, + "pubKeyHash": "o0HYUK1eZnSZd9pJ4VJWzYwXhM/Kd77fUqkcbAgPyBQ=", + "crlite_enrolled": false, + "id": "5136df5a-d925-4801-856e-01a0d33eb9f0", + "last_modified": 1719025023243 + }, + { + "schema": 1719024775918, + "derHash": "Nwj7gEORx1ql2BI1whTzmMbcpslJKjr96Spf2S/kj6s=", + "subject": "CN=SSL.com IV TLS Transit ECC CA 1,O=SSL Corporation,C=US", + "subjectDN": "MFExCzAJBgNVBAYTAlVTMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xKDAmBgNVBAMMH1NTTC5jb20gSVYgVExTIFRyYW5zaXQgRUNDIENBIDE=", + "whitelist": false, + "attachment": { + "hash": "0693aced3a7ebd0daa7308e02c47700a3964c741b6848f4744328f12be7f4bb6", + "size": 1382, + "filename": "Uujf2MPA35Lg50AhrhFGPERK_ZHDRJxc3Xmyj43PdEs=.pem", + "location": "security-state-staging/intermediates/a0b31623-6daf-4adb-8394-2efeff698c7e.pem", + "mimetype": "application/x-pem-file" + }, + "pubKeyHash": "Uujf2MPA35Lg50AhrhFGPERK/ZHDRJxc3Xmyj43PdEs=", + "crlite_enrolled": false, + "id": "4a128fb1-c829-4c3f-8814-6d654a6cb919", + "last_modified": 1719025023241 + }, + { + "schema": 1719024775044, + "derHash": "4xkQJsUmSHoF9orfS4yjlcBEqmtecqcOhznacahg0Ns=", + "subject": "CN=SSL.com IV TLS Issuing ECC CA 1,O=SSL Corporation,C=US", + "subjectDN": "MFExCzAJBgNVBAYTAlVTMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xKDAmBgNVBAMMH1NTTC5jb20gSVYgVExTIElzc3VpbmcgRUNDIENBIDE=", + "whitelist": false, + "attachment": { + "hash": "9391eb50931d558d5eb66ebbe2b3ece7dc2375d41443661167029ecc302298a4", + "size": 1386, + "filename": "Zd5CFIWdko8GdSBgv9xIY2vQLDplCKAQgT7bRrFKcVo=.pem", + "location": "security-state-staging/intermediates/bf5c0d10-9619-43ab-91f7-ad5abe09e56d.pem", + "mimetype": "application/x-pem-file" + }, + "pubKeyHash": "Zd5CFIWdko8GdSBgv9xIY2vQLDplCKAQgT7bRrFKcVo=", + "crlite_enrolled": false, + "id": "efaee209-130f-4744-a465-c6336294e123", + "last_modified": 1719025023238 + }, + { + "schema": 1719024774679, + "derHash": "KN5fmLLbTEOB/agwesnDVduJiWa1JWZaAZ9dbf5+8co=", + "subject": "CN=SSL.com OV TLS Transit ECC CA 1,O=SSL Corporation,C=US", + "subjectDN": "MFExCzAJBgNVBAYTAlVTMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xKDAmBgNVBAMMH1NTTC5jb20gT1YgVExTIFRyYW5zaXQgRUNDIENBIDE=", + "whitelist": false, + "attachment": { + "hash": "9e8eb4f491ef89a158899d897e0dce2f70d3196c3f2614641b36d6104ded3cd4", + "size": 1406, + "filename": "RFBEONmGnotBOM1HNtNx0nqeqPqncPrhxWZuEl0SvBg=.pem", + "location": "security-state-staging/intermediates/3f47ec12-f698-4f04-8d1e-c7b66080c49c.pem", + "mimetype": "application/x-pem-file" + }, + "pubKeyHash": "RFBEONmGnotBOM1HNtNx0nqeqPqncPrhxWZuEl0SvBg=", + "crlite_enrolled": false, + "id": "5f6e7045-46d6-4a1b-9daf-8c613dfe9eb8", + "last_modified": 1719025023236 + }, + { + "schema": 1719024773203, + "derHash": "iZulW+4Abiu/05XAP4vufqnJtShSLOxeEr8PWPkMTSY=", + "subject": "CN=TLC RSA EV SSL CA 2,O=泰尔认证中心有限公司,C=CN", + "subjectDN": "MFQxCzAJBgNVBAYTAkNOMScwJQYDVQQKDB7ms7DlsJTorqTor4HkuK3lv4PmnInpmZDlhazlj7gxHDAaBgNVBAMTE1RMQyBSU0EgRVYgU1NMIENBIDI=", + "whitelist": false, + "attachment": { + "hash": "94f8660b012509a7df3740e58fc77a6c83f6f7906625bf93c87b8814f59a39e3", + "size": 2158, + "filename": "C4hyD5xenW47ze3P0-qo_OoAhIRyoseeVTtsqA8FYf4=.pem", + "location": "security-state-staging/intermediates/5d73e42e-9b14-4197-9895-daaa417a8c64.pem", + "mimetype": "application/x-pem-file" + }, + "pubKeyHash": "C4hyD5xenW47ze3P0+qo/OoAhIRyoseeVTtsqA8FYf4=", + "crlite_enrolled": false, + "id": "f3885d49-a0cf-4fdf-a126-134187267b48", + "last_modified": 1719025023233 + }, + { + "schema": 1719024770848, + "derHash": "HdDVEq35Gd/vv+6WdSSqajILmRMlMLrfTSIXi/+eTR4=", + "subject": "CN=TLC RSA OV SSL CA 2,O=泰尔认证中心有限公司,C=CN", + "subjectDN": "MFQxCzAJBgNVBAYTAkNOMScwJQYDVQQKDB7ms7DlsJTorqTor4HkuK3lv4PmnInpmZDlhazlj7gxHDAaBgNVBAMTE1RMQyBSU0EgT1YgU1NMIENBIDI=", + "whitelist": false, + "attachment": { + "hash": "95c7e36d765bb80082a4a27e8aef27e78b73467cd8c7a07f6a2563dd1aaf87ca", + "size": 2162, + "filename": "W3CKT4JSg2gwuxYAgNDOCT-0oEkSjnSYDLf0vUePE3A=.pem", + "location": "security-state-staging/intermediates/88188ea7-0c5a-402d-9fed-948023b8d80e.pem", + "mimetype": "application/x-pem-file" + }, + "pubKeyHash": "W3CKT4JSg2gwuxYAgNDOCT+0oEkSjnSYDLf0vUePE3A=", + "crlite_enrolled": false, + "id": "be56b760-de01-4dae-9ac9-3a6e1cde93e5", + "last_modified": 1719025023230 + }, + { "schema": 1718419986483, "derHash": "iA+8RP5xqhvkDbEwkXsbrsG9iJsrPXR47aBHKGZ+i0Q=", "subject": "CN=GoDaddy Secure Certificate Authority - G5,O=GoDaddy Inc.,C=US", @@ -25255,24 +25651,6 @@ "last_modified": 1654804623143 }, { - "schema": 1652389030686, - "derHash": "ayP62JAYDDN7hkFV2uDem62e8L2njREvLL3D0CrReVY=", - "subject": "CN=NetLock Üzleti (Class B) Tanúsítványkiadó,OU=Tanúsítványkiadók (Certification Services),O=NetLock Kft.,L=Budapest,C=HU", - "subjectDN": "MIGpMQswCQYDVQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3MDUGA1UECwwuVGFuw7pzw610dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzKTE3MDUGA1UEAwwuTmV0TG9jayDDnHpsZXRpIChDbGFzcyBCKSBUYW7DunPDrXR2w6FueWtpYWTDsw==", - "whitelist": false, - "attachment": { - "hash": "573f7ca4199a4ab7b67cf4b5b1c8e25a89da7c93d3296ece5e8301e5bf64c39b", - "size": 2182, - "filename": "1YROuDznuNvrat3sL9gwGR124PRLocGQQWd6IoM50Ls=.pem", - "location": "security-state-staging/intermediates/5ae11eb3-59e2-4f2f-a3ad-09d610869295.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "1YROuDznuNvrat3sL9gwGR124PRLocGQQWd6IoM50Ls=", - "crlite_enrolled": false, - "id": "1a8145a6-66a3-4c40-914b-e027086ea091", - "last_modified": 1652540239008 - }, - { "schema": 1652539714356, "derHash": "NyuPTOc77fyIcYxAe7az5tj5p5vpVxkNDnEBx7DvmjI=", "subject": "CN=NetLock Expressz (Class C) Tanúsítványkiadó,OU=Tanúsítványkiadók (Certification Services),O=NetLock Kft.,L=Budapest,C=HU", @@ -29881,24 +30259,6 @@ "last_modified": 1562025497120 }, { - "schema": 1562025471549, - "derHash": "HZNobKQscDlPvcK8H5hGHRmHHCoAB4uBVJkxLtn2/gw=", - "subject": "CN=NetLock Üzleti Eat. (Class B Legal) Tanúsítványkiadó,OU=Tanúsítványkiadók (Certification Services),O=NetLock Kft.,L=Budapest,C=HU", - "subjectDN": "MIG0MQswCQYDVQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3MDUGA1UECwwuVGFuw7pzw610dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzKTFCMEAGA1UEAww5TmV0TG9jayDDnHpsZXRpIEVhdC4gKENsYXNzIEIgTGVnYWwpIFRhbsO6c8OtdHbDoW55a2lhZMOz", - "whitelist": false, - "attachment": { - "hash": "4fba3ae97dd053930e8514eb3fdcdbc3ccccbadc3b59f72c390b9e8968b894f8", - "size": 2198, - "filename": "_vwER7WMeggAoauXgB8U4heDYF3dmMm_S99ZfAayhZ8=.pem", - "location": "security-state-staging/intermediates/77e0aaee-29fa-489c-be2e-6dfde8a27857.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "/vwER7WMeggAoauXgB8U4heDYF3dmMm/S99ZfAayhZ8=", - "crlite_enrolled": false, - "id": "7174ab51-9ffe-493a-89bf-49620f52a798", - "last_modified": 1562025472308 - }, - { "schema": 1562025422689, "derHash": "eBrNIJ07hz8Uj12zHGgK2tztQCONjBvxotVTOR+l0PM=", "subject": "CN=Certigna Entity Code Signing CA,OU=0002 48146308100036,O=DHIMYOTIS,C=FR", @@ -30853,5 +31213,5 @@ "last_modified": 1559865884636 } ], - "timestamp": 1718553423053 + "timestamp": 1719154633250 } diff --git a/sourcestamp.txt b/sourcestamp.txt index 4faddd3dc2..60b44e8070 100644 --- a/sourcestamp.txt +++ b/sourcestamp.txt @@ -1,2 +1,2 @@ -20240618110440 -https://hg.mozilla.org/releases/mozilla-release/rev/b8d39a885c8155af6a83ad631f71108ded7fb7af +20240624183754 +https://hg.mozilla.org/releases/mozilla-release/rev/c7bfb1e800e25153412ab2b70836fcbb090ba99e diff --git a/toolkit/components/search/schema/search-config-icons-schema.json b/toolkit/components/search/schema/search-config-icons-schema.json index eda23080dd..bd17d1cbc2 100644 --- a/toolkit/components/search/schema/search-config-icons-schema.json +++ b/toolkit/components/search/schema/search-config-icons-schema.json @@ -22,7 +22,7 @@ "type": "string", "title": "Filter Expression", "description": "A JEXL to filter records", - "pattern": "^[a-zA-Z0-9-_=!\"{} .]*$" + "pattern": "^[a-zA-Z0-9-_=!\"{} .<>|&()]*$" } } } diff --git a/widget/windows/nsWindow.cpp b/widget/windows/nsWindow.cpp index ac393e8b09..b06a34c2f5 100644 --- a/widget/windows/nsWindow.cpp +++ b/widget/windows/nsWindow.cpp @@ -993,7 +993,8 @@ nsresult nsWindow::Create(nsIWidget* aParent, nsNativeWidget aNativeParent, } } - if (aInitData->mIsPrivate) { + if (Preferences::GetBool("browser.privateWindowSeparation.enabled", true) && + (aInitData->mIsPrivate)) { // Although permanent Private Browsing mode is indeed Private Browsing, // we choose to make it look like regular Firefox in terms of the icon // it uses (which also means we shouldn't use the Private Browsing |