tor-commits
Threads by month
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
February 2022
- 14 participants
- 1454 discussions
[tor-browser/tor-browser-91.6.0esr-11.0-1] Bug 16620: Clear window.name when no referrer sent
by richard@torproject.org 03 Feb '22
by richard@torproject.org 03 Feb '22
03 Feb '22
commit 469356cef9b2f34045397f1054cc0f90423203d2
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Fri Oct 30 14:28:13 2015 -0400
Bug 16620: Clear window.name when no referrer sent
Convert JS implementation (within Torbutton) to a C++ browser patch.
---
docshell/base/nsDocShell.cpp | 60 +++++++
docshell/test/mochitest/mochitest.ini | 5 +
docshell/test/mochitest/test_tor_bug16620.html | 211 +++++++++++++++++++++++++
docshell/test/mochitest/tor_bug16620.html | 51 ++++++
docshell/test/mochitest/tor_bug16620_form.html | 51 ++++++
modules/libpref/init/StaticPrefList.yaml | 2 +-
6 files changed, 379 insertions(+), 1 deletion(-)
diff --git a/docshell/base/nsDocShell.cpp b/docshell/base/nsDocShell.cpp
index c04a496bdf07..04961ae2d9e0 100644
--- a/docshell/base/nsDocShell.cpp
+++ b/docshell/base/nsDocShell.cpp
@@ -7672,11 +7672,71 @@ nsresult nsDocShell::CreateContentViewer(const nsACString& aContentType,
aOpenedChannel->GetURI(getter_AddRefs(mLoadingURI));
}
FirePageHideNotification(!mSavingOldViewer);
+
if (mIsBeingDestroyed) {
// Force to stop the newly created orphaned viewer.
viewer->Stop();
return NS_ERROR_DOCSHELL_DYING;
}
+
+ // Tor bug 16620: Clear window.name of top-level documents if
+ // there is no referrer. We make an exception for new windows,
+ // e.g., window.open(url, "MyName").
+ bool isNewWindowTarget = false;
+ nsCOMPtr<nsIPropertyBag2> props(do_QueryInterface(aRequest, &rv));
+ if (props) {
+ props->GetPropertyAsBool(u"docshell.newWindowTarget"_ns,
+ &isNewWindowTarget);
+ }
+
+ if (!isNewWindowTarget) {
+ nsCOMPtr<nsIHttpChannel> httpChannel(do_QueryInterface(aOpenedChannel));
+ nsCOMPtr<nsIURI> httpReferrer;
+ if (httpChannel) {
+ nsCOMPtr<nsIReferrerInfo> referrerInfo;
+ rv = httpChannel->GetReferrerInfo(getter_AddRefs(referrerInfo));
+ NS_ENSURE_SUCCESS(rv, rv);
+ if (referrerInfo) {
+ // We want GetComputedReferrer() instead of GetOriginalReferrer(), since
+ // the former takes into consideration referrer policy, protocol
+ // whitelisting...
+ httpReferrer = referrerInfo->GetComputedReferrer();
+ }
+ }
+
+ bool isTopFrame = mBrowsingContext->IsTop();
+
+#ifdef DEBUG_WINDOW_NAME
+ printf("DOCSHELL %p CreateContentViewer - possibly clearing window.name:\n",
+ this);
+ printf(" current window.name: \"%s\"\n",
+ NS_ConvertUTF16toUTF8(mName).get());
+
+ nsAutoCString curSpec, loadingSpec;
+ if (this->mCurrentURI) mCurrentURI->GetSpec(curSpec);
+ if (mLoadingURI) mLoadingURI->GetSpec(loadingSpec);
+ printf(" current URI: %s\n", curSpec.get());
+ printf(" loading URI: %s\n", loadingSpec.get());
+ printf(" is top document: %s\n", isTopFrame ? "Yes" : "No");
+
+ if (!httpReferrer) {
+ printf(" referrer: None\n");
+ } else {
+ nsAutoCString refSpec;
+ httpReferrer->GetSpec(refSpec);
+ printf(" referrer: %s\n", refSpec.get());
+ }
+#endif
+
+ bool clearName = isTopFrame && !httpReferrer;
+ if (clearName) SetName(u""_ns);
+
+#ifdef DEBUG_WINDOW_NAME
+ printf(" action taken: %s window.name\n",
+ clearName ? "Cleared" : "Preserved");
+#endif
+ }
+
mLoadingURI = nullptr;
// Set mFiredUnloadEvent = false so that the unload handler for the
diff --git a/docshell/test/mochitest/mochitest.ini b/docshell/test/mochitest/mochitest.ini
index cea63f080117..efc991ef1eee 100644
--- a/docshell/test/mochitest/mochitest.ini
+++ b/docshell/test/mochitest/mochitest.ini
@@ -53,6 +53,10 @@ support-files =
start_historyframe.html
url1_historyframe.html
url2_historyframe.html
+ tor_bug16620.html
+ tor_bug16620_form.html
+prefs =
+ gfx.font_rendering.fallback.async=false
[test_anchor_scroll_after_document_open.html]
[test_bfcache_plus_hash.html]
@@ -120,6 +124,7 @@ support-files =
[test_framedhistoryframes.html]
support-files = file_framedhistoryframes.html
[test_pushState_after_document_open.html]
+[test_tor_bug16620.html]
[test_navigate_after_pagehide.html]
[test_redirect_history.html]
support-files =
diff --git a/docshell/test/mochitest/test_tor_bug16620.html b/docshell/test/mochitest/test_tor_bug16620.html
new file mode 100644
index 000000000000..46fff5a04711
--- /dev/null
+++ b/docshell/test/mochitest/test_tor_bug16620.html
@@ -0,0 +1,211 @@
+<!DOCTYPE HTML>
+<html>
+<!--
+ Tor Bug 16620: Clear window.name when no referrer sent.
+ https://trac.torproject.org/projects/tor/ticket/16620
+-->
+<meta charset="utf-8">
+<head>
+ <title>Test for Tor Bug 16620 - Clear window.name when no referrer sent</title>
+ <script type="application/javascript"
+ src="/tests/SimpleTest/SimpleTest.js"></script>
+ <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
+</head>
+<body>
+<a target="_blank" href="https://trac.torproject.org/projects/tor/ticket/16620">Tor Bug 16620</a>
+<script>
+// ## Test constants
+const kTestPath = "/tests/docshell/test/mochitest/";
+const kLinkFile = "tor_bug16620.html";
+const kFormFile = "tor_bug16620_form.html";
+const kBaseURL1 = "http://example.com";
+const kBaseURL1_https = "https://example.com";
+const kBaseURL2 = "http://example.net";
+const kSendReferrerPref = "network.http.sendRefererHeader";
+const kSendReferrerNever = 0;
+const kSendReferrerForUserAction = 1;
+const kSendReferrerAlways = 2;
+
+let gTests = [
+ // Test #1: Same domain; never send referrer.
+ { startURL: kBaseURL1, destURL: kBaseURL1,
+ referrerPref: kSendReferrerNever,
+ expectIsolation: true },
+
+ // Test #2: Same domain; send referrer upon user action.
+ { startURL: kBaseURL1, destURL: kBaseURL1,
+ referrerPref: kSendReferrerForUserAction,
+ expectIsolation: false },
+
+ // Test #3: Same domain; always send referrer.
+ { startURL: kBaseURL1, destURL: kBaseURL1,
+ referrerPref: kSendReferrerAlways,
+ expectIsolation: false },
+
+ // Test #4: Different top-level domains; never send referrer.
+ { startURL: kBaseURL1, destURL: kBaseURL2,
+ referrerPref: kSendReferrerNever,
+ expectIsolation: true },
+
+ // Test #5: Different top-level domains; send referrer upon user action.
+ { startURL: kBaseURL1, destURL: kBaseURL2,
+ referrerPref: kSendReferrerForUserAction,
+ expectIsolation: false },
+
+ // Test #6: Different top-level domains; always send referrer.
+ { startURL: kBaseURL1, destURL: kBaseURL2,
+ referrerPref: kSendReferrerAlways,
+ expectIsolation: false },
+
+ // Test #7: https -> http transition.
+ { startURL: kBaseURL1_https, destURL: kBaseURL1,
+ referrerPref: kSendReferrerForUserAction,
+ expectIsolation: true },
+
+ // Test #8: Same domain, rel="noreferrer" on link.
+ { startURL: kBaseURL1, destURL: kBaseURL1, noReferrerOnLink: true,
+ referrerPref: kSendReferrerAlways,
+ expectIsolation: true },
+
+ // Test #9: Same domain, "no-referrer" meta tag in document.
+ { startURL: kBaseURL1, destURL: kBaseURL1, noReferrerInMetaTag: true,
+ referrerPref: kSendReferrerAlways,
+ expectIsolation: true },
+
+ // Test #10: Like test #9, but reset window.name during unload.
+ // (similar to http://www.thomasfrank.se/sessvarsTestPage1.html)
+ { startURL: kBaseURL1, destURL: kBaseURL1, noReferrerInMetaTag: true,
+ resetInUnload: true,
+ referrerPref: kSendReferrerAlways,
+ expectIsolation: true },
+
+ // Test #11: Data URL as destination (no referrer).
+ { startURL: kBaseURL1,
+ referrerPref: kSendReferrerAlways,
+ expectIsolation: true },
+
+ // Test #12: Ensure that window.name is preserved when a dynamically loaded
+ // iframe is used to perform a form post (regression test for Tor bug 18168).
+ { startURL: kBaseURL1,
+ isFormTest: true,
+ referrerPref: kSendReferrerAlways,
+ expectIsolation: false },
+];
+
+let gCurTest = 0;
+let gCurWinName, gChildWin, gDataURL;
+
+// ## Utility functions
+function generateRandomName()
+{
+ // Generate a random 6 character string using 0-9 and a-z.
+ return ((1 + Math.random()).toString(36) + '000000').substr(2, 6);
+}
+
+function startNextTest() {
+ ++gCurTest;
+ if (gCurTest > gTests.length) {
+ SimpleTest.finish();
+ } else {
+ let curTest = gTests[gCurTest - 1];
+ if ("referrerPref" in curTest)
+ SpecialPowers.setIntPref(kSendReferrerPref, curTest.referrerPref);
+ else
+ SpecialPowers.setIntPref(kSendReferrerPref, kSendReferrerForUserAction);
+ gCurWinName = generateRandomName();
+ let url = curTest.startURL + kTestPath;
+ if (curTest.isFormTest === true) {
+ url += kFormFile + "?" + gCurWinName;
+ gChildWin = window.open(url, undefined);
+ } else {
+ url += kLinkFile + "?firstDocLoaded";
+ gChildWin = window.open(url, gCurWinName);
+ }
+ }
+}
+
+// ## Add a message event listener.
+window.addEventListener("message", function(aEvent) {
+ if (aEvent.source !== gChildWin)
+ return;
+
+// console.log("parent received message:" + JSON.stringify(aEvent.data));
+
+ let proceedToNextTest = false;
+ let curTest = gTests[gCurTest - 1];
+ let state = aEvent.data.state;
+ let winName = aEvent.data.winName;
+ if ("firstDocLoaded" == state) {
+ // Process response from step one of the link-based tests.
+ let step1Passed = (winName === gCurWinName);
+ if (!step1Passed) {
+ ok(step1Passed, "Test #" + gCurTest +
+ " - first document's name matches window.open parameter");
+ proceedToNextTest = true;
+ }
+
+ // Send an "openURL" message to the loaded document.
+ let url2 = (curTest.destURL)
+ ? curTest.destURL + kTestPath + kLinkFile + "?secondDocLoaded"
+ : gDataURL;
+ let noReferrerOnLink = (curTest.noReferrerOnLink === true);
+ let noReferrerInMetaTag = (curTest.noReferrerInMetaTag === true);
+ let resetInUnload = (curTest.resetInUnload === true);
+ aEvent.source.postMessage({ action: "openURL", url: url2,
+ noReferrerOnLink: noReferrerOnLink,
+ noReferrerInMetaTag: noReferrerInMetaTag,
+ resetInUnload: resetInUnload },
+ "*");
+ } else if ("secondDocLoaded" == state) {
+ // Process response from step two of the link-based tests.
+ if (curTest.expectIsolation) {
+ ok(winName === "",
+ "Test #" + gCurTest + " - second document: name was cleared");
+ } else {
+ ok(winName === gCurWinName,
+ "Test #" + gCurTest + " - second document: name was preserved");
+ }
+ proceedToNextTest = true;
+ } else if ("formPostDone" == state) {
+ // Process response from the form post tests.
+ if (curTest.expectIsolation) {
+ ok(winName === "",
+ "Test #" + gCurTest + " - iframe form post: name was cleared");
+ } else {
+ ok(winName === gCurWinName,
+ "Test #" + gCurTest + " - iframe form post: name was preserved");
+ }
+ proceedToNextTest = true;
+
+ }
+
+ if (proceedToNextTest) {
+ gChildWin.close();
+ startNextTest();
+ }
+ }, false);
+
+ SimpleTest.waitForExplicitFinish();
+
+ if (SpecialPowers.getBoolPref("security.nocertdb")) {
+ // Mochitests don't simulate https correctly with "security.nocertdb"
+ // enabled. See https://bugs.torproject.org/18087
+ ok(false, "Please disable the pref `security.nocertdb` before running this test.");
+ SimpleTest.finish();
+ } else {
+
+ // Read file contents, construct a data URL (used by some tests), and
+ // then start the first test.
+ let url = kTestPath + kLinkFile;
+ let xhr = new XMLHttpRequest();
+ xhr.open("GET", url);
+ xhr.onload = function() {
+ gDataURL = "data:text/html;charset=utf-8,"
+ + encodeURIComponent(this.responseText);
+ startNextTest();
+ }
+ xhr.send();
+ }
+</script>
+</body>
+</html>
diff --git a/docshell/test/mochitest/tor_bug16620.html b/docshell/test/mochitest/tor_bug16620.html
new file mode 100644
index 000000000000..26b8e406bbff
--- /dev/null
+++ b/docshell/test/mochitest/tor_bug16620.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML>
+<html>
+<!--
+ Tor Bug 16620: Clear window.name when no referrer sent.
+ https://trac.torproject.org/projects/tor/ticket/16620
+-->
+<head>
+ <meta charset="UTF-8">
+ <title>Supporting Doc for Tor Bug 16620 Tests</title>
+</head>
+<body>
+<a id="link" href="">secondDoc</a>
+
+<script>
+// Extract test state from our query string, defaulting to
+// "secondDocLoaded" to support use of this HTML content within
+// a data URI (where query strings are not supported).
+let state = (location.search.length > 0) ? location.search.substr(1)
+ : "secondDocLoaded";
+
+// Notify the test driver.
+opener.postMessage({ state: state, winName: window.name }, "*");
+
+// Add a message event listener to process "openURL" actions.
+window.addEventListener("message", function(aEvent) {
+ if (aEvent.data.action == "openURL") {
+ if (aEvent.data.noReferrerInMetaTag) {
+ let metaElem = document.createElement("meta");
+ metaElem.name = "referrer";
+ metaElem.content = "no-referrer";
+ document.head.appendChild(metaElem);
+ }
+
+ let linkElem = document.getElementById("link");
+ linkElem.href = aEvent.data.url;
+ if (aEvent.data.noReferrerOnLink)
+ linkElem.rel = "noreferrer";
+
+ if (aEvent.data.resetInUnload) {
+ let tmpName = window.name;
+ window.addEventListener("unload", function() {
+ window.name = tmpName;
+ }, false);
+ }
+
+ linkElem.click();
+ }
+}, false);
+</script>
+</body>
+</html>
diff --git a/docshell/test/mochitest/tor_bug16620_form.html b/docshell/test/mochitest/tor_bug16620_form.html
new file mode 100644
index 000000000000..279f62e63fab
--- /dev/null
+++ b/docshell/test/mochitest/tor_bug16620_form.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML>
+<html>
+<!--
+ Tor Bug 16620: Clear window.name when no referrer sent.
+ https://trac.torproject.org/projects/tor/ticket/16620
+
+ Regression test for bug 18168: iframe-based AJAX call opening in new tab
+-->
+<head>
+ <meta charset="UTF-8">
+ <title>Supporting Form-based Doc for Tor Bug 16620 Tests</title>
+</head>
+<body>
+
+<script>
+document.addEventListener("DOMContentLoaded", function () {
+ addPostTarget();
+}, false);
+
+
+function addPostTarget()
+{
+ let frameName = location.search.substr(1);
+ let form = document.getElementById("postform");
+ let iframe = document.createElement("iframe");
+ iframe.style.border = "1px solid red";
+ iframe.src = "about:blank";
+ form.target = iframe.name = iframe.id = frameName;
+ document.body.appendChild(iframe);
+
+ let didSubmit = false;
+ iframe.onload = function() {
+ if (!didSubmit) {
+ didSubmit = true;
+ let submitButton = document.getElementById("submitButton");
+ submitButton.click();
+ } else {
+ // Form submission complete. Report iframe's name to test driver.
+ opener.postMessage({ state: "formPostDone", winName: iframe.name }, "*");
+ }
+ };
+}
+
+</script>
+<form name="postform" id="postform"
+ action="data:text/plain;charset=utf-8,Hello%20world"
+ method="POST" enctype="multipart/form-data">
+ <input type="hidden" name="field1" value="value1"><br>
+ <input id="submitButton" type="submit" value="Post It">
+</body>
+</html>
diff --git a/modules/libpref/init/StaticPrefList.yaml b/modules/libpref/init/StaticPrefList.yaml
index 058df55a189d..3f578a7d37bc 100644
--- a/modules/libpref/init/StaticPrefList.yaml
+++ b/modules/libpref/init/StaticPrefList.yaml
@@ -10436,7 +10436,7 @@
- name: privacy.window.name.update.enabled
type: bool
- value: true
+ value: false
mirror: always
# By default, the network state isolation is not active when there is a proxy
1
0
[tor-browser/tor-browser-91.6.0esr-11.0-1] Bug 18800: Remove localhost DNS lookup in nsProfileLock.cpp
by richard@torproject.org 03 Feb '22
by richard@torproject.org 03 Feb '22
03 Feb '22
commit 15ea6f32b31c2d6a5d8162b8a85007a003cdba44
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Thu Apr 21 10:40:26 2016 -0400
Bug 18800: Remove localhost DNS lookup in nsProfileLock.cpp
Instead of using the local computer's IP address within
symlink-based profile lock signatures, always use 127.0.0.1.
---
toolkit/profile/nsProfileLock.cpp | 17 ++++++++---------
1 file changed, 8 insertions(+), 9 deletions(-)
diff --git a/toolkit/profile/nsProfileLock.cpp b/toolkit/profile/nsProfileLock.cpp
index 28d38c11684e..a1b3edc54a05 100644
--- a/toolkit/profile/nsProfileLock.cpp
+++ b/toolkit/profile/nsProfileLock.cpp
@@ -304,18 +304,17 @@ nsresult nsProfileLock::LockWithSymlink(nsIFile* aLockFile,
if (!mReplacedLockTime)
aLockFile->GetLastModifiedTimeOfLink(&mReplacedLockTime);
+ // For Tor Browser, avoid a DNS lookup here so the Tor network is not
+ // bypassed. Instead, always use 127.0.0.1 for the IP address portion
+ // of the lock signature, which may cause the browser to refuse to
+ // start in the rare event that all of the following conditions are met:
+ // 1. The browser profile is on a network file system.
+ // 2. The file system does not support fcntl() locking.
+ // 3. Tor Browser is run from two different computers at the same time.
+
struct in_addr inaddr;
inaddr.s_addr = htonl(INADDR_LOOPBACK);
- char hostname[256];
- PRStatus status = PR_GetSystemInfo(PR_SI_HOSTNAME, hostname, sizeof hostname);
- if (status == PR_SUCCESS) {
- char netdbbuf[PR_NETDB_BUF_SIZE];
- PRHostEnt hostent;
- status = PR_GetHostByName(hostname, netdbbuf, sizeof netdbbuf, &hostent);
- if (status == PR_SUCCESS) memcpy(&inaddr, hostent.h_addr, sizeof inaddr);
- }
-
mozilla::SmprintfPointer signature =
mozilla::Smprintf("%s:%s%lu", inet_ntoa(inaddr),
aHaveFcntlLock ? "+" : "", (unsigned long)getpid());
1
0
[tor-browser/tor-browser-91.6.0esr-11.0-1] Bug 19273: Avoid JavaScript patching of the external app helper dialog.
by richard@torproject.org 03 Feb '22
by richard@torproject.org 03 Feb '22
03 Feb '22
commit 8e94c6fb9f6adf6bafab761c8b36e398cd8c45af
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Tue Jun 28 15:13:05 2016 -0400
Bug 19273: Avoid JavaScript patching of the external app helper dialog.
When handling an external URI or downloading a file, invoke Torbutton's
external app blocker component (which will present a download warning
dialog unless the user has checked the "Automatically download files
from now on" box).
For e10s compatibility, avoid using a modal dialog and instead use
a callback interface (nsIHelperAppWarningLauncher) to allow Torbutton
to indicate the user's desire to cancel or continue each request.
Other bugs fixed:
Bug 21766: Crash with e10s enabled while trying to download a file
Bug 21886: Download is stalled in non-e10s mode
Bug 22471: Downloading files via the PDF viewer download button is broken
Bug 22472: Fix FTP downloads when external helper app dialog is shown
Bug 22610: Avoid crashes when canceling external helper app downloads
Bug 22618: Downloading pdf file via file:/// is stalling
---
.../exthandler/nsExternalHelperAppService.cpp | 177 ++++++++++++++++++---
uriloader/exthandler/nsExternalHelperAppService.h | 3 +
.../exthandler/nsIExternalHelperAppService.idl | 47 ++++++
3 files changed, 209 insertions(+), 18 deletions(-)
diff --git a/uriloader/exthandler/nsExternalHelperAppService.cpp b/uriloader/exthandler/nsExternalHelperAppService.cpp
index 021246211a26..8404a538d9a0 100644
--- a/uriloader/exthandler/nsExternalHelperAppService.cpp
+++ b/uriloader/exthandler/nsExternalHelperAppService.cpp
@@ -133,6 +133,9 @@ static const char NEVER_ASK_FOR_SAVE_TO_DISK_PREF[] =
static const char NEVER_ASK_FOR_OPEN_FILE_PREF[] =
"browser.helperApps.neverAsk.openFile";
+static const char WARNING_DIALOG_CONTRACT_ID[] =
+ "@torproject.org/torbutton-extAppBlocker;1";
+
// Helper functions for Content-Disposition headers
/**
@@ -423,6 +426,22 @@ static nsresult GetDownloadDirectory(nsIFile** _directory,
return NS_OK;
}
+static already_AddRefed<nsIInterfaceRequestor> GetDialogParentAux(
+ BrowsingContext* aBrowsingContext, nsIInterfaceRequestor* aWindowContext) {
+ nsCOMPtr<nsIInterfaceRequestor> dialogParent = aWindowContext;
+
+ if (!dialogParent && aBrowsingContext) {
+ dialogParent = do_QueryInterface(aBrowsingContext->GetDOMWindow());
+ }
+ if (!dialogParent && aBrowsingContext && XRE_IsParentProcess()) {
+ RefPtr<Element> element = aBrowsingContext->Top()->GetEmbedderElement();
+ if (element) {
+ dialogParent = do_QueryInterface(element->OwnerDoc()->GetWindow());
+ }
+ }
+ return dialogParent.forget();
+}
+
/**
* Structure for storing extension->type mappings.
* @see defaultMimeEntries
@@ -627,6 +646,96 @@ static const char* descriptionOverwriteExtensions[] = {
"avif", "jxl", "pdf", "svg", "webp", "xml",
};
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+// begin nsExternalLoadURIHandler class definition and implementation
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+class nsExternalLoadURIHandler final : public nsIHelperAppWarningLauncher {
+ public:
+ NS_DECL_THREADSAFE_ISUPPORTS
+ NS_DECL_NSIHELPERAPPWARNINGLAUNCHER
+
+ nsExternalLoadURIHandler(nsIHandlerInfo* aHandlerInfo, nsIURI* aURI,
+ nsIPrincipal* aTriggeringPrincipal,
+ BrowsingContext* aBrowsingContext,
+ bool aTriggeredExternally);
+
+ protected:
+ ~nsExternalLoadURIHandler();
+
+ nsCOMPtr<nsIHandlerInfo> mHandlerInfo;
+ nsCOMPtr<nsIURI> mURI;
+ nsCOMPtr<nsIPrincipal> mTriggeringPrincipal;
+ RefPtr<BrowsingContext> mBrowsingContext;
+ bool mTriggeredExternally;
+ nsCOMPtr<nsIHelperAppWarningDialog> mWarningDialog;
+};
+
+NS_IMPL_ADDREF(nsExternalLoadURIHandler)
+NS_IMPL_RELEASE(nsExternalLoadURIHandler)
+
+NS_INTERFACE_MAP_BEGIN(nsExternalLoadURIHandler)
+ NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIHelperAppWarningLauncher)
+ NS_INTERFACE_MAP_ENTRY(nsIHelperAppWarningLauncher)
+NS_INTERFACE_MAP_END
+
+nsExternalLoadURIHandler::nsExternalLoadURIHandler(
+ nsIHandlerInfo* aHandlerInfo, nsIURI* aURI,
+ nsIPrincipal* aTriggeringPrincipal, BrowsingContext* aBrowsingContext,
+ bool aTriggeredExternally)
+ : mHandlerInfo(aHandlerInfo),
+ mURI(aURI),
+ mTriggeringPrincipal(aTriggeringPrincipal),
+ mBrowsingContext(aBrowsingContext),
+ mTriggeredExternally(aTriggeredExternally)
+
+{
+ nsresult rv = NS_OK;
+ mWarningDialog = do_CreateInstance(WARNING_DIALOG_CONTRACT_ID, &rv);
+ if (NS_SUCCEEDED(rv) && mWarningDialog) {
+ // This will create a reference cycle (the dialog holds a reference to us
+ // as nsIHelperAppWarningLauncher), which will be broken in ContinueRequest
+ // or CancelRequest.
+ nsCOMPtr<nsIInterfaceRequestor> dialogParent =
+ GetDialogParentAux(aBrowsingContext, nullptr);
+ rv = mWarningDialog->MaybeShow(this, dialogParent);
+ }
+
+ if (NS_FAILED(rv)) {
+ // If for some reason we could not open the download warning prompt,
+ // continue with the request.
+ ContinueRequest();
+ }
+}
+
+nsExternalLoadURIHandler::~nsExternalLoadURIHandler() {}
+
+NS_IMETHODIMP nsExternalLoadURIHandler::ContinueRequest() {
+ MOZ_ASSERT(mURI);
+ MOZ_ASSERT(mHandlerInfo);
+
+ // Break our reference cycle with the download warning dialog (set up in
+ // LoadURI).
+ mWarningDialog = nullptr;
+
+ nsresult rv = NS_OK;
+ nsCOMPtr<nsIContentDispatchChooser> chooser =
+ do_CreateInstance("@mozilla.org/content-dispatch-chooser;1", &rv);
+ NS_ENSURE_SUCCESS(rv, rv);
+
+ return chooser->HandleURI(mHandlerInfo, mURI, mTriggeringPrincipal,
+ mBrowsingContext, mTriggeredExternally);
+}
+
+NS_IMETHODIMP nsExternalLoadURIHandler::CancelRequest(nsresult aReason) {
+ NS_ENSURE_ARG(NS_FAILED(aReason));
+
+ // Break our reference cycle with the download warning dialog (set up in
+ // LoadURI).
+ mWarningDialog = nullptr;
+
+ return NS_OK;
+}
+
static StaticRefPtr<nsExternalHelperAppService> sExtHelperAppSvcSingleton;
/**
@@ -653,6 +762,9 @@ nsExternalHelperAppService::GetSingleton() {
return do_AddRef(sExtHelperAppSvcSingleton);
}
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+// nsExternalHelperAppService definition and implementation
+//////////////////////////////////////////////////////////////////////////////////////////////////////
NS_IMPL_ISUPPORTS(nsExternalHelperAppService, nsIExternalHelperAppService,
nsPIExternalAppLauncher, nsIExternalProtocolService,
nsIMIMEService, nsIObserver, nsISupportsWeakReference)
@@ -1123,14 +1235,15 @@ nsExternalHelperAppService::LoadURI(nsIURI* aURI,
rv = GetProtocolHandlerInfo(scheme, getter_AddRefs(handler));
NS_ENSURE_SUCCESS(rv, rv);
- nsCOMPtr<nsIContentDispatchChooser> chooser =
- do_CreateInstance("@mozilla.org/content-dispatch-chooser;1", &rv);
- NS_ENSURE_SUCCESS(rv, rv);
-
- return chooser->HandleURI(
+ RefPtr<nsExternalLoadURIHandler> h = new nsExternalLoadURIHandler(
handler, escapedURI,
aRedirectPrincipal ? aRedirectPrincipal : aTriggeringPrincipal,
aBrowsingContext, aTriggeredExternally);
+ if (!h) {
+ return NS_ERROR_OUT_OF_MEMORY;
+ }
+
+ return NS_OK;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -1275,6 +1388,7 @@ NS_INTERFACE_MAP_BEGIN(nsExternalAppHandler)
NS_INTERFACE_MAP_ENTRY(nsIStreamListener)
NS_INTERFACE_MAP_ENTRY(nsIRequestObserver)
NS_INTERFACE_MAP_ENTRY(nsIHelperAppLauncher)
+ NS_INTERFACE_MAP_ENTRY(nsIHelperAppWarningLauncher)
NS_INTERFACE_MAP_ENTRY(nsICancelable)
NS_INTERFACE_MAP_ENTRY(nsIBackgroundFileSaverObserver)
NS_INTERFACE_MAP_ENTRY(nsINamed)
@@ -1673,18 +1787,7 @@ void nsExternalAppHandler::MaybeApplyDecodingForExtension(
already_AddRefed<nsIInterfaceRequestor>
nsExternalAppHandler::GetDialogParent() {
- nsCOMPtr<nsIInterfaceRequestor> dialogParent = mWindowContext;
-
- if (!dialogParent && mBrowsingContext) {
- dialogParent = do_QueryInterface(mBrowsingContext->GetDOMWindow());
- }
- if (!dialogParent && mBrowsingContext && XRE_IsParentProcess()) {
- RefPtr<Element> element = mBrowsingContext->Top()->GetEmbedderElement();
- if (element) {
- dialogParent = do_QueryInterface(element->OwnerDoc()->GetWindow());
- }
- }
- return dialogParent.forget();
+ return GetDialogParentAux(mBrowsingContext, mWindowContext);
}
NS_IMETHODIMP nsExternalAppHandler::OnStartRequest(nsIRequest* request) {
@@ -1812,6 +1915,34 @@ NS_IMETHODIMP nsExternalAppHandler::OnStartRequest(nsIRequest* request) {
loadInfo->SetForceAllowDataURI(true);
}
+ mWarningDialog = do_CreateInstance(WARNING_DIALOG_CONTRACT_ID, &rv);
+ if (NS_SUCCEEDED(rv) && mWarningDialog) {
+ // This will create a reference cycle (the dialog holds a reference to us
+ // as nsIHelperAppWarningLauncher), which will be broken in ContinueRequest
+ // or CancelRequest.
+ nsCOMPtr<nsIInterfaceRequestor> dialogParent = GetDialogParent();
+ rv = mWarningDialog->MaybeShow(this, dialogParent);
+ }
+
+ if (NS_FAILED(rv)) {
+ // If for some reason we could not open the download warning prompt,
+ // continue with the request.
+ ContinueRequest();
+ }
+
+ return NS_OK;
+}
+
+NS_IMETHODIMP nsExternalAppHandler::ContinueRequest() {
+ nsAutoCString MIMEType;
+ if (mMimeInfo) {
+ mMimeInfo->GetMIMEType(MIMEType);
+ }
+
+ // Break our reference cycle with the download warning dialog (set up in
+ // OnStartRequest).
+ mWarningDialog = nullptr;
+
// now that the temp file is set up, find out if we need to invoke a dialog
// asking the user what they want us to do with this content...
@@ -1923,6 +2054,8 @@ NS_IMETHODIMP nsExternalAppHandler::OnStartRequest(nsIRequest* request) {
action == nsIMIMEInfo::saveToDisk) {
alwaysAsk = true;
}
+
+ nsresult rv = NS_OK;
if (alwaysAsk) {
// Display the dialog
mDialog = do_CreateInstance(NS_HELPERAPPLAUNCHERDLG_CONTRACTID, &rv);
@@ -1980,6 +2113,14 @@ NS_IMETHODIMP nsExternalAppHandler::OnStartRequest(nsIRequest* request) {
return NS_OK;
}
+NS_IMETHODIMP nsExternalAppHandler::CancelRequest(nsresult aReason) {
+ // Break our reference cycle with the download warning dialog (set up in
+ // OnStartRequest).
+ mWarningDialog = nullptr;
+
+ return Cancel(aReason);
+}
+
// Convert error info into proper message text and send OnStatusChange
// notification to the dialog progress listener or nsITransfer implementation.
void nsExternalAppHandler::SendStatusChange(ErrorType type, nsresult rv,
@@ -2666,7 +2807,7 @@ NS_IMETHODIMP nsExternalAppHandler::Cancel(nsresult aReason) {
}
// Break our reference cycle with the helper app dialog (set up in
- // OnStartRequest)
+ // ContinueRequest)
mDialog = nullptr;
mRequest = nullptr;
diff --git a/uriloader/exthandler/nsExternalHelperAppService.h b/uriloader/exthandler/nsExternalHelperAppService.h
index ff933451acbd..39f00efb644b 100644
--- a/uriloader/exthandler/nsExternalHelperAppService.h
+++ b/uriloader/exthandler/nsExternalHelperAppService.h
@@ -224,6 +224,7 @@ class nsExternalHelperAppService : public nsIExternalHelperAppService,
*/
class nsExternalAppHandler final : public nsIStreamListener,
public nsIHelperAppLauncher,
+ public nsIHelperAppWarningLauncher,
public nsIBackgroundFileSaverObserver,
public nsINamed {
public:
@@ -231,6 +232,7 @@ class nsExternalAppHandler final : public nsIStreamListener,
NS_DECL_NSISTREAMLISTENER
NS_DECL_NSIREQUESTOBSERVER
NS_DECL_NSIHELPERAPPLAUNCHER
+ NS_DECL_NSIHELPERAPPWARNINGLAUNCHER
NS_DECL_NSICANCELABLE
NS_DECL_NSIBACKGROUNDFILESAVEROBSERVER
NS_DECL_NSINAMED
@@ -502,6 +504,7 @@ class nsExternalAppHandler final : public nsIStreamListener,
nsCOMPtr<nsITransfer> mTransfer;
nsCOMPtr<nsIHelperAppLauncherDialog> mDialog;
+ nsCOMPtr<nsIHelperAppWarningDialog> mWarningDialog;
/**
diff --git a/uriloader/exthandler/nsIExternalHelperAppService.idl b/uriloader/exthandler/nsIExternalHelperAppService.idl
index 657e15bc0742..ebdb1cdacf78 100644
--- a/uriloader/exthandler/nsIExternalHelperAppService.idl
+++ b/uriloader/exthandler/nsIExternalHelperAppService.idl
@@ -177,3 +177,50 @@ interface nsIHelperAppLauncher : nsICancelable
*/
readonly attribute uint64_t browsingContextId;
};
+
+/**
+ * nsIHelperAppWarningLauncher is implemented by two classes:
+ * nsExternalLoadURIHandler
+ * nsExternalAppHandler
+ */
+[scriptable, uuid(cffd508b-4aaf-43ad-99c6-671d35cbc558)]
+interface nsIHelperAppWarningLauncher : nsISupports
+{
+ /**
+ * Callback invoked by the external app warning dialog to continue the
+ * request.
+ * NOTE: This will release the reference to the nsIHelperAppWarningDialog.
+ */
+ void continueRequest();
+
+ /**
+ * Callback invoked by the external app warning dialog to cancel the request.
+ * NOTE: This will release the reference to the nsIHelperAppWarningDialog.
+ *
+ * @param aReason
+ * Pass a failure code to indicate the reason why this operation is
+ * being canceled. It is an error to pass a success code.
+ */
+ void cancelRequest(in nsresult aReason);
+};
+
+/**
+ * nsIHelperAppWarningDialog is implemented by Torbutton's external app
+ * blocker (src/components/external-app-blocker.js).
+ */
+[scriptable, uuid(f4899a3f-0df3-42cc-9db8-bdf599e5a208)]
+interface nsIHelperAppWarningDialog : nsISupports
+{
+ /**
+ * Possibly show a launch warning dialog (it will not be shown if the user
+ * has chosen to not see the warning again).
+ *
+ * @param aLauncher
+ * A nsIHelperAppWarningLauncher to be invoked after the user confirms
+ * or cancels the download.
+ * @param aWindowContext
+ * The window associated with the download.
+ */
+ void maybeShow(in nsIHelperAppWarningLauncher aLauncher,
+ in nsISupports aWindowContext);
+};
1
0
[tor-browser/tor-browser-91.6.0esr-11.0-1] Bug 21724: Make Firefox and Tor Browser distinct macOS apps
by richard@torproject.org 03 Feb '22
by richard@torproject.org 03 Feb '22
03 Feb '22
commit 0db70ffb0a90dd73e423882ad8de2ae395d794e6
Author: teor <teor2345(a)gmail.com>
Date: Mon Mar 13 23:06:23 2017 +1100
Bug 21724: Make Firefox and Tor Browser distinct macOS apps
When macOS opens a document or selects a default browser, it sometimes
uses the CFBundleSignature. Changing from the Firefox MOZB signature to
a different signature TORB allows macOS to distinguish between Firefox
and Tor Browser.
---
browser/app/Makefile.in | 2 +-
browser/app/macbuild/Contents/Info.plist.in | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/browser/app/Makefile.in b/browser/app/Makefile.in
index 54d6b43fe126..8dd3a9a65661 100644
--- a/browser/app/Makefile.in
+++ b/browser/app/Makefile.in
@@ -102,5 +102,5 @@ ifdef MOZ_UPDATER
mv -f '$(dist_dest)/Contents/MacOS/updater.app/Contents/MacOS/org.mozilla.updater' '$(dist_dest)/Contents/Library/LaunchServices'
ln -s ../../../../Library/LaunchServices/org.mozilla.updater '$(dist_dest)/Contents/MacOS/updater.app/Contents/MacOS/org.mozilla.updater'
endif
- printf APPLMOZB > '$(dist_dest)/Contents/PkgInfo'
+ printf APPLTORB > '$(dist_dest)/Contents/PkgInfo'
endif
diff --git a/browser/app/macbuild/Contents/Info.plist.in b/browser/app/macbuild/Contents/Info.plist.in
index 9ceaf88f15c1..d8858e9f01bf 100644
--- a/browser/app/macbuild/Contents/Info.plist.in
+++ b/browser/app/macbuild/Contents/Info.plist.in
@@ -179,7 +179,7 @@
<key>CFBundleShortVersionString</key>
<string>@APP_VERSION@</string>
<key>CFBundleSignature</key>
- <string>MOZB</string>
+ <string>TORB</string>
<key>CFBundleURLTypes</key>
<array>
<dict>
1
0
[tor-browser/tor-browser-91.6.0esr-11.0-1] Bug 11641: change TBB directory structure to be more like Firefox's
by richard@torproject.org 03 Feb '22
by richard@torproject.org 03 Feb '22
03 Feb '22
commit 833e70f71a909d133345bf402e18f0301ec96622
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Tue Apr 29 13:08:24 2014 -0400
Bug 11641: change TBB directory structure to be more like Firefox's
Unless the -osint command line flag is used, the browser now defaults
to the equivalent of -no-remote. There is a new -allow-remote flag that
may be used to restore the original (Firefox-like) default behavior.
---
toolkit/xre/nsAppRunner.cpp | 21 ++++++++++++++++-----
1 file changed, 16 insertions(+), 5 deletions(-)
diff --git a/toolkit/xre/nsAppRunner.cpp b/toolkit/xre/nsAppRunner.cpp
index 351766bdbdcd..6d6238feda46 100644
--- a/toolkit/xre/nsAppRunner.cpp
+++ b/toolkit/xre/nsAppRunner.cpp
@@ -1837,8 +1837,10 @@ static void DumpHelp() {
" --migration Start with migration wizard.\n"
" --ProfileManager Start with ProfileManager.\n"
#ifdef MOZ_HAS_REMOTE
- " --no-remote Do not accept or send remote commands; implies\n"
+ " --no-remote (default) Do not accept or send remote commands; "
+ "implies\n"
" --new-instance.\n"
+ " --allow-remote Accept and send remote commands.\n"
" --new-instance Open new instance, not a new window in running "
"instance.\n"
#endif
@@ -4100,16 +4102,25 @@ int XREMain::XRE_mainInit(bool* aExitFlag) {
gSafeMode);
#if defined(MOZ_HAS_REMOTE)
+ // In Tor Browser, remoting is disabled by default unless -osint is used.
+ bool allowRemote = (CheckArg("allow-remote") == ARG_FOUND);
+ bool isOsint = (CheckArg("osint", nullptr, CheckArgFlag::None) == ARG_FOUND);
+ if (!allowRemote && !isOsint) {
+ SaveToEnv("MOZ_NO_REMOTE=1");
+ }
// Handle --no-remote and --new-instance command line arguments. Setup
// the environment to better accommodate other components and various
// restart scenarios.
ar = CheckArg("no-remote");
- if (ar == ARG_FOUND || EnvHasValue("MOZ_NO_REMOTE")) {
+ if ((ar == ARG_FOUND) && allowRemote) {
+ PR_fprintf(PR_STDERR,
+ "Error: argument --no-remote is invalid when argument "
+ "--allow-remote is specified\n");
+ return 1;
+ }
+ if (EnvHasValue("MOZ_NO_REMOTE")) {
mDisableRemoteClient = true;
mDisableRemoteServer = true;
- if (!EnvHasValue("MOZ_NO_REMOTE")) {
- SaveToEnv("MOZ_NO_REMOTE=1");
- }
}
ar = CheckArg("new-instance");
1
0
[tor-browser/tor-browser-91.6.0esr-11.0-1] Bug 18821: Disable libmdns for Android and Desktop
by richard@torproject.org 03 Feb '22
by richard@torproject.org 03 Feb '22
03 Feb '22
commit bf185fbc78fd5cd979c43763f41404bbf15a4e22
Author: Georg Koppen <gk(a)torproject.org>
Date: Wed Apr 20 14:34:50 2016 +0000
Bug 18821: Disable libmdns for Android and Desktop
There should be no need to remove the OS X support introduced in
https://bugzilla.mozilla.org/show_bug.cgi?id=1225726 as enabling this
is governed by a preference (which is actually set to `false`). However,
we remove it at build time as well (defense in depth).
This is basically a backout of the relevant passages of
https://hg.mozilla.org/mozilla-central/rev/6bfb430de85d,
https://hg.mozilla.org/mozilla-central/rev/609b337bf7ab and
https://hg.mozilla.org/mozilla-central/rev/8e092ec5fbbd.
Fixed bug 21861 (Disable additional mDNS code to avoid proxy bypasses)
as well.
Mozilla removed the Presentation API piece of this patch in Bug 1697680.
---
netwerk/dns/mdns/libmdns/components.conf | 15 ---------------
netwerk/dns/mdns/libmdns/moz.build | 28 ----------------------------
2 files changed, 43 deletions(-)
diff --git a/netwerk/dns/mdns/libmdns/components.conf b/netwerk/dns/mdns/libmdns/components.conf
index 6e64140c820e..1b50dbf673a4 100644
--- a/netwerk/dns/mdns/libmdns/components.conf
+++ b/netwerk/dns/mdns/libmdns/components.conf
@@ -5,20 +5,5 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
Classes = [
- {
- 'cid': '{14a50f2b-7ff6-48a5-88e3-615fd111f5d3}',
- 'contract_ids': ['@mozilla.org/toolkit/components/mdnsresponder/dns-info;1'],
- 'type': 'mozilla::net::nsDNSServiceInfo',
- 'headers': ['/netwerk/dns/mdns/libmdns/nsDNSServiceInfo.h'],
- },
]
-if buildconfig.substs['MOZ_WIDGET_TOOLKIT'] != 'cocoa':
- Classes += [
- {
- 'cid': '{f9346d98-f27a-4e89-b744-493843416480}',
- 'contract_ids': ['@mozilla.org/toolkit/components/mdnsresponder/dns-sd;1'],
- 'jsm': 'resource://gre/modules/DNSServiceDiscovery.jsm',
- 'constructor': 'nsDNSServiceDiscovery',
- },
- ]
diff --git a/netwerk/dns/mdns/libmdns/moz.build b/netwerk/dns/mdns/libmdns/moz.build
index f9c025fa823e..e6e70a6d803c 100644
--- a/netwerk/dns/mdns/libmdns/moz.build
+++ b/netwerk/dns/mdns/libmdns/moz.build
@@ -4,34 +4,6 @@
# 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/.
-if CONFIG["MOZ_WIDGET_TOOLKIT"] == "cocoa":
- UNIFIED_SOURCES += [
- "MDNSResponderOperator.cpp",
- "MDNSResponderReply.cpp",
- "nsDNSServiceDiscovery.cpp",
- ]
-
- LOCAL_INCLUDES += [
- "/netwerk/base",
- ]
-
-else:
- EXTRA_JS_MODULES += [
- "DNSServiceDiscovery.jsm",
- "fallback/DataReader.jsm",
- "fallback/DataWriter.jsm",
- "fallback/DNSPacket.jsm",
- "fallback/DNSRecord.jsm",
- "fallback/DNSResourceRecord.jsm",
- "fallback/DNSTypes.jsm",
- "fallback/MulticastDNS.jsm",
- ]
-
- if CONFIG["MOZ_WIDGET_TOOLKIT"] == "android":
- EXTRA_JS_MODULES += [
- "MulticastDNSAndroid.jsm",
- ]
-
UNIFIED_SOURCES += [
"nsDNSServiceInfo.cpp",
]
1
0
[tor-browser/tor-browser-91.6.0esr-11.0-1] Bug 16285: Exclude ClearKey system for now
by richard@torproject.org 03 Feb '22
by richard@torproject.org 03 Feb '22
03 Feb '22
commit 61366ad985e11de6e2172037c3fe8964f7d09770
Author: Georg Koppen <gk(a)torproject.org>
Date: Mon May 22 12:44:40 2017 +0000
Bug 16285: Exclude ClearKey system for now
In the past the ClearKey system had not been compiled when specifying
--disable-eme. But that changed and it is even bundled nowadays (see:
Mozilla's bug 1300654). We don't want to ship it right now as the use
case for it is not really visible while the code had security
vulnerabilities in the past.
---
browser/installer/package-manifest.in | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
index 20383c143afe..fb4993acbe7f 100644
--- a/browser/installer/package-manifest.in
+++ b/browser/installer/package-manifest.in
@@ -459,8 +459,8 @@ bin/libfreebl_64int_3.so
#endif
; media
-@RESPATH@/gmp-clearkey/0.1/@DLL_PREFIX@clearkey@DLL_SUFFIX@
-@RESPATH@/gmp-clearkey/0.1/manifest.json
+;@RESPATH@/gmp-clearkey/0.1/@DLL_PREFIX@clearkey@DLL_SUFFIX@
+;@RESPATH@/gmp-clearkey/0.1/manifest.json
#ifdef MOZ_DMD
; DMD
1
0
[tor-browser/tor-browser-91.6.0esr-11.0-1] Bug 16940: After update, load local change notes.
by richard@torproject.org 03 Feb '22
by richard@torproject.org 03 Feb '22
03 Feb '22
commit 392af000046efb5e3591299f9cbc5789adf19dd6
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Wed Nov 25 11:36:20 2015 -0500
Bug 16940: After update, load local change notes.
Add an about:tbupdate page that displays the first section from
TorBrowser/Docs/ChangeLog.txt and includes a link to the remote
post-update page (typically our blog entry for the release).
Always load about:tbupdate in a content process, but implement the
code that reads the file system (changelog) in the chrome process
for compatibility with future sandboxing efforts.
Also fix bug 29440. Now about:tbupdate is styled as a fairly simple
changelog page that is designed to be displayed via a link that is on
about:tor.
---
browser/actors/AboutTBUpdateChild.jsm | 12 +++
browser/actors/AboutTBUpdateParent.jsm | 120 +++++++++++++++++++++
browser/actors/moz.build | 6 ++
.../base/content/abouttbupdate/aboutTBUpdate.css | 74 +++++++++++++
.../base/content/abouttbupdate/aboutTBUpdate.js | 27 +++++
.../base/content/abouttbupdate/aboutTBUpdate.xhtml | 39 +++++++
browser/base/content/browser-siteIdentity.js | 2 +-
browser/base/content/browser.js | 4 +
browser/base/jar.mn | 5 +
browser/components/BrowserContentHandler.jsm | 55 +++++++---
browser/components/BrowserGlue.jsm | 15 +++
browser/components/about/AboutRedirector.cpp | 6 ++
browser/components/about/components.conf | 3 +
browser/components/moz.build | 5 +-
.../locales/en-US/chrome/browser/aboutTBUpdate.dtd | 8 ++
browser/locales/jar.mn | 3 +
toolkit/modules/RemotePageAccessManager.jsm | 5 +
17 files changed, 373 insertions(+), 16 deletions(-)
diff --git a/browser/actors/AboutTBUpdateChild.jsm b/browser/actors/AboutTBUpdateChild.jsm
new file mode 100644
index 000000000000..4670da19b3db
--- /dev/null
+++ b/browser/actors/AboutTBUpdateChild.jsm
@@ -0,0 +1,12 @@
+// Copyright (c) 2020, The Tor Project, Inc.
+// See LICENSE for licensing information.
+//
+// vim: set sw=2 sts=2 ts=8 et syntax=javascript:
+
+var EXPORTED_SYMBOLS = ["AboutTBUpdateChild"];
+
+const { RemotePageChild } = ChromeUtils.import(
+ "resource://gre/actors/RemotePageChild.jsm"
+);
+
+class AboutTBUpdateChild extends RemotePageChild {}
diff --git a/browser/actors/AboutTBUpdateParent.jsm b/browser/actors/AboutTBUpdateParent.jsm
new file mode 100644
index 000000000000..56a10394565a
--- /dev/null
+++ b/browser/actors/AboutTBUpdateParent.jsm
@@ -0,0 +1,120 @@
+// Copyright (c) 2020, The Tor Project, Inc.
+// See LICENSE for licensing information.
+//
+// vim: set sw=2 sts=2 ts=8 et syntax=javascript:
+
+"use strict";
+
+this.EXPORTED_SYMBOLS = ["AboutTBUpdateParent"];
+
+const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
+const { NetUtil } = ChromeUtils.import("resource://gre/modules/NetUtil.jsm");
+const { AppConstants } = ChromeUtils.import(
+ "resource://gre/modules/AppConstants.jsm"
+);
+
+const kRequestUpdateMessageName = "FetchUpdateData";
+
+/**
+ * This code provides services to the about:tbupdate page. Whenever
+ * about:tbupdate needs to do something chrome-privileged, it sends a
+ * message that's handled here. It is modeled after Mozilla's about:home
+ * implementation.
+ */
+class AboutTBUpdateParent extends JSWindowActorParent {
+ receiveMessage(aMessage) {
+ if (aMessage.name == kRequestUpdateMessageName) {
+ return this.releaseNoteInfo;
+ }
+ return undefined;
+ }
+
+ get moreInfoURL() {
+ try {
+ return Services.prefs.getCharPref("torbrowser.post_update.url");
+ } catch (e) {}
+
+ // Use the default URL as a fallback.
+ return Services.urlFormatter.formatURLPref("startup.homepage_override_url");
+ }
+
+ // Read the text from the beginning of the changelog file that is located
+ // at TorBrowser/Docs/ChangeLog.txt and return an object that contains
+ // the following properties:
+ // version e.g., Tor Browser 8.5
+ // releaseDate e.g., March 31 2019
+ // releaseNotes details of changes (lines 2 - end of ChangeLog.txt)
+ // We attempt to parse the first line of ChangeLog.txt to extract the
+ // version and releaseDate. If parsing fails, we return the entire first
+ // line in version and omit releaseDate.
+ //
+ // On Mac OS, when building with --enable-tor-browser-data-outside-app-dir
+ // to support Gatekeeper signing, the ChangeLog.txt file is located in
+ // TorBrowser.app/Contents/Resources/TorBrowser/Docs/.
+ get releaseNoteInfo() {
+ let info = { moreInfoURL: this.moreInfoURL };
+
+ try {
+ let f;
+ if (AppConstants.TOR_BROWSER_DATA_OUTSIDE_APP_DIR) {
+ // "XREExeF".parent is the directory that contains firefox, i.e.,
+ // Browser/ or, on Mac OS, TorBrowser.app/Contents/MacOS/.
+ f = Services.dirsvc.get("XREExeF", Ci.nsIFile).parent;
+ if (AppConstants.platform === "macosx") {
+ f = f.parent;
+ f.append("Resources");
+ }
+ f.append("TorBrowser");
+ } else {
+ // "DefProfRt" is .../TorBrowser/Data/Browser
+ f = Services.dirsvc.get("DefProfRt", Ci.nsIFile);
+ f = f.parent.parent; // Remove "Data/Browser"
+ }
+
+ f.append("Docs");
+ f.append("ChangeLog.txt");
+
+ let fs = Cc["@mozilla.org/network/file-input-stream;1"].createInstance(
+ Ci.nsIFileInputStream
+ );
+ fs.init(f, -1, 0, 0);
+ let s = NetUtil.readInputStreamToString(fs, fs.available());
+ fs.close();
+
+ // Truncate at the first empty line.
+ s = s.replace(/[\r\n][\r\n][\s\S]*$/m, "");
+
+ // Split into first line (version plus releaseDate) and
+ // remainder (releaseNotes).
+ // This first match() uses multiline mode with two capture groups:
+ // first line: (.*$)
+ // remaining lines: ([\s\S]+)
+ // [\s\S] matches all characters including end of line. This trick
+ // is needed because when using JavaScript regex in multiline mode,
+ // . does not match an end of line character.
+ let matchArray = s.match(/(.*$)\s*([\s\S]+)/m);
+ if (matchArray && matchArray.length == 3) {
+ info.releaseNotes = matchArray[2];
+ let line1 = matchArray[1];
+ // Extract the version and releaseDate. The first line looks like:
+ // Tor Browser 8.5 -- May 1 2019
+ // The regex uses two capture groups:
+ // text that does not include a hyphen: (^[^-]*)
+ // remaining text: (.*$)
+ // In between we match optional whitespace, one or more hyphens, and
+ // optional whitespace by using: \s*-+\s*
+ matchArray = line1.match(/(^[^-]*)\s*-+\s*(.*$)/);
+ if (matchArray && matchArray.length == 3) {
+ info.version = matchArray[1];
+ info.releaseDate = matchArray[2];
+ } else {
+ info.version = line1; // Match failed: return entire line in version.
+ }
+ } else {
+ info.releaseNotes = s; // Only one line: use as releaseNotes.
+ }
+ } catch (e) {}
+
+ return info;
+ }
+}
diff --git a/browser/actors/moz.build b/browser/actors/moz.build
index 626ee52d34f2..0d92d270f58a 100644
--- a/browser/actors/moz.build
+++ b/browser/actors/moz.build
@@ -91,3 +91,9 @@ FINAL_TARGET_FILES.actors += [
BROWSER_CHROME_MANIFESTS += [
"test/browser/browser.ini",
]
+
+if CONFIG["TOR_BROWSER_UPDATE"]:
+ FINAL_TARGET_FILES.actors += [
+ "AboutTBUpdateChild.jsm",
+ "AboutTBUpdateParent.jsm",
+ ]
diff --git a/browser/base/content/abouttbupdate/aboutTBUpdate.css b/browser/base/content/abouttbupdate/aboutTBUpdate.css
new file mode 100644
index 000000000000..7c1a34b77f17
--- /dev/null
+++ b/browser/base/content/abouttbupdate/aboutTBUpdate.css
@@ -0,0 +1,74 @@
+/*
+ * Copyright (c) 2019, The Tor Project, Inc.
+ * See LICENSE for licensing information.
+ *
+ * vim: set sw=2 sts=2 ts=8 et syntax=css:
+ */
+
+:root {
+ --abouttor-text-color: white;
+ --abouttor-bg-toron-color: #420C5D;
+}
+
+body {
+ font-family: Helvetica, Arial, sans-serif;
+ color: var(--abouttor-text-color);
+ background-color: var(--abouttor-bg-toron-color);
+ background-attachment: fixed;
+ background-size: 100% 100%;
+}
+
+a {
+ color: var(--abouttor-text-color);
+}
+
+.two-column-grid {
+ display: inline-grid;
+ grid-template-columns: auto auto;
+ grid-column-gap: 50px;
+ margin: 10px 0px 0px 50px;
+}
+
+.two-column-grid div {
+ margin-top: 40px;
+ align-self: baseline; /* Align baseline of text across the row. */
+}
+
+.label-column {
+ font-size: 14px;
+ font-weight: 400;
+}
+
+/*
+ * Use a reduced top margin to bring the row that contains the
+ * "visit our website" link closer to the row that precedes it. This
+ * looks better because the "visit our website" row does not have a
+ * label in the left column.
+ */
+div.more-info-row {
+ margin-top: 5px;
+ font-size: 14px;
+}
+
+#version-content {
+ font-size: 50px;
+ font-weight: 300;
+}
+
+body:not([havereleasedate]) .release-date-cell {
+ display: none;
+}
+
+#releasedate-content {
+ font-size: 17px;
+}
+
+#releasenotes-label {
+ align-self: start; /* Anchor "Release Notes" label at the top. */
+}
+
+#releasenotes-content {
+ font-family: monospace;
+ font-size: 15px;
+ white-space: pre;
+}
diff --git a/browser/base/content/abouttbupdate/aboutTBUpdate.js b/browser/base/content/abouttbupdate/aboutTBUpdate.js
new file mode 100644
index 000000000000..ec070e2cb131
--- /dev/null
+++ b/browser/base/content/abouttbupdate/aboutTBUpdate.js
@@ -0,0 +1,27 @@
+// Copyright (c) 2020, The Tor Project, Inc.
+// See LICENSE for licensing information.
+//
+// vim: set sw=2 sts=2 ts=8 et syntax=javascript:
+
+/* eslint-env mozilla/frame-script */
+
+// aData may contain the following string properties:
+// version
+// releaseDate
+// moreInfoURL
+// releaseNotes
+function onUpdate(aData) {
+ document.getElementById("version-content").textContent = aData.version;
+ if (aData.releaseDate) {
+ document.body.setAttribute("havereleasedate", "true");
+ document.getElementById("releasedate-content").textContent =
+ aData.releaseDate;
+ }
+ if (aData.moreInfoURL) {
+ document.getElementById("infolink").setAttribute("href", aData.moreInfoURL);
+ }
+ document.getElementById("releasenotes-content").textContent =
+ aData.releaseNotes;
+}
+
+RPMSendQuery("FetchUpdateData").then(onUpdate);
diff --git a/browser/base/content/abouttbupdate/aboutTBUpdate.xhtml b/browser/base/content/abouttbupdate/aboutTBUpdate.xhtml
new file mode 100644
index 000000000000..8489cfef5083
--- /dev/null
+++ b/browser/base/content/abouttbupdate/aboutTBUpdate.xhtml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE html [
+ <!ENTITY % htmlDTD
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "DTD/xhtml1-strict.dtd">
+ %htmlDTD;
+ <!ENTITY % globalDTD SYSTEM "chrome://global/locale/global.dtd">
+ %globalDTD;
+ <!ENTITY % tbUpdateDTD SYSTEM "chrome://browser/locale/aboutTBUpdate.dtd">
+ %tbUpdateDTD;
+]>
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <meta http-equiv="Content-Security-Policy" content="default-src chrome:; object-src 'none'" />
+ <title>&aboutTBUpdate.changelogTitle;</title>
+ <link rel="stylesheet" type="text/css"
+ href="chrome://browser/content/abouttbupdate/aboutTBUpdate.css"/>
+ <script src="chrome://browser/content/abouttbupdate/aboutTBUpdate.js"
+ type="text/javascript"/>
+</head>
+<body dir="&locale.dir;">
+<div class="two-column-grid">
+ <div class="label-column">&aboutTBUpdate.version;</div>
+ <div id="version-content"/>
+
+ <div class="label-column release-date-cell">&aboutTBUpdate.releaseDate;</div>
+ <div id="releasedate-content" class="release-date-cell"/>
+
+ <div class="more-info-row"/>
+ <div class="more-info-row">&aboutTBUpdate.linkPrefix;<a id="infolink">&aboutTBUpdate.linkLabel;</a>&aboutTBUpdate.linkSuffix;</div>
+
+ <div id="releasenotes-label"
+ class="label-column">&aboutTBUpdate.releaseNotes;</div>
+ <div id="releasenotes-content"></div>
+</div>
+</body>
+</html>
diff --git a/browser/base/content/browser-siteIdentity.js b/browser/base/content/browser-siteIdentity.js
index 859ebf5eaa3f..91940db44ca4 100644
--- a/browser/base/content/browser-siteIdentity.js
+++ b/browser/base/content/browser-siteIdentity.js
@@ -57,7 +57,7 @@ var gIdentityHandler = {
* RegExp used to decide if an about url should be shown as being part of
* the browser UI.
*/
- _secureInternalPages: /^(?:accounts|addons|cache|certificate|config|crashes|downloads|license|logins|preferences|protections|rights|sessionrestore|support|welcomeback|ion)(?:[?#]|$)/i,
+ _secureInternalPages: (AppConstants.TOR_BROWSER_UPDATE ? /^(?:accounts|addons|cache|certificate|config|crashes|downloads|license|logins|preferences|protections|rights|sessionrestore|support|welcomeback|ion|tor|tbupdate)(?:[?#]|$)/i : /^(?:accounts|addons|cache|certificate|config|crashes|downloads|license|logins|preferences|protections|rights|sessionrestore|support|welcomeback|ion|tor)(?:[?#]|$)/i),
/**
* Whether the established HTTPS connection is considered "broken".
diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js
index 566976b6d7aa..eb7ec063f4b8 100644
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -642,6 +642,10 @@ var gInitialPages = [
"about:welcome",
];
+if (AppConstants.TOR_BROWSER_UPDATE) {
+ gInitialPages.push("about:tbupdate");
+}
+
function isInitialPage(url) {
if (!(url instanceof Ci.nsIURI)) {
try {
diff --git a/browser/base/jar.mn b/browser/base/jar.mn
index 7be13da2dd5d..6554f6a5707e 100644
--- a/browser/base/jar.mn
+++ b/browser/base/jar.mn
@@ -33,6 +33,11 @@ browser.jar:
content/browser/aboutTabCrashed.css (content/aboutTabCrashed.css)
content/browser/aboutTabCrashed.js (content/aboutTabCrashed.js)
content/browser/aboutTabCrashed.xhtml (content/aboutTabCrashed.xhtml)
+#ifdef TOR_BROWSER_UPDATE
+ content/browser/abouttbupdate/aboutTBUpdate.xhtml (content/abouttbupdate/aboutTBUpdate.xhtml)
+ content/browser/abouttbupdate/aboutTBUpdate.js (content/abouttbupdate/aboutTBUpdate.js)
+ content/browser/abouttbupdate/aboutTBUpdate.css (content/abouttbupdate/aboutTBUpdate.css)
+#endif
* content/browser/browser.css (content/browser.css)
content/browser/browser.js (content/browser.js)
* content/browser/browser.xhtml (content/browser.xhtml)
diff --git a/browser/components/BrowserContentHandler.jsm b/browser/components/BrowserContentHandler.jsm
index d8e24e641447..9f6c8a33a730 100644
--- a/browser/components/BrowserContentHandler.jsm
+++ b/browser/components/BrowserContentHandler.jsm
@@ -629,6 +629,23 @@ nsBrowserContentHandler.prototype = {
}
}
+ // Retrieve the home page early so we can compare it against about:tor
+ // to decide whether or not we need an override page (second tab) after
+ // an update was applied.
+ var startPage = "";
+ try {
+ var choice = prefb.getIntPref("browser.startup.page");
+ if (choice == 1 || choice == 3) {
+ startPage = HomePage.get();
+ }
+ } catch (e) {
+ Cu.reportError(e);
+ }
+
+ if (startPage == "about:blank") {
+ startPage = "";
+ }
+
var override;
var overridePage = "";
var additionalPage = "";
@@ -674,6 +691,16 @@ nsBrowserContentHandler.prototype = {
// into account because that requires waiting for the session file
// to be read. If a crash occurs after updating, before restarting,
// we may open the startPage in addition to restoring the session.
+ //
+ // Tor Browser: Instead of opening the post-update "override page"
+ // directly, we ensure that about:tor will be opened in a special
+ // mode that notifies the user that their browser was updated.
+ // The about:tor page will provide a link to the override page
+ // where the user can learn more about the update, as well as a
+ // link to the Tor Browser changelog page (about:tbupdate). The
+ // override page URL comes from the openURL attribute within the
+ // updates.xml file or, if no showURL action is present, from the
+ // startup.homepage_override_url pref.
willRestoreSession = SessionStartup.isAutomaticRestoreEnabled();
overridePage = Services.urlFormatter.formatURLPref(
@@ -693,6 +720,20 @@ nsBrowserContentHandler.prototype = {
overridePage = overridePage.replace("%OLD_VERSION%", old_mstone);
overridePage = overridePage.replace("%OLD_TOR_BROWSER_VERSION%",
old_tbversion);
+#ifdef TOR_BROWSER_UPDATE
+ if (overridePage)
+ {
+ prefb.setCharPref("torbrowser.post_update.url", overridePage);
+ prefb.setBoolPref("torbrowser.post_update.shouldNotify", true);
+ // If the user's homepage is about:tor, we will inform them
+ // about the update on that page; otherwise, we arrange to
+ // open about:tor in a secondary tab.
+ if (startPage === "about:tor")
+ overridePage = "";
+ else
+ overridePage = "about:tor";
+ }
+#endif
break;
case OVERRIDE_NEW_BUILD_ID:
if (UpdateManager.readyUpdate) {
@@ -765,20 +806,6 @@ nsBrowserContentHandler.prototype = {
}
}
- var startPage = "";
- try {
- var choice = prefb.getIntPref("browser.startup.page");
- if (choice == 1 || choice == 3) {
- startPage = HomePage.get();
- }
- } catch (e) {
- Cu.reportError(e);
- }
-
- if (startPage == "about:blank") {
- startPage = "";
- }
-
let skipStartPage =
override == OVERRIDE_NEW_PROFILE &&
prefb.getBoolPref("browser.startup.firstrunSkipsHomepage");
diff --git a/browser/components/BrowserGlue.jsm b/browser/components/BrowserGlue.jsm
index d23d72a1afc8..e062d774f5f5 100644
--- a/browser/components/BrowserGlue.jsm
+++ b/browser/components/BrowserGlue.jsm
@@ -749,6 +749,21 @@ let JSWINDOWACTORS = {
},
};
+if (AppConstants.TOR_BROWSER_UPDATE) {
+ JSWINDOWACTORS["AboutTBUpdate"] = {
+ parent: {
+ moduleURI: "resource:///actors/AboutTBUpdateParent.jsm",
+ },
+ child: {
+ moduleURI: "resource:///actors/AboutTBUpdateChild.jsm",
+ events: {
+ DOMWindowCreated: { capture: true },
+ },
+ },
+ matches: ["about:tbupdate"],
+ };
+}
+
(function earlyBlankFirstPaint() {
let startTime = Cu.now();
if (
diff --git a/browser/components/about/AboutRedirector.cpp b/browser/components/about/AboutRedirector.cpp
index 5412a65c315f..956e25c818e1 100644
--- a/browser/components/about/AboutRedirector.cpp
+++ b/browser/components/about/AboutRedirector.cpp
@@ -128,6 +128,12 @@ static const RedirEntry kRedirMap[] = {
nsIAboutModule::URI_CAN_LOAD_IN_PRIVILEGEDABOUT_PROCESS},
{"ion", "chrome://browser/content/ion.html",
nsIAboutModule::ALLOW_SCRIPT | nsIAboutModule::HIDE_FROM_ABOUTABOUT},
+#ifdef TOR_BROWSER_UPDATE
+ {"tbupdate", "chrome://browser/content/abouttbupdate/aboutTBUpdate.xhtml",
+ nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
+ nsIAboutModule::URI_MUST_LOAD_IN_CHILD | nsIAboutModule::ALLOW_SCRIPT |
+ nsIAboutModule::HIDE_FROM_ABOUTABOUT},
+#endif
};
static nsAutoCString GetAboutModuleName(nsIURI* aURI) {
diff --git a/browser/components/about/components.conf b/browser/components/about/components.conf
index 0c9597ff9fb4..a880a161a0f2 100644
--- a/browser/components/about/components.conf
+++ b/browser/components/about/components.conf
@@ -32,6 +32,9 @@ pages = [
'welcomeback',
]
+if defined('TOR_BROWSER_UPDATE'):
+ pages.append('tbupdate')
+
Classes = [
{
'cid': '{7e4bb6ad-2fc4-4dc6-89ef-23e8e5ccf980}',
diff --git a/browser/components/moz.build b/browser/components/moz.build
index 5f8780e01c65..c56811d36a14 100644
--- a/browser/components/moz.build
+++ b/browser/components/moz.build
@@ -86,11 +86,14 @@ EXTRA_COMPONENTS += [
]
EXTRA_JS_MODULES += [
- "BrowserContentHandler.jsm",
"BrowserGlue.jsm",
"distribution.js",
]
+EXTRA_PP_JS_MODULES += [
+ "BrowserContentHandler.jsm",
+]
+
BROWSER_CHROME_MANIFESTS += [
"safebrowsing/content/test/browser.ini",
"tests/browser/browser.ini",
diff --git a/browser/locales/en-US/chrome/browser/aboutTBUpdate.dtd b/browser/locales/en-US/chrome/browser/aboutTBUpdate.dtd
new file mode 100644
index 000000000000..2d1e59b40eaf
--- /dev/null
+++ b/browser/locales/en-US/chrome/browser/aboutTBUpdate.dtd
@@ -0,0 +1,8 @@
+<!ENTITY aboutTBUpdate.changelogTitle "Tor Browser Changelog">
+<!ENTITY aboutTBUpdate.updated "Tor Browser has been updated.">
+<!ENTITY aboutTBUpdate.linkPrefix "For the most up-to-date information about this release, ">
+<!ENTITY aboutTBUpdate.linkLabel "visit our website">
+<!ENTITY aboutTBUpdate.linkSuffix ".">
+<!ENTITY aboutTBUpdate.version "Version">
+<!ENTITY aboutTBUpdate.releaseDate "Release Date">
+<!ENTITY aboutTBUpdate.releaseNotes "Release Notes">
diff --git a/browser/locales/jar.mn b/browser/locales/jar.mn
index 3b7963c854e1..c6fdccea7d70 100644
--- a/browser/locales/jar.mn
+++ b/browser/locales/jar.mn
@@ -20,6 +20,9 @@
locale/browser/accounts.properties (%chrome/browser/accounts.properties)
locale/browser/app-extension-fields.properties (%chrome/browser/app-extension-fields.properties)
+#ifdef TOR_BROWSER_UPDATE
+ locale/browser/aboutTBUpdate.dtd (%chrome/browser/aboutTBUpdate.dtd)
+#endif
locale/browser/browser.dtd (%chrome/browser/browser.dtd)
locale/browser/browser.properties (%chrome/browser/browser.properties)
locale/browser/customizableui/customizableWidgets.properties (%chrome/browser/customizableui/customizableWidgets.properties)
diff --git a/toolkit/modules/RemotePageAccessManager.jsm b/toolkit/modules/RemotePageAccessManager.jsm
index 50fb4ea8d417..e5111ff83782 100644
--- a/toolkit/modules/RemotePageAccessManager.jsm
+++ b/toolkit/modules/RemotePageAccessManager.jsm
@@ -213,6 +213,11 @@ let RemotePageAccessManager = {
RPMAddMessageListener: ["*"],
RPMRemoveMessageListener: ["*"],
},
+ "about:tbupdate": {
+ RPMSendQuery: [
+ "FetchUpdateData",
+ ],
+ },
},
/**
1
0
[tor-browser/tor-browser-91.6.0esr-11.0-1] Omnibox: Add DDG, Startpage, Disconnect, Youtube, Twitter; remove Amazon, eBay, bing
by richard@torproject.org 03 Feb '22
by richard@torproject.org 03 Feb '22
03 Feb '22
commit 9418e60f4461dfa0e18860efcc1cfe5008ae751a
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Fri May 5 03:41:57 2017 -0700
Omnibox: Add DDG, Startpage, Disconnect, Youtube, Twitter; remove Amazon, eBay, bing
eBay and Amazon don't treat Tor users very well. Accounts often get locked and
payments reversed.
Also:
Bug 16322: Update DuckDuckGo search engine
We are replacing the clearnet URL with an onion service one (thanks to a
patch by a cypherpunk) and are removing the duplicated DDG search
engine. Duplicating DDG happend due to bug 1061736 where Mozilla
included DDG itself into Firefox. Interestingly, this caused breaking
the DDG search if JavaScript is disabled as the Mozilla engine, which
gets loaded earlier, does not use the html version of the search page.
Moreover, the Mozilla engine tracked where the users were searching from
by adding a respective parameter to the search query. We got rid of that
feature as well.
Also:
This fixes bug 20809: the DuckDuckGo team has changed its server-side
code in a way that lets users with JavaScript enabled use the default
landing page while those without JavaScript available get redirected
directly to the non-JS page. We adapt the search engine URLs
accordingly.
Also fixes bug 29798 by making sure we only specify the Google search
engine we actually ship an .xml file for.
Also regression tests.
squash! Omnibox: Add DDG, Startpage, Disconnect, Youtube, Twitter; remove Amazon, eBay, bing
Bug 40494: Update Startpage search provider
squash! Omnibox: Add DDG, Startpage, Disconnect, Youtube, Twitter; remove Amazon, eBay, bing
Bug 40438: Add Blockchair as a search engine
---
.../search/extensions/blockchair-onion/favicon.png | Bin 0 -> 3116 bytes
.../extensions/blockchair-onion/manifest.json | 26 ++++++++++++++
.../search/extensions/blockchair/favicon.png | Bin 0 -> 2898 bytes
.../search/extensions/blockchair/manifest.json | 26 ++++++++++++++
.../search/extensions/ddg-onion/favicon.ico | Bin 0 -> 973 bytes
.../search/extensions/ddg-onion/manifest.json | 26 ++++++++++++++
.../components/search/extensions/ddg/favicon.ico | Bin 5430 -> 0 bytes
.../components/search/extensions/ddg/favicon.png | Bin 0 -> 1150 bytes
.../components/search/extensions/ddg/manifest.json | 38 ++-------------------
.../extensions/google/_locales/b-1-d/messages.json | 23 -------------
.../extensions/google/_locales/b-1-e/messages.json | 23 -------------
.../extensions/google/_locales/b-d/messages.json | 23 -------------
.../extensions/google/_locales/b-e/messages.json | 23 -------------
.../extensions/google/_locales/en/messages.json | 24 -------------
.../search/extensions/google/manifest.json | 17 +++++----
.../search/extensions/startpage/favicon.png | Bin 0 -> 1150 bytes
.../search/extensions/startpage/manifest.json | 26 ++++++++++++++
.../search/extensions/twitter/favicon.ico | Bin 0 -> 1650 bytes
.../search/extensions/twitter/manifest.json | 26 ++++++++++++++
.../extensions/wikipedia/_locales/NN/messages.json | 20 -----------
.../extensions/wikipedia/_locales/NO/messages.json | 20 -----------
.../extensions/wikipedia/_locales/af/messages.json | 20 -----------
.../extensions/wikipedia/_locales/an/messages.json | 20 -----------
.../extensions/wikipedia/_locales/ar/messages.json | 20 -----------
.../wikipedia/_locales/ast/messages.json | 20 -----------
.../extensions/wikipedia/_locales/az/messages.json | 20 -----------
.../wikipedia/_locales/be-tarask/messages.json | 20 -----------
.../extensions/wikipedia/_locales/be/messages.json | 20 -----------
.../extensions/wikipedia/_locales/bg/messages.json | 20 -----------
.../extensions/wikipedia/_locales/bn/messages.json | 20 -----------
.../extensions/wikipedia/_locales/br/messages.json | 20 -----------
.../extensions/wikipedia/_locales/bs/messages.json | 20 -----------
.../extensions/wikipedia/_locales/ca/messages.json | 20 -----------
.../extensions/wikipedia/_locales/cy/messages.json | 20 -----------
.../extensions/wikipedia/_locales/cz/messages.json | 20 -----------
.../extensions/wikipedia/_locales/da/messages.json | 20 -----------
.../extensions/wikipedia/_locales/de/messages.json | 20 -----------
.../wikipedia/_locales/dsb/messages.json | 20 -----------
.../extensions/wikipedia/_locales/el/messages.json | 20 -----------
.../extensions/wikipedia/_locales/en/messages.json | 20 -----------
.../extensions/wikipedia/_locales/eo/messages.json | 20 -----------
.../extensions/wikipedia/_locales/es/messages.json | 20 -----------
.../extensions/wikipedia/_locales/et/messages.json | 20 -----------
.../extensions/wikipedia/_locales/eu/messages.json | 20 -----------
.../extensions/wikipedia/_locales/fa/messages.json | 20 -----------
.../extensions/wikipedia/_locales/fi/messages.json | 20 -----------
.../extensions/wikipedia/_locales/fr/messages.json | 20 -----------
.../wikipedia/_locales/fy-NL/messages.json | 20 -----------
.../wikipedia/_locales/ga-IE/messages.json | 20 -----------
.../extensions/wikipedia/_locales/gd/messages.json | 20 -----------
.../extensions/wikipedia/_locales/gl/messages.json | 20 -----------
.../extensions/wikipedia/_locales/gn/messages.json | 20 -----------
.../extensions/wikipedia/_locales/gu/messages.json | 20 -----------
.../extensions/wikipedia/_locales/he/messages.json | 20 -----------
.../extensions/wikipedia/_locales/hi/messages.json | 20 -----------
.../extensions/wikipedia/_locales/hr/messages.json | 20 -----------
.../wikipedia/_locales/hsb/messages.json | 20 -----------
.../extensions/wikipedia/_locales/hu/messages.json | 20 -----------
.../extensions/wikipedia/_locales/hy/messages.json | 20 -----------
.../extensions/wikipedia/_locales/ia/messages.json | 20 -----------
.../extensions/wikipedia/_locales/id/messages.json | 20 -----------
.../extensions/wikipedia/_locales/is/messages.json | 20 -----------
.../extensions/wikipedia/_locales/it/messages.json | 20 -----------
.../extensions/wikipedia/_locales/ja/messages.json | 20 -----------
.../extensions/wikipedia/_locales/ka/messages.json | 20 -----------
.../wikipedia/_locales/kab/messages.json | 20 -----------
.../extensions/wikipedia/_locales/kk/messages.json | 20 -----------
.../extensions/wikipedia/_locales/km/messages.json | 20 -----------
.../extensions/wikipedia/_locales/kn/messages.json | 20 -----------
.../extensions/wikipedia/_locales/kr/messages.json | 20 -----------
.../wikipedia/_locales/lij/messages.json | 20 -----------
.../extensions/wikipedia/_locales/lo/messages.json | 20 -----------
.../extensions/wikipedia/_locales/lt/messages.json | 20 -----------
.../wikipedia/_locales/ltg/messages.json | 20 -----------
.../extensions/wikipedia/_locales/lv/messages.json | 20 -----------
.../extensions/wikipedia/_locales/mk/messages.json | 20 -----------
.../extensions/wikipedia/_locales/mr/messages.json | 20 -----------
.../extensions/wikipedia/_locales/ms/messages.json | 20 -----------
.../extensions/wikipedia/_locales/my/messages.json | 20 -----------
.../extensions/wikipedia/_locales/ne/messages.json | 20 -----------
.../extensions/wikipedia/_locales/nl/messages.json | 20 -----------
.../extensions/wikipedia/_locales/oc/messages.json | 20 -----------
.../extensions/wikipedia/_locales/pa/messages.json | 20 -----------
.../extensions/wikipedia/_locales/pl/messages.json | 20 -----------
.../extensions/wikipedia/_locales/pt/messages.json | 20 -----------
.../extensions/wikipedia/_locales/rm/messages.json | 20 -----------
.../extensions/wikipedia/_locales/ro/messages.json | 20 -----------
.../extensions/wikipedia/_locales/ru/messages.json | 20 -----------
.../extensions/wikipedia/_locales/si/messages.json | 20 -----------
.../extensions/wikipedia/_locales/sk/messages.json | 20 -----------
.../extensions/wikipedia/_locales/sl/messages.json | 20 -----------
.../extensions/wikipedia/_locales/sq/messages.json | 20 -----------
.../extensions/wikipedia/_locales/sr/messages.json | 20 -----------
.../wikipedia/_locales/sv-SE/messages.json | 20 -----------
.../extensions/wikipedia/_locales/ta/messages.json | 20 -----------
.../extensions/wikipedia/_locales/te/messages.json | 20 -----------
.../extensions/wikipedia/_locales/th/messages.json | 20 -----------
.../extensions/wikipedia/_locales/tl/messages.json | 20 -----------
.../extensions/wikipedia/_locales/tr/messages.json | 20 -----------
.../extensions/wikipedia/_locales/uk/messages.json | 20 -----------
.../extensions/wikipedia/_locales/ur/messages.json | 20 -----------
.../extensions/wikipedia/_locales/uz/messages.json | 20 -----------
.../extensions/wikipedia/_locales/vi/messages.json | 20 -----------
.../extensions/wikipedia/_locales/wo/messages.json | 20 -----------
.../wikipedia/_locales/zh-CN/messages.json | 20 -----------
.../wikipedia/_locales/zh-TW/messages.json | 20 -----------
.../search/extensions/wikipedia/manifest.json | 15 ++++----
.../components/search/extensions/yahoo/favicon.ico | Bin 0 -> 5430 bytes
.../search/extensions/yahoo/manifest.json | 28 +++++++++++++++
.../search/extensions/youtube/favicon.ico | Bin 0 -> 1150 bytes
.../search/extensions/youtube/manifest.json | 26 ++++++++++++++
tbb-tests/browser_tor_omnibox.js | 20 +++++++++++
toolkit/components/search/SearchService.jsm | 30 +++++++---------
113 files changed, 235 insertions(+), 1925 deletions(-)
diff --git a/browser/components/search/extensions/blockchair-onion/favicon.png b/browser/components/search/extensions/blockchair-onion/favicon.png
new file mode 100644
index 000000000000..92d832ded172
Binary files /dev/null and b/browser/components/search/extensions/blockchair-onion/favicon.png differ
diff --git a/browser/components/search/extensions/blockchair-onion/manifest.json b/browser/components/search/extensions/blockchair-onion/manifest.json
new file mode 100644
index 000000000000..e7d15ee50247
--- /dev/null
+++ b/browser/components/search/extensions/blockchair-onion/manifest.json
@@ -0,0 +1,26 @@
+{
+ "name": "BlockchairOnion",
+ "description": "Blockchair Onion",
+ "manifest_version": 2,
+ "version": "1.0",
+ "applications": {
+ "gecko": {
+ "id": "blockchair-onion(a)search.mozilla.org"
+ }
+ },
+ "hidden": true,
+ "icons": {
+ "16": "favicon.png"
+ },
+ "web_accessible_resources": [
+ "favicon.png"
+ ],
+ "chrome_settings_overrides": {
+ "search_provider": {
+ "name": "BlockchairOnion",
+ "search_url": "http://blkchairbknpn73cfjhevhla7rkp4ed5gg2knctvv7it4lioy22defid.onion/search",
+ "search_form": "http://blkchairbknpn73cfjhevhla7rkp4ed5gg2knctvv7it4lioy22defid.onion/searc…",
+ "search_url_post_params": "q={searchTerms}"
+ }
+ }
+}
diff --git a/browser/components/search/extensions/blockchair/favicon.png b/browser/components/search/extensions/blockchair/favicon.png
new file mode 100644
index 000000000000..f4869e87e008
Binary files /dev/null and b/browser/components/search/extensions/blockchair/favicon.png differ
diff --git a/browser/components/search/extensions/blockchair/manifest.json b/browser/components/search/extensions/blockchair/manifest.json
new file mode 100644
index 000000000000..0f16b9049cf2
--- /dev/null
+++ b/browser/components/search/extensions/blockchair/manifest.json
@@ -0,0 +1,26 @@
+{
+ "name": "Blockchair",
+ "description": "Blockchair",
+ "manifest_version": 2,
+ "version": "1.0",
+ "applications": {
+ "gecko": {
+ "id": "blockchair(a)search.mozilla.org"
+ }
+ },
+ "hidden": true,
+ "icons": {
+ "16": "favicon.png"
+ },
+ "web_accessible_resources": [
+ "favicon.png"
+ ],
+ "chrome_settings_overrides": {
+ "search_provider": {
+ "name": "Blockchair",
+ "search_url": "https://blockchair.com/search",
+ "search_form": "https://blockchair.com/search/?q={searchTerms}",
+ "search_url_get_params": "q={searchTerms}"
+ }
+ }
+}
diff --git a/browser/components/search/extensions/ddg-onion/favicon.ico b/browser/components/search/extensions/ddg-onion/favicon.ico
new file mode 100644
index 000000000000..13c325f6585f
Binary files /dev/null and b/browser/components/search/extensions/ddg-onion/favicon.ico differ
diff --git a/browser/components/search/extensions/ddg-onion/manifest.json b/browser/components/search/extensions/ddg-onion/manifest.json
new file mode 100644
index 000000000000..49f3c116106b
--- /dev/null
+++ b/browser/components/search/extensions/ddg-onion/manifest.json
@@ -0,0 +1,26 @@
+{
+ "name": "DuckDuckGoOnion",
+ "description": "Duck Duck Go Onion",
+ "manifest_version": 2,
+ "version": "1.0",
+ "applications": {
+ "gecko": {
+ "id": "ddg-onion(a)search.mozilla.org"
+ }
+ },
+ "hidden": true,
+ "icons": {
+ "16": "favicon.ico"
+ },
+ "web_accessible_resources": [
+ "favicon.ico"
+ ],
+ "chrome_settings_overrides": {
+ "search_provider": {
+ "name": "DuckDuckGoOnion",
+ "search_url": "https://duckduckgogg42xjoc72x3sjasowoarfbgcmvfimaftt6twagswzczad.onion",
+ "search_form": "https://duckduckgogg42xjoc72x3sjasowoarfbgcmvfimaftt6twagswzczad.onion/?q={…",
+ "search_url_get_params": "q={searchTerms}"
+ }
+ }
+}
diff --git a/browser/components/search/extensions/ddg/favicon.ico b/browser/components/search/extensions/ddg/favicon.ico
deleted file mode 100644
index 560000b03e2c..000000000000
Binary files a/browser/components/search/extensions/ddg/favicon.ico and /dev/null differ
diff --git a/browser/components/search/extensions/ddg/favicon.png b/browser/components/search/extensions/ddg/favicon.png
new file mode 100644
index 000000000000..c853b95b89ef
Binary files /dev/null and b/browser/components/search/extensions/ddg/favicon.png differ
diff --git a/browser/components/search/extensions/ddg/manifest.json b/browser/components/search/extensions/ddg/manifest.json
index 782b860a679f..4a3b0ad20fe9 100644
--- a/browser/components/search/extensions/ddg/manifest.json
+++ b/browser/components/search/extensions/ddg/manifest.json
@@ -10,50 +10,18 @@
},
"hidden": true,
"icons": {
- "16": "favicon.ico"
+ "16": "favicon.png"
},
"web_accessible_resources": [
- "favicon.ico"
+ "favicon.png"
],
"chrome_settings_overrides": {
"search_provider": {
"keyword": ["@duckduckgo", "@ddg"],
"name": "DuckDuckGo",
- "search_url": "https://duckduckgo.com/",
+ "search_url": "https://duckduckgo.com",
"search_form": "https://duckduckgo.com/?q={searchTerms}",
"search_url_get_params": "q={searchTerms}",
- "params": [
- {
- "name": "t",
- "condition": "purpose",
- "purpose": "contextmenu",
- "value": "ffcm"
- },
- {
- "name": "t",
- "condition": "purpose",
- "purpose": "keyword",
- "value": "ffab"
- },
- {
- "name": "t",
- "condition": "purpose",
- "purpose": "searchbar",
- "value": "ffsb"
- },
- {
- "name": "t",
- "condition": "purpose",
- "purpose": "homepage",
- "value": "ffhp"
- },
- {
- "name": "t",
- "condition": "purpose",
- "purpose": "newtab",
- "value": "ffnt"
- }
- ],
"suggest_url": "https://ac.duckduckgo.com/ac/",
"suggest_url_get_params": "q={searchTerms}&type=list"
}
diff --git a/browser/components/search/extensions/google/_locales/b-1-d/messages.json b/browser/components/search/extensions/google/_locales/b-1-d/messages.json
deleted file mode 100644
index 1b9d05307d64..000000000000
--- a/browser/components/search/extensions/google/_locales/b-1-d/messages.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "extensionName": {
- "message": "Google"
- },
- "extensionDescription": {
- "message": "Google Search"
- },
- "searchUrl": {
- "message": "https://www.google.com/search"
- },
- "searchForm": {
- "message": "https://www.google.com/search?client=firefox-b-1-d&q={searchTerms}"
- },
- "suggestUrl": {
- "message": "https://www.google.com/complete/search?client=firefox&q={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "client=firefox-b-1-d&q={searchTerms}"
- },
- "channelPref": {
- "message": "google_channel_us"
- }
-}
diff --git a/browser/components/search/extensions/google/_locales/b-1-e/messages.json b/browser/components/search/extensions/google/_locales/b-1-e/messages.json
deleted file mode 100644
index b470cd844331..000000000000
--- a/browser/components/search/extensions/google/_locales/b-1-e/messages.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "extensionName": {
- "message": "Google"
- },
- "extensionDescription": {
- "message": "Google Search"
- },
- "searchUrl": {
- "message": "https://www.google.com/search"
- },
- "searchForm": {
- "message": "https://www.google.com/search?client=firefox-b-1-e&q={searchTerms}"
- },
- "suggestUrl": {
- "message": "https://www.google.com/complete/search?client=firefox&q={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "client=firefox-b-1-e&q={searchTerms}"
- },
- "channelPref": {
- "message": "google_channel_us"
- }
-}
diff --git a/browser/components/search/extensions/google/_locales/b-d/messages.json b/browser/components/search/extensions/google/_locales/b-d/messages.json
deleted file mode 100644
index a6423089d9f9..000000000000
--- a/browser/components/search/extensions/google/_locales/b-d/messages.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "extensionName": {
- "message": "Google"
- },
- "extensionDescription": {
- "message": "Google Search"
- },
- "searchUrl": {
- "message": "https://www.google.com/search"
- },
- "searchForm": {
- "message": "https://www.google.com/search?client=firefox-b-d&q={searchTerms}"
- },
- "suggestUrl": {
- "message": "https://www.google.com/complete/search?client=firefox&q={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "client=firefox-b-d&q={searchTerms}"
- },
- "channelPref": {
- "message": "google_channel_row"
- }
-}
diff --git a/browser/components/search/extensions/google/_locales/b-e/messages.json b/browser/components/search/extensions/google/_locales/b-e/messages.json
deleted file mode 100644
index 70939ee00074..000000000000
--- a/browser/components/search/extensions/google/_locales/b-e/messages.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "extensionName": {
- "message": "Google"
- },
- "extensionDescription": {
- "message": "Google Search"
- },
- "searchUrl": {
- "message": "https://www.google.com/search"
- },
- "searchForm": {
- "message": "https://www.google.com/search?client=firefox-b-e&q={searchTerms}"
- },
- "suggestUrl": {
- "message": "https://www.google.com/complete/search?client=firefox&q={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "client=firefox-b-e&q={searchTerms}"
- },
- "channelPref": {
- "message": "google_channel_row"
- }
-}
diff --git a/browser/components/search/extensions/google/_locales/en/messages.json b/browser/components/search/extensions/google/_locales/en/messages.json
deleted file mode 100644
index aeca0ef128b3..000000000000
--- a/browser/components/search/extensions/google/_locales/en/messages.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- "extensionName": {
- "message": "Google"
- },
- "extensionDescription": {
- "message": "Google Search"
- },
- "searchUrl": {
- "message": "https://www.google.com/search"
- },
- "searchForm": {
- "message": "https://www.google.com/search?client=firefox-b-d&q={searchTerms}"
- },
- "suggestUrl": {
- "message": "https://www.google.com/complete/search?client=firefox&q={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "client=firefox-b-d&q={searchTerms}"
- },
- "channelPref": {
- "message": "google_channel_row"
- }
-
-}
diff --git a/browser/components/search/extensions/google/manifest.json b/browser/components/search/extensions/google/manifest.json
index d62049705ae2..965940517ba4 100644
--- a/browser/components/search/extensions/google/manifest.json
+++ b/browser/components/search/extensions/google/manifest.json
@@ -1,6 +1,6 @@
{
- "name": "__MSG_extensionName__",
- "description": "__MSG_extensionDescription__",
+ "name": "Google",
+ "description": "Google Search",
"manifest_version": 2,
"version": "1.1",
"applications": {
@@ -9,7 +9,6 @@
}
},
"hidden": true,
- "default_locale": "en",
"icons": {
"16": "favicon.ico"
},
@@ -19,18 +18,18 @@
"chrome_settings_overrides": {
"search_provider": {
"keyword": "@google",
- "name": "__MSG_extensionName__",
- "search_url": "__MSG_searchUrl__",
- "search_form": "__MSG_searchForm__",
- "suggest_url": "__MSG_suggestUrl__",
+ "name": "Google",
+ "search_url": "https://www.google.com/search",
+ "search_form": "https://www.google.com/search?client=firefox-b-d&q={searchTerms}",
+ "suggest_url": "https://www.google.com/complete/search?client=firefox&q={searchTerms}",
"params": [
{
"name": "channel",
"condition": "pref",
- "pref": "__MSG_channelPref__"
+ "pref": "google_channel_row"
}
],
- "search_url_get_params": "__MSG_searchUrlGetParams__"
+ "search_url_get_params": "client=firefox-b-d&q={searchTerms}"
}
}
}
diff --git a/browser/components/search/extensions/startpage/favicon.png b/browser/components/search/extensions/startpage/favicon.png
new file mode 100644
index 000000000000..44b94a986fd2
Binary files /dev/null and b/browser/components/search/extensions/startpage/favicon.png differ
diff --git a/browser/components/search/extensions/startpage/manifest.json b/browser/components/search/extensions/startpage/manifest.json
new file mode 100644
index 000000000000..18041d3a2f83
--- /dev/null
+++ b/browser/components/search/extensions/startpage/manifest.json
@@ -0,0 +1,26 @@
+{
+ "name": "Startpage",
+ "description": "Start Page",
+ "manifest_version": 2,
+ "version": "1.0",
+ "applications": {
+ "gecko": {
+ "id": "startpage(a)search.mozilla.org"
+ }
+ },
+ "hidden": true,
+ "icons": {
+ "16": "favicon.png"
+ },
+ "web_accessible_resources": [
+ "favicon.png"
+ ],
+ "chrome_settings_overrides": {
+ "search_provider": {
+ "name": "Startpage",
+ "search_url": "https://startpage.com/sp/search",
+ "search_form": "https://startpage.com/sp/search/",
+ "search_url_post_params": "q={searchTerms}&segment=startpage.tor"
+ }
+ }
+}
diff --git a/browser/components/search/extensions/twitter/favicon.ico b/browser/components/search/extensions/twitter/favicon.ico
new file mode 100644
index 000000000000..e5aaff437912
Binary files /dev/null and b/browser/components/search/extensions/twitter/favicon.ico differ
diff --git a/browser/components/search/extensions/twitter/manifest.json b/browser/components/search/extensions/twitter/manifest.json
new file mode 100644
index 000000000000..59714e0e1045
--- /dev/null
+++ b/browser/components/search/extensions/twitter/manifest.json
@@ -0,0 +1,26 @@
+{
+ "name": "Twitter",
+ "description": "Realtime Twitter Search",
+ "manifest_version": 2,
+ "version": "1.0",
+ "applications": {
+ "gecko": {
+ "id": "twitter(a)search.mozilla.org"
+ }
+ },
+ "hidden": true,
+ "icons": {
+ "16": "favicon.ico"
+ },
+ "web_accessible_resources": [
+ "favicon.ico"
+ ],
+ "chrome_settings_overrides": {
+ "search_provider": {
+ "name": "Twitter",
+ "search_url": "https://twitter.com/search",
+ "search_form": "https://twitter.com/search?q={searchTerms}&partner=Firefox&source=desktop-s…",
+ "search_url_get_params": "q={searchTerms}&partner=Firefox&source=desktop-search"
+ }
+ }
+}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/NN/messages.json b/browser/components/search/extensions/wikipedia/_locales/NN/messages.json
deleted file mode 100644
index e4ee66bc780d..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/NN/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedia (nn)"
- },
- "extensionDescription": {
- "message": "Wikipedia, det frie oppslagsverket"
- },
- "searchUrl": {
- "message": "https://nn.wikipedia.org/wiki/Spesial:Søk"
- },
- "searchForm": {
- "message": "https://nn.wikipedia.org/wiki/Spesial:Søk?search={searchTerms}&sourceid=Moz…"
- },
- "suggestUrl": {
- "message": "https://nn.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/NO/messages.json b/browser/components/search/extensions/wikipedia/_locales/NO/messages.json
deleted file mode 100644
index ec016ac7337e..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/NO/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedia (no)"
- },
- "extensionDescription": {
- "message": "Wikipedia, den frie encyklopedi"
- },
- "searchUrl": {
- "message": "https://no.wikipedia.org/wiki/Spesial:Søk"
- },
- "searchForm": {
- "message": "https://no.wikipedia.org/wiki/Spesial:Søk?search={searchTerms}&sourceid=Moz…"
- },
- "suggestUrl": {
- "message": "https://no.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/af/messages.json b/browser/components/search/extensions/wikipedia/_locales/af/messages.json
deleted file mode 100644
index 8cf9de8ac9b3..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/af/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedia (af)"
- },
- "extensionDescription": {
- "message": "Wikipedia, die vrye ensiklopedie"
- },
- "searchUrl": {
- "message": "https://af.wikipedia.org/wiki/Spesiaal:Soek"
- },
- "searchForm": {
- "message": "https://af.wikipedia.org/wiki/Spesiaal:Soek?search={searchTerms}&sourceid=M…"
- },
- "suggestUrl": {
- "message": "https://af.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/an/messages.json b/browser/components/search/extensions/wikipedia/_locales/an/messages.json
deleted file mode 100644
index e8cce665c96e..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/an/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Biquipedia (an)"
- },
- "extensionDescription": {
- "message": "A enciclopedia Libre"
- },
- "searchUrl": {
- "message": "https://an.wikipedia.org/wiki/Especial:Mirar"
- },
- "searchForm": {
- "message": "https://an.wikipedia.org/wiki/Especial:Mirar?search={searchTerms}&sourceid=…"
- },
- "suggestUrl": {
- "message": "https://an.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/ar/messages.json b/browser/components/search/extensions/wikipedia/_locales/ar/messages.json
deleted file mode 100644
index de90b2a2055e..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/ar/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "ويكيبيديا (ar)"
- },
- "extensionDescription": {
- "message": "ويكيبيديا (ar)"
- },
- "searchUrl": {
- "message": "https://ar.wikipedia.org/wiki/خاص:بحث"
- },
- "searchForm": {
- "message": "https://ar.wikipedia.org/wiki/خاص:بحث?search={searchTerms}&sourceid=Mozilla…"
- },
- "suggestUrl": {
- "message": "https://ar.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/ast/messages.json b/browser/components/search/extensions/wikipedia/_locales/ast/messages.json
deleted file mode 100644
index a127ba07f29b..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/ast/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedia (ast)"
- },
- "extensionDescription": {
- "message": "La enciclopedia llibre"
- },
- "searchUrl": {
- "message": "https://ast.wikipedia.org/wiki/Especial:Gueta"
- },
- "searchForm": {
- "message": "https://ast.wikipedia.org/wiki/Especial:Gueta?search={searchTerms}&sourceid…"
- },
- "suggestUrl": {
- "message": "https://ast.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/az/messages.json b/browser/components/search/extensions/wikipedia/_locales/az/messages.json
deleted file mode 100644
index f551a717e6d3..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/az/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Vikipediya (az)"
- },
- "extensionDescription": {
- "message": "Vikipediya, açıq ensiklopediya"
- },
- "searchUrl": {
- "message": "https://az.wikipedia.org/wiki/Xüsusi:Axtar"
- },
- "searchForm": {
- "message": "https://az.wikipedia.org/wiki/Xüsusi:Axtar?search={searchTerms}&sourceid=Mo…"
- },
- "suggestUrl": {
- "message": "https://az.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/be-tarask/messages.json b/browser/components/search/extensions/wikipedia/_locales/be-tarask/messages.json
deleted file mode 100644
index aecfecf2fb19..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/be-tarask/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Вікіпэдыя (be-tarask)"
- },
- "extensionDescription": {
- "message": "Вікіпэдыя, вольная энцыкляпэдыя"
- },
- "searchUrl": {
- "message": "https://be-tarask.wikipedia.org/wiki/Спэцыяльныя:Пошук"
- },
- "searchForm": {
- "message": "https://be-tarask.wikipedia.org/wiki/Спэцыяльныя:Пошук?search={searchTerms}…"
- },
- "suggestUrl": {
- "message": "https://be-tarask.wikipedia.org/w/api.php?action=opensearch&search={searchT…"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/be/messages.json b/browser/components/search/extensions/wikipedia/_locales/be/messages.json
deleted file mode 100644
index 6aa763451e67..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/be/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Вікіпедыя (be)"
- },
- "extensionDescription": {
- "message": "Вікіпедыя, свабодная энцыклапедыя"
- },
- "searchUrl": {
- "message": "https://be.wikipedia.org/wiki/Адмысловае:Search"
- },
- "searchForm": {
- "message": "https://be.wikipedia.org/wiki/Адмысловае:Search?search={searchTerms}&source…"
- },
- "suggestUrl": {
- "message": "https://be.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/bg/messages.json b/browser/components/search/extensions/wikipedia/_locales/bg/messages.json
deleted file mode 100644
index 896a85d66b87..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/bg/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Уикипедия (bg)"
- },
- "extensionDescription": {
- "message": "Уикипедия, свободната енциклоподия"
- },
- "searchUrl": {
- "message": "https://bg.wikipedia.org/wiki/Специални:Търсене"
- },
- "searchForm": {
- "message": "https://bg.wikipedia.org/wiki/Специални:Търсене?search={searchTerms}&source…"
- },
- "suggestUrl": {
- "message": "https://bg.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/bn/messages.json b/browser/components/search/extensions/wikipedia/_locales/bn/messages.json
deleted file mode 100644
index fe9887ed1938..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/bn/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "উইকিপিডিয়া (bn)"
- },
- "extensionDescription": {
- "message": "উইকিপিডিয়া, মুক্ত বিশ্বকোষ"
- },
- "searchUrl": {
- "message": "https://bn.wikipedia.org/wiki/বিশেষ:Search"
- },
- "searchForm": {
- "message": "https://bn.wikipedia.org/wiki/বিশেষ:Search?search={searchTerms}&sourceid=Mo…"
- },
- "suggestUrl": {
- "message": "https://bn.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/br/messages.json b/browser/components/search/extensions/wikipedia/_locales/br/messages.json
deleted file mode 100644
index 33869ce8e752..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/br/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedia (br)"
- },
- "extensionDescription": {
- "message": "Wikipedia, an holloueziadur digor"
- },
- "searchUrl": {
- "message": "https://br.wikipedia.org/wiki/Dibar:Klask"
- },
- "searchForm": {
- "message": "https://br.wikipedia.org/wiki/Dibar:Klask?search={searchTerms}&sourceid=Moz…"
- },
- "suggestUrl": {
- "message": "https://br.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/bs/messages.json b/browser/components/search/extensions/wikipedia/_locales/bs/messages.json
deleted file mode 100644
index 746150e3d8e8..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/bs/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedia (bs)"
- },
- "extensionDescription": {
- "message": "Slobodna enciklopedija"
- },
- "searchUrl": {
- "message": "https://bs.wikipedia.org/wiki/Posebno:Pretraga"
- },
- "searchForm": {
- "message": "https://bs.wikipedia.org/wiki/Posebno:Pretraga?search={searchTerms}&sourcei…"
- },
- "suggestUrl": {
- "message": "https://bs.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/ca/messages.json b/browser/components/search/extensions/wikipedia/_locales/ca/messages.json
deleted file mode 100644
index 151ec1a71ba5..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/ca/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Viquipèdia (ca)"
- },
- "extensionDescription": {
- "message": "L'enciclopèdia lliure"
- },
- "searchUrl": {
- "message": "https://ca.wikipedia.org/wiki/Especial:Cerca"
- },
- "searchForm": {
- "message": "https://ca.wikipedia.org/wiki/Especial:Cerca?search={searchTerms}&sourceid=…"
- },
- "suggestUrl": {
- "message": "https://ca.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/cy/messages.json b/browser/components/search/extensions/wikipedia/_locales/cy/messages.json
deleted file mode 100644
index cfed7c73be34..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/cy/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wicipedia (cy)"
- },
- "extensionDescription": {
- "message": "Wicipedia, Y Gwyddioniadur Rhydd"
- },
- "searchUrl": {
- "message": "https://cy.wikipedia.org/wiki/Arbennig:Search"
- },
- "searchForm": {
- "message": "https://cy.wikipedia.org/wiki/Arbennig:Search?search={searchTerms}&sourceid…"
- },
- "suggestUrl": {
- "message": "https://cy.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/cz/messages.json b/browser/components/search/extensions/wikipedia/_locales/cz/messages.json
deleted file mode 100644
index 12f7eb22d711..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/cz/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedie (cs)"
- },
- "extensionDescription": {
- "message": "Wikipedia, svobodná encyclopedie"
- },
- "searchUrl": {
- "message": "https://cs.wikipedia.org/wiki/Speciální:Hledání"
- },
- "searchForm": {
- "message": "https://cs.wikipedia.org/wiki/Speciální:Hledání?search={searchTerms}&source…"
- },
- "suggestUrl": {
- "message": "https://cs.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/da/messages.json b/browser/components/search/extensions/wikipedia/_locales/da/messages.json
deleted file mode 100644
index 801d5a5183cc..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/da/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedia (da)"
- },
- "extensionDescription": {
- "message": "Wikipedia, den frie encyklopædi"
- },
- "searchUrl": {
- "message": "https://da.wikipedia.org/wiki/Speciel:Søgning"
- },
- "searchForm": {
- "message": "https://da.wikipedia.org/wiki/Speciel:Søgning?search={searchTerms}&sourceid…"
- },
- "suggestUrl": {
- "message": "https://da.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/de/messages.json b/browser/components/search/extensions/wikipedia/_locales/de/messages.json
deleted file mode 100644
index 0e6bbe8905ca..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/de/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedia (de)"
- },
- "extensionDescription": {
- "message": "Wikipedia, die freie Enzyklopädie"
- },
- "searchUrl": {
- "message": "https://de.wikipedia.org/wiki/Spezial:Suche"
- },
- "searchForm": {
- "message": "https://de.wikipedia.org/wiki/Spezial:Suche?search={searchTerms}&sourceid=M…"
- },
- "suggestUrl": {
- "message": "https://de.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/dsb/messages.json b/browser/components/search/extensions/wikipedia/_locales/dsb/messages.json
deleted file mode 100644
index ffca44b5f7fb..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/dsb/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedija (dsb)"
- },
- "extensionDescription": {
- "message": "Wikipedija, lichotna encyklopedija"
- },
- "searchUrl": {
- "message": "https://dsb.wikipedia.org/wiki/Specialne:Pytaś"
- },
- "searchForm": {
- "message": "https://dsb.wikipedia.org/wiki/Specialne:Pytaś?search={searchTerms}&sourcei…"
- },
- "suggestUrl": {
- "message": "https://dsb.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/el/messages.json b/browser/components/search/extensions/wikipedia/_locales/el/messages.json
deleted file mode 100644
index 95b48f3d9ca7..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/el/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedia (el)"
- },
- "extensionDescription": {
- "message": "Βικιπαίδεια, η ελεύθερη εγκυκλοπαίδεια"
- },
- "searchUrl": {
- "message": "https://el.wikipedia.org/wiki/Ειδικό:Αναζήτηση"
- },
- "searchForm": {
- "message": "https://el.wikipedia.org/wiki/Ειδικό:Αναζήτηση?search={searchTerms}&sourcei…"
- },
- "suggestUrl": {
- "message": "https://el.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/en/messages.json b/browser/components/search/extensions/wikipedia/_locales/en/messages.json
deleted file mode 100644
index 0de3c9a8071a..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/en/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedia (en)"
- },
- "extensionDescription": {
- "message": "Wikipedia, the Free Encyclopedia"
- },
- "searchUrl": {
- "message": "https://en.wikipedia.org/wiki/Special:Search"
- },
- "searchForm": {
- "message": "https://en.wikipedia.org/wiki/Special:Search?search={searchTerms}&sourceid=…"
- },
- "suggestUrl": {
- "message": "https://en.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/eo/messages.json b/browser/components/search/extensions/wikipedia/_locales/eo/messages.json
deleted file mode 100644
index 10aa88dd11ba..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/eo/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Vikipedio (eo)"
- },
- "extensionDescription": {
- "message": "Vikipedio, la libera enciklopedio"
- },
- "searchUrl": {
- "message": "https://eo.wikipedia.org/wiki/Specialaĵo:Serĉi"
- },
- "searchForm": {
- "message": "https://eo.wikipedia.org/wiki/Specialaĵo:Serĉi?search={searchTerms}&sourcei…"
- },
- "suggestUrl": {
- "message": "https://eo.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/es/messages.json b/browser/components/search/extensions/wikipedia/_locales/es/messages.json
deleted file mode 100644
index 09ec1f757657..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/es/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedia (es)"
- },
- "extensionDescription": {
- "message": "Wikipedia, la enciclopedia libre"
- },
- "searchUrl": {
- "message": "https://es.wikipedia.org/wiki/Especial:Buscar"
- },
- "searchForm": {
- "message": "https://es.wikipedia.org/wiki/Especial:Buscar?search={searchTerms}&sourceid…"
- },
- "suggestUrl": {
- "message": "https://es.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/et/messages.json b/browser/components/search/extensions/wikipedia/_locales/et/messages.json
deleted file mode 100644
index 91363fbb392b..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/et/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Vikipeedia (et)"
- },
- "extensionDescription": {
- "message": "Vikipeedia, vaba entsüklopeedia"
- },
- "searchUrl": {
- "message": "https://et.wikipedia.org/wiki/Eri:Otsimine"
- },
- "searchForm": {
- "message": "https://et.wikipedia.org/wiki/Eri:Otsimine?search={searchTerms}&sourceid=Mo…"
- },
- "suggestUrl": {
- "message": "https://et.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/eu/messages.json b/browser/components/search/extensions/wikipedia/_locales/eu/messages.json
deleted file mode 100644
index 1bd7027dec54..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/eu/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedia (eu)"
- },
- "extensionDescription": {
- "message": "Wikipedia, entziklopedia askea"
- },
- "searchUrl": {
- "message": "https://eu.wikipedia.org/wiki/Berezi:Bilatu"
- },
- "searchForm": {
- "message": "https://eu.wikipedia.org/wiki/Berezi:Bilatu?search={searchTerms}&sourceid=M…"
- },
- "suggestUrl": {
- "message": "https://eu.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/fa/messages.json b/browser/components/search/extensions/wikipedia/_locales/fa/messages.json
deleted file mode 100644
index 9fdc964a1e0b..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/fa/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "ویکیپدیا (fa)"
- },
- "extensionDescription": {
- "message": "ویکیپدیا، دانشنامهٔ آزاد"
- },
- "searchUrl": {
- "message": "https://fa.wikipedia.org/wiki/ویژه:جستجو"
- },
- "searchForm": {
- "message": "https://fa.wikipedia.org/wiki/ویژه:جستجو?search={searchTerms}&sourceid=Mozi…"
- },
- "suggestUrl": {
- "message": "https://fa.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/fi/messages.json b/browser/components/search/extensions/wikipedia/_locales/fi/messages.json
deleted file mode 100644
index 17a9cbe22c42..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/fi/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedia (fi)"
- },
- "extensionDescription": {
- "message": "Wikipedia (fi), vapaa tietosanakirja"
- },
- "searchUrl": {
- "message": "https://fi.wikipedia.org/wiki/Toiminnot:Haku"
- },
- "searchForm": {
- "message": "https://fi.wikipedia.org/wiki/Toiminnot:Haku?search={searchTerms}&sourceid=…"
- },
- "suggestUrl": {
- "message": "https://fi.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/fr/messages.json b/browser/components/search/extensions/wikipedia/_locales/fr/messages.json
deleted file mode 100644
index 33dcbe9dc502..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/fr/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipédia (fr)"
- },
- "extensionDescription": {
- "message": "Wikipédia, l'encyclopédie libre"
- },
- "searchUrl": {
- "message": "https://fr.wikipedia.org/wiki/Spécial:Recherche"
- },
- "searchForm": {
- "message": "https://fr.wikipedia.org/wiki/Spécial:Recherche?search={searchTerms}&source…"
- },
- "suggestUrl": {
- "message": "https://fr.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/fy-NL/messages.json b/browser/components/search/extensions/wikipedia/_locales/fy-NL/messages.json
deleted file mode 100644
index f350162fbbaf..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/fy-NL/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedy (fy)"
- },
- "extensionDescription": {
- "message": "De fergese ensyklopedy"
- },
- "searchUrl": {
- "message": "https://fy.wikipedia.org/wiki/Wiki:Sykje"
- },
- "searchForm": {
- "message": "https://fy.wikipedia.org/wiki/Wiki:Sykje?search={searchTerms}&sourceid=Mozi…"
- },
- "suggestUrl": {
- "message": "https://fy.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/ga-IE/messages.json b/browser/components/search/extensions/wikipedia/_locales/ga-IE/messages.json
deleted file mode 100644
index 994ea723c6da..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/ga-IE/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Vicipéid (ga)"
- },
- "extensionDescription": {
- "message": "Vicipéid, an Chiclipéid Shaor"
- },
- "searchUrl": {
- "message": "https://ga.wikipedia.org/wiki/Speisialta:Search"
- },
- "searchForm": {
- "message": "https://ga.wikipedia.org/wiki/Speisialta:Search?search={searchTerms}&source…"
- },
- "suggestUrl": {
- "message": "https://ga.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/gd/messages.json b/browser/components/search/extensions/wikipedia/_locales/gd/messages.json
deleted file mode 100644
index f16f16fb4a02..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/gd/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Uicipeid (gd)"
- },
- "extensionDescription": {
- "message": "Wikipedia, An leabhar mòr-eòlais"
- },
- "searchUrl": {
- "message": "https://gd.wikipedia.org/wiki/Sònraichte:Search"
- },
- "searchForm": {
- "message": "https://gd.wikipedia.org/wiki/Sònraichte:Search?search={searchTerms}&source…"
- },
- "suggestUrl": {
- "message": "https://gd.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/gl/messages.json b/browser/components/search/extensions/wikipedia/_locales/gl/messages.json
deleted file mode 100644
index 88880bffc3d9..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/gl/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedia (gl)"
- },
- "extensionDescription": {
- "message": "Wikipedia, a enciclopedia libre"
- },
- "searchUrl": {
- "message": "https://gl.wikipedia.org/wiki/Especial:Procurar"
- },
- "searchForm": {
- "message": "https://gl.wikipedia.org/wiki/Especial:Procurar?search={searchTerms}&source…"
- },
- "suggestUrl": {
- "message": "https://gl.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/gn/messages.json b/browser/components/search/extensions/wikipedia/_locales/gn/messages.json
deleted file mode 100644
index 5efc5ed74a95..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/gn/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Vikipetã (gn)"
- },
- "extensionDescription": {
- "message": "Vikipetã, opaite tembikuaa hekosãsóva renda"
- },
- "searchUrl": {
- "message": "https://gn.wikipedia.org/wiki/Mba'echĩchĩ:Buscar"
- },
- "searchForm": {
- "message": "https://gn.wikipedia.org/wiki/Mba'echĩchĩ:Buscar?search={searchTerms}&sourceid=Mozilla-search"
- },
- "suggestUrl": {
- "message": "https://gn.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/gu/messages.json b/browser/components/search/extensions/wikipedia/_locales/gu/messages.json
deleted file mode 100644
index 3d2f68826fc5..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/gu/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "વિકિપીડિયા (gu)"
- },
- "extensionDescription": {
- "message": "વીકીપીડિયા, મુક્ત એનસાયક્લોપીડિયા"
- },
- "searchUrl": {
- "message": "https://gu.wikipedia.org/wiki/વિશેષ:શોધ"
- },
- "searchForm": {
- "message": "https://gu.wikipedia.org/wiki/વિશેષ:શોધ?search={searchTerms}&sourceid=Mozil…"
- },
- "suggestUrl": {
- "message": "https://gu.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/he/messages.json b/browser/components/search/extensions/wikipedia/_locales/he/messages.json
deleted file mode 100644
index 1f8471e980f0..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/he/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "ויקיפדיה"
- },
- "extensionDescription": {
- "message": "ויקיפדיה"
- },
- "searchUrl": {
- "message": "https://he.wikipedia.org/wiki/מיוחד:חיפוש"
- },
- "searchForm": {
- "message": "https://he.wikipedia.org/wiki/מיוחד:חיפוש?search={searchTerms}&sourceid=Moz…"
- },
- "suggestUrl": {
- "message": "https://he.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/hi/messages.json b/browser/components/search/extensions/wikipedia/_locales/hi/messages.json
deleted file mode 100644
index f3b7d14eafa0..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/hi/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "विकिपीडिया (hi)"
- },
- "extensionDescription": {
- "message": "विकिपीडिया (हिन्दी)"
- },
- "searchUrl": {
- "message": "https://hi.wikipedia.org/wiki/विशेष:खोज"
- },
- "searchForm": {
- "message": "https://hi.wikipedia.org/wiki/विशेष:खोज?search={searchTerms}&sourceid=Mozil…"
- },
- "suggestUrl": {
- "message": "https://hi.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/hr/messages.json b/browser/components/search/extensions/wikipedia/_locales/hr/messages.json
deleted file mode 100644
index 18a6177efcca..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/hr/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedija (hr)"
- },
- "extensionDescription": {
- "message": "Wikipedija, slobodna enciklopedija"
- },
- "searchUrl": {
- "message": "https://hr.wikipedia.org/wiki/Posebno:Traži"
- },
- "searchForm": {
- "message": "https://hr.wikipedia.org/wiki/Posebno:Traži?search={searchTerms}&sourceid=M…"
- },
- "suggestUrl": {
- "message": "https://hr.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/hsb/messages.json b/browser/components/search/extensions/wikipedia/_locales/hsb/messages.json
deleted file mode 100644
index d4e62836e6e9..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/hsb/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedija (hsb)"
- },
- "extensionDescription": {
- "message": "Wikipedija, swobodna encyklopedija"
- },
- "searchUrl": {
- "message": "https://hsb.wikipedia.org/wiki/Specialnje:Pytać"
- },
- "searchForm": {
- "message": "https://hsb.wikipedia.org/wiki/Specialnje:Pytać?search={searchTerms}&source…"
- },
- "suggestUrl": {
- "message": "https://hsb.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/hu/messages.json b/browser/components/search/extensions/wikipedia/_locales/hu/messages.json
deleted file mode 100644
index 68300c48a6f3..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/hu/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipédia (hu)"
- },
- "extensionDescription": {
- "message": "Wikipedia, a szabad enciklopédia"
- },
- "searchUrl": {
- "message": "https://hu.wikipedia.org/wiki/Speciális:Keresés"
- },
- "searchForm": {
- "message": "https://hu.wikipedia.org/wiki/Speciális:Keresés?search={searchTerms}&source…"
- },
- "suggestUrl": {
- "message": "https://hu.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/hy/messages.json b/browser/components/search/extensions/wikipedia/_locales/hy/messages.json
deleted file mode 100644
index 56c2ae2c641b..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/hy/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedia (hy)"
- },
- "extensionDescription": {
- "message": "Վիքիփեդիա՝ ազատ հանրագիտարան"
- },
- "searchUrl": {
- "message": "https://hy.wikipedia.org/wiki/Սպասարկող:Որոնել"
- },
- "searchForm": {
- "message": "https://hy.wikipedia.org/wiki/Սպասարկող:Որոնել?search={searchTerms}&sourcei…"
- },
- "suggestUrl": {
- "message": "https://hy.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/ia/messages.json b/browser/components/search/extensions/wikipedia/_locales/ia/messages.json
deleted file mode 100644
index 6d997ae8fc81..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/ia/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedia (ia)"
- },
- "extensionDescription": {
- "message": "Wikipedia, le encyclopedia libere"
- },
- "searchUrl": {
- "message": "https://ia.wikipedia.org/wiki/Special:Recerca"
- },
- "searchForm": {
- "message": "https://ia.wikipedia.org/wiki/Special:Recerca?search={searchTerms}&sourceid…"
- },
- "suggestUrl": {
- "message": "https://ia.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/id/messages.json b/browser/components/search/extensions/wikipedia/_locales/id/messages.json
deleted file mode 100644
index 1d35e71b956d..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/id/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedia (id)"
- },
- "extensionDescription": {
- "message": "Wikipedia, ensiklopedia bebas"
- },
- "searchUrl": {
- "message": "https://id.wikipedia.org/wiki/Istimewa:Pencarian"
- },
- "searchForm": {
- "message": "https://id.wikipedia.org/wiki/Istimewa:Pencarian?search={searchTerms}&sourc…"
- },
- "suggestUrl": {
- "message": "https://id.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/is/messages.json b/browser/components/search/extensions/wikipedia/_locales/is/messages.json
deleted file mode 100644
index f722d88187de..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/is/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedia (is)"
- },
- "extensionDescription": {
- "message": "Wikipedia, the free encyclopedia"
- },
- "searchUrl": {
- "message": "https://is.wikipedia.org/wiki/Kerfissíða:Leit"
- },
- "searchForm": {
- "message": "https://is.wikipedia.org/wiki/Kerfissíða:Leit?search={searchTerms}&sourceid…"
- },
- "suggestUrl": {
- "message": "https://is.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/it/messages.json b/browser/components/search/extensions/wikipedia/_locales/it/messages.json
deleted file mode 100644
index 2ca645740f87..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/it/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedia (it)"
- },
- "extensionDescription": {
- "message": "Wikipedia, l'enciclopedia libera"
- },
- "searchUrl": {
- "message": "https://it.wikipedia.org/wiki/Speciale:Ricerca"
- },
- "searchForm": {
- "message": "https://it.wikipedia.org/wiki/Speciale:Ricerca?search={searchTerms}&sourcei…"
- },
- "suggestUrl": {
- "message": "https://it.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/ja/messages.json b/browser/components/search/extensions/wikipedia/_locales/ja/messages.json
deleted file mode 100644
index 7215e68768f0..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/ja/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedia (ja)"
- },
- "extensionDescription": {
- "message": "Wikipedia - フリー百科事典"
- },
- "searchUrl": {
- "message": "https://ja.wikipedia.org/wiki/特別:検索"
- },
- "searchForm": {
- "message": "https://ja.wikipedia.org/wiki/特別:検索?search={searchTerms}&sourceid=Mozilla-s…"
- },
- "suggestUrl": {
- "message": "https://ja.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/ka/messages.json b/browser/components/search/extensions/wikipedia/_locales/ka/messages.json
deleted file mode 100644
index c460a093e5e4..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/ka/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "ვიკიპედია (ka)"
- },
- "extensionDescription": {
- "message": "ვიკიპედია, თავისუფალი ენციკლოპედია"
- },
- "searchUrl": {
- "message": "https://ka.wikipedia.org/wiki/სპეციალური:ძიება"
- },
- "searchForm": {
- "message": "https://ka.wikipedia.org/wiki/სპეციალური:ძიება?search={searchTerms}&sourcei…"
- },
- "suggestUrl": {
- "message": "https://ka.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/kab/messages.json b/browser/components/search/extensions/wikipedia/_locales/kab/messages.json
deleted file mode 100644
index 3cf743b616fe..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/kab/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedia (kab)"
- },
- "extensionDescription": {
- "message": "Wikipedia, tasanayt tilellit"
- },
- "searchUrl": {
- "message": "https://kab.wikipedia.org/wiki/Uslig:Search"
- },
- "searchForm": {
- "message": "https://kab.wikipedia.org/wiki/Uslig:Search?search={searchTerms}&sourceid=M…"
- },
- "suggestUrl": {
- "message": "https://kab.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/kk/messages.json b/browser/components/search/extensions/wikipedia/_locales/kk/messages.json
deleted file mode 100644
index 0844cca0d7e1..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/kk/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Уикипедия (kk)"
- },
- "extensionDescription": {
- "message": "Уикипедия (kk)"
- },
- "searchUrl": {
- "message": "https://kk.wikipedia.org/wiki/Арнайы:Іздеу"
- },
- "searchForm": {
- "message": "https://kk.wikipedia.org/wiki/Арнайы:Іздеу?search={searchTerms}&sourceid=Mo…"
- },
- "suggestUrl": {
- "message": "https://kk.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/km/messages.json b/browser/components/search/extensions/wikipedia/_locales/km/messages.json
deleted file mode 100644
index 0f0a0880e188..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/km/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "វីគីភីឌា (km)"
- },
- "extensionDescription": {
- "message": "វីគីភីឌា សព្វវចនាធិប្បាយសេរី"
- },
- "searchUrl": {
- "message": "https://km.wikipedia.org/wiki/ពិសេស:ស្វែងរក"
- },
- "searchForm": {
- "message": "https://km.wikipedia.org/wiki/ពិសេស:ស្វែងរក?search={searchTerms}&sourceid=M…"
- },
- "suggestUrl": {
- "message": "https://km.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/kn/messages.json b/browser/components/search/extensions/wikipedia/_locales/kn/messages.json
deleted file mode 100644
index 379ef20085a3..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/kn/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedia (kn)"
- },
- "extensionDescription": {
- "message": "Wikipedia, the free encyclopedia"
- },
- "searchUrl": {
- "message": "https://kn.wikipedia.org/wiki/ವಿಶೇಷ:Search"
- },
- "searchForm": {
- "message": "https://kn.wikipedia.org/wiki/ವಿಶೇಷ:Search?search={searchTerms}&sourceid=Mo…"
- },
- "suggestUrl": {
- "message": "https://kn.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/kr/messages.json b/browser/components/search/extensions/wikipedia/_locales/kr/messages.json
deleted file mode 100644
index 54296cac62bd..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/kr/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "위키백과 (ko)"
- },
- "extensionDescription": {
- "message": "Wikipedia, the free encyclopedia"
- },
- "searchUrl": {
- "message": "https://ko.wikipedia.org/wiki/특수기능:찾기"
- },
- "searchForm": {
- "message": "https://ko.wikipedia.org/wiki/특수기능:찾기?search={searchTerms}&sourceid=Mozilla…"
- },
- "suggestUrl": {
- "message": "https://ko.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/lij/messages.json b/browser/components/search/extensions/wikipedia/_locales/lij/messages.json
deleted file mode 100644
index cb90db5e4099..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/lij/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedia (lij)"
- },
- "extensionDescription": {
- "message": "Wikipedia, l'enciclopedia libera"
- },
- "searchUrl": {
- "message": "https://lij.wikipedia.org/wiki/Speçiale:Riçerca"
- },
- "searchForm": {
- "message": "https://lij.wikipedia.org/wiki/Speçiale:Riçerca?search={searchTerms}&source…"
- },
- "suggestUrl": {
- "message": "https://lij.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/lo/messages.json b/browser/components/search/extensions/wikipedia/_locales/lo/messages.json
deleted file mode 100644
index 712746ec6316..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/lo/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "ວິກິພີເດຍ (lo)"
- },
- "extensionDescription": {
- "message": "ວິກິພີເດຍ, ສາລານຸກົມເສລີ"
- },
- "searchUrl": {
- "message": "https://lo.wikipedia.org/wiki/ພິເສດ:ຊອກຫາ"
- },
- "searchForm": {
- "message": "https://lo.wikipedia.org/wiki/ພິເສດ:ຊອກຫາ?search={searchTerms}&sourceid=Moz…"
- },
- "suggestUrl": {
- "message": "https://lo.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/lt/messages.json b/browser/components/search/extensions/wikipedia/_locales/lt/messages.json
deleted file mode 100644
index c061bcc5224c..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/lt/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedia (lt)"
- },
- "extensionDescription": {
- "message": "Vikipedija, laisvoji enciklopedija"
- },
- "searchUrl": {
- "message": "https://lt.wikipedia.org/wiki/Specialus:Paieška"
- },
- "searchForm": {
- "message": "https://lt.wikipedia.org/wiki/Specialus:Paieška?search={searchTerms}&source…"
- },
- "suggestUrl": {
- "message": "https://lt.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/ltg/messages.json b/browser/components/search/extensions/wikipedia/_locales/ltg/messages.json
deleted file mode 100644
index 0e02810ef3bf..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/ltg/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Vikipedeja (ltg)"
- },
- "extensionDescription": {
- "message": "Vikipēdija, breivuo eņciklopedeja"
- },
- "searchUrl": {
- "message": "https://ltg.wikipedia.org/wiki/Seviškuo:Search"
- },
- "searchForm": {
- "message": "https://ltg.wikipedia.org/wiki/Seviškuo:Search?search={searchTerms}&sourcei…"
- },
- "suggestUrl": {
- "message": "https://ltg.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/lv/messages.json b/browser/components/search/extensions/wikipedia/_locales/lv/messages.json
deleted file mode 100644
index f73814b8574f..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/lv/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Vikipēdija"
- },
- "extensionDescription": {
- "message": "Vikipēdija, brīvā enciklopēdija"
- },
- "searchUrl": {
- "message": "https://lv.wikipedia.org/wiki/Special:Search"
- },
- "searchForm": {
- "message": "https://lv.wikipedia.org/wiki/Special:Search?search={searchTerms}&sourceid=…"
- },
- "suggestUrl": {
- "message": "https://lv.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/mk/messages.json b/browser/components/search/extensions/wikipedia/_locales/mk/messages.json
deleted file mode 100644
index de7e06e1ac4a..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/mk/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Википедија (mk)"
- },
- "extensionDescription": {
- "message": "Википедија, слободната енциклопедија"
- },
- "searchUrl": {
- "message": "https://mk.wikipedia.org/wiki/Специјална:Барај"
- },
- "searchForm": {
- "message": "https://mk.wikipedia.org/wiki/Специјална:Барај?search={searchTerms}&sourcei…"
- },
- "suggestUrl": {
- "message": "https://mk.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/mr/messages.json b/browser/components/search/extensions/wikipedia/_locales/mr/messages.json
deleted file mode 100644
index bd46dd83700c..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/mr/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "विकिपीडिया (mr)"
- },
- "extensionDescription": {
- "message": "विकिपीडिया, मोफत माहितीकोष"
- },
- "searchUrl": {
- "message": "https://mr.wikipedia.org/wiki/विशेष:शोधा"
- },
- "searchForm": {
- "message": "https://mr.wikipedia.org/wiki/विशेष:शोधा?search={searchTerms}&sourceid=Mozi…"
- },
- "suggestUrl": {
- "message": "https://mr.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/ms/messages.json b/browser/components/search/extensions/wikipedia/_locales/ms/messages.json
deleted file mode 100644
index c817e82c7821..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/ms/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedia (ms)"
- },
- "extensionDescription": {
- "message": "Wikipedia, ensiklopedia bebas"
- },
- "searchUrl": {
- "message": "https://ms.wikipedia.org/wiki/Khas:Gelintar"
- },
- "searchForm": {
- "message": "https://ms.wikipedia.org/wiki/Khas:Gelintar?search={searchTerms}&sourceid=M…"
- },
- "suggestUrl": {
- "message": "https://ms.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/my/messages.json b/browser/components/search/extensions/wikipedia/_locales/my/messages.json
deleted file mode 100644
index 62342d1b90ae..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/my/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedia (my)"
- },
- "extensionDescription": {
- "message": "အခမဲ့လွတ်လပ်စွယ်စုံကျမ်း"
- },
- "searchUrl": {
- "message": "https://my.wikipedia.org/wiki/Special:Search"
- },
- "searchForm": {
- "message": "https://my.wikipedia.org/wiki/Special:Search?search={searchTerms}&sourceid=…"
- },
- "suggestUrl": {
- "message": "https://my.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/ne/messages.json b/browser/components/search/extensions/wikipedia/_locales/ne/messages.json
deleted file mode 100644
index eb22344341e4..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/ne/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "विकिपीडिया (ne)"
- },
- "extensionDescription": {
- "message": "विकिपिडिया एक स्वतन्त्र विश्वकोष"
- },
- "searchUrl": {
- "message": "https://ne.wikipedia.org/wiki/विशेष:Search"
- },
- "searchForm": {
- "message": "https://ne.wikipedia.org/wiki/विशेष:Search?search={searchTerms}&sourceid=Mo…"
- },
- "suggestUrl": {
- "message": "https://ne.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/nl/messages.json b/browser/components/search/extensions/wikipedia/_locales/nl/messages.json
deleted file mode 100644
index c2a810c2ae30..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/nl/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedia (nl)"
- },
- "extensionDescription": {
- "message": "De vrije encyclopedie"
- },
- "searchUrl": {
- "message": "https://nl.wikipedia.org/wiki/Speciaal:Zoeken"
- },
- "searchForm": {
- "message": "https://nl.wikipedia.org/wiki/Speciaal:Zoeken?search={searchTerms}&sourceid…"
- },
- "suggestUrl": {
- "message": "https://nl.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/oc/messages.json b/browser/components/search/extensions/wikipedia/_locales/oc/messages.json
deleted file mode 100644
index 3cadc3d68f07..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/oc/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipèdia (oc)"
- },
- "extensionDescription": {
- "message": "Wikipèdia, l'enciclopèdia liura"
- },
- "searchUrl": {
- "message": "https://oc.wikipedia.org/wiki/Especial:Recèrca"
- },
- "searchForm": {
- "message": "https://oc.wikipedia.org/wiki/Especial:Recèrca?search={searchTerms}&sourcei…"
- },
- "suggestUrl": {
- "message": "https://oc.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/pa/messages.json b/browser/components/search/extensions/wikipedia/_locales/pa/messages.json
deleted file mode 100644
index dff38c2146fd..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/pa/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedia (pa)"
- },
- "extensionDescription": {
- "message": "ਵਿਕਿਪੀਡਿਆ, ਮੁਫ਼ਤ/ਮੁਕਤ ਸ਼ਬਦਕੋਸ਼"
- },
- "searchUrl": {
- "message": "https://pa.wikipedia.org/wiki/ਖ਼ਾਸ:ਖੋਜੋ"
- },
- "searchForm": {
- "message": "https://pa.wikipedia.org/wiki/ਖ਼ਾਸ:ਖੋਜੋ?search={searchTerms}&sourceid=Mozil…"
- },
- "suggestUrl": {
- "message": "https://pa.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/pl/messages.json b/browser/components/search/extensions/wikipedia/_locales/pl/messages.json
deleted file mode 100644
index 315aa0d9cbe1..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/pl/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedia (pl)"
- },
- "extensionDescription": {
- "message": "Wikipedia, wolna encyklopedia"
- },
- "searchUrl": {
- "message": "https://pl.wikipedia.org/wiki/Specjalna:Szukaj"
- },
- "searchForm": {
- "message": "https://pl.wikipedia.org/wiki/Specjalna:Szukaj?search={searchTerms}&sourcei…"
- },
- "suggestUrl": {
- "message": "https://pl.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/pt/messages.json b/browser/components/search/extensions/wikipedia/_locales/pt/messages.json
deleted file mode 100644
index 4beaa97acc88..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/pt/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedia (pt)"
- },
- "extensionDescription": {
- "message": "Wikipédia, a enciclopédia livre"
- },
- "searchUrl": {
- "message": "https://pt.wikipedia.org/wiki/Especial:Pesquisar"
- },
- "searchForm": {
- "message": "https://pt.wikipedia.org/wiki/Especial:Pesquisar?search={searchTerms}&sourc…"
- },
- "suggestUrl": {
- "message": "https://pt.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/rm/messages.json b/browser/components/search/extensions/wikipedia/_locales/rm/messages.json
deleted file mode 100644
index 8258d5e43451..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/rm/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedia (rm)"
- },
- "extensionDescription": {
- "message": "Vichipedia, l'enciclopedia libra"
- },
- "searchUrl": {
- "message": "https://rm.wikipedia.org/wiki/Spezial:Search"
- },
- "searchForm": {
- "message": "https://rm.wikipedia.org/wiki/Spezial:Search?search={searchTerms}&sourceid=…"
- },
- "suggestUrl": {
- "message": "https://rm.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/ro/messages.json b/browser/components/search/extensions/wikipedia/_locales/ro/messages.json
deleted file mode 100644
index 48865fd547e4..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/ro/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedia (ro)"
- },
- "extensionDescription": {
- "message": "Wikipedia, enciclopedia liberă"
- },
- "searchUrl": {
- "message": "https://ro.wikipedia.org/wiki/Special:Căutare"
- },
- "searchForm": {
- "message": "https://ro.wikipedia.org/wiki/Special:Căutare?search={searchTerms}&sourceid…"
- },
- "suggestUrl": {
- "message": "https://ro.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/ru/messages.json b/browser/components/search/extensions/wikipedia/_locales/ru/messages.json
deleted file mode 100644
index 569467691d7c..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/ru/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Википедия (ru)"
- },
- "extensionDescription": {
- "message": "Википедия, свободная энциклопедия"
- },
- "searchUrl": {
- "message": "https://ru.wikipedia.org/wiki/Служебная:Поиск"
- },
- "searchForm": {
- "message": "https://ru.wikipedia.org/wiki/Служебная:Поиск?search={searchTerms}&sourceid…"
- },
- "suggestUrl": {
- "message": "https://ru.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/si/messages.json b/browser/components/search/extensions/wikipedia/_locales/si/messages.json
deleted file mode 100644
index 0406ae728d71..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/si/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedia (si)"
- },
- "extensionDescription": {
- "message": "Wikipedia, the free encyclopedia"
- },
- "searchUrl": {
- "message": "https://si.wikipedia.org/wiki/විශේෂ:ගවේෂණය"
- },
- "searchForm": {
- "message": "https://si.wikipedia.org/wiki/විශේෂ:ගවේෂණය?search={searchTerms}&sourceid=Mo…"
- },
- "suggestUrl": {
- "message": "https://si.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/sk/messages.json b/browser/components/search/extensions/wikipedia/_locales/sk/messages.json
deleted file mode 100644
index 5c2f75f8b031..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/sk/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipédia (sk)"
- },
- "extensionDescription": {
- "message": "Wikipédia, slobodná a otvorená encyklopédia"
- },
- "searchUrl": {
- "message": "https://sk.wikipedia.org/wiki/Špeciálne:Hľadanie"
- },
- "searchForm": {
- "message": "https://sk.wikipedia.org/wiki/Špeciálne:Hľadanie?search={searchTerms}&sourc…"
- },
- "suggestUrl": {
- "message": "https://sk.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/sl/messages.json b/browser/components/search/extensions/wikipedia/_locales/sl/messages.json
deleted file mode 100644
index 7385a2203474..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/sl/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedija (sl)"
- },
- "extensionDescription": {
- "message": "Wikipedija, prosta enciklopedija"
- },
- "searchUrl": {
- "message": "https://sl.wikipedia.org/wiki/Posebno:Iskanje"
- },
- "searchForm": {
- "message": "https://sl.wikipedia.org/wiki/Posebno:Iskanje?search={searchTerms}&sourceid…"
- },
- "suggestUrl": {
- "message": "https://sl.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/sq/messages.json b/browser/components/search/extensions/wikipedia/_locales/sq/messages.json
deleted file mode 100644
index 68361d8ab294..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/sq/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedia (sq)"
- },
- "extensionDescription": {
- "message": "Wikipedia, enciklopedia e lirë"
- },
- "searchUrl": {
- "message": "https://sq.wikipedia.org/wiki/Speciale:Kërkim"
- },
- "searchForm": {
- "message": "https://sq.wikipedia.org/wiki/Speciale:Kërkim?search={searchTerms}&sourceid…"
- },
- "suggestUrl": {
- "message": "https://sq.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/sr/messages.json b/browser/components/search/extensions/wikipedia/_locales/sr/messages.json
deleted file mode 100644
index 50ebc0a197a1..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/sr/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Википедија (sr)"
- },
- "extensionDescription": {
- "message": "Претрага Википедије на српском језику"
- },
- "searchUrl": {
- "message": "https://sr.wikipedia.org/wiki/Посебно:Претражи"
- },
- "searchForm": {
- "message": "https://sr.wikipedia.org/wiki/Посебно:Претражи?search={searchTerms}&sourcei…"
- },
- "suggestUrl": {
- "message": "https://sr.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/sv-SE/messages.json b/browser/components/search/extensions/wikipedia/_locales/sv-SE/messages.json
deleted file mode 100644
index 1edc3db80d98..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/sv-SE/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedia (sv)"
- },
- "extensionDescription": {
- "message": "Wikipedia, den fria encyklopedin"
- },
- "searchUrl": {
- "message": "https://sv.wikipedia.org/wiki/Special:Sök"
- },
- "searchForm": {
- "message": "https://sv.wikipedia.org/wiki/Special:Sök?search={searchTerms}&sourceid=Moz…"
- },
- "suggestUrl": {
- "message": "https://sv.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/ta/messages.json b/browser/components/search/extensions/wikipedia/_locales/ta/messages.json
deleted file mode 100644
index 54397603b028..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/ta/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "விக்கிப்பீடியா (ta)"
- },
- "extensionDescription": {
- "message": "விக்கிப்பீடியா (ta)"
- },
- "searchUrl": {
- "message": "https://ta.wikipedia.org/wiki/சிறப்பு:Search"
- },
- "searchForm": {
- "message": "https://ta.wikipedia.org/wiki/சிறப்பு:Search?search={searchTerms}&sourceid=…"
- },
- "suggestUrl": {
- "message": "https://ta.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/te/messages.json b/browser/components/search/extensions/wikipedia/_locales/te/messages.json
deleted file mode 100644
index c474be12a76f..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/te/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "వికీపీడియా (te)"
- },
- "extensionDescription": {
- "message": "వికీపీడియా (te)"
- },
- "searchUrl": {
- "message": "https://te.wikipedia.org/wiki/ప్రత్యేక:అన్వేషణ"
- },
- "searchForm": {
- "message": "https://te.wikipedia.org/wiki/ప్రత్యేక:అన్వేషణ?search={searchTerms}&sourcei…"
- },
- "suggestUrl": {
- "message": "https://te.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/th/messages.json b/browser/components/search/extensions/wikipedia/_locales/th/messages.json
deleted file mode 100644
index 3d6aeb07ca2c..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/th/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "วิกิพีเดีย"
- },
- "extensionDescription": {
- "message": "วิกิพีเดีย สารานุกรมเสรี"
- },
- "searchUrl": {
- "message": "https://th.wikipedia.org/wiki/พิเศษ:ค้นหา"
- },
- "searchForm": {
- "message": "https://th.wikipedia.org/wiki/พิเศษ:ค้นหา?search={searchTerms}&sourceid=Moz…"
- },
- "suggestUrl": {
- "message": "https://th.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/tl/messages.json b/browser/components/search/extensions/wikipedia/_locales/tl/messages.json
deleted file mode 100644
index d55b03131f97..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/tl/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedia (tl)"
- },
- "extensionDescription": {
- "message": "Wikipedia, ang malayang ensiklopedya"
- },
- "searchUrl": {
- "message": "https://tl.wikipedia.org/wiki/Natatangi:Maghanap"
- },
- "searchForm": {
- "message": "https://tl.wikipedia.org/wiki/Natatangi:Maghanap?search={searchTerms}&sourc…"
- },
- "suggestUrl": {
- "message": "https://tl.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/tr/messages.json b/browser/components/search/extensions/wikipedia/_locales/tr/messages.json
deleted file mode 100644
index 878b28ab68b2..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/tr/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedia (tr)"
- },
- "extensionDescription": {
- "message": "Vikipedi, özgür ansiklopedi"
- },
- "searchUrl": {
- "message": "https://tr.wikipedia.org/wiki/Özel:Ara"
- },
- "searchForm": {
- "message": "https://tr.wikipedia.org/wiki/Özel:Ara?search={searchTerms}&sourceid=Mozill…"
- },
- "suggestUrl": {
- "message": "https://tr.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/uk/messages.json b/browser/components/search/extensions/wikipedia/_locales/uk/messages.json
deleted file mode 100644
index 2749b86304bf..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/uk/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Вікіпедія (uk)"
- },
- "extensionDescription": {
- "message": "Вікіпедія, вільна енциклопедія"
- },
- "searchUrl": {
- "message": "https://uk.wikipedia.org/wiki/Спеціальна:Пошук"
- },
- "searchForm": {
- "message": "https://uk.wikipedia.org/wiki/Спеціальна:Пошук?search={searchTerms}&sourcei…"
- },
- "suggestUrl": {
- "message": "https://uk.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/ur/messages.json b/browser/components/search/extensions/wikipedia/_locales/ur/messages.json
deleted file mode 100644
index dcc87e0c853c..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/ur/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "ویکیپیڈیا (ur)"
- },
- "extensionDescription": {
- "message": "ویکیپیڈیا آزاد دائرۃ المعارف"
- },
- "searchUrl": {
- "message": "https://ur.wikipedia.org/wiki/خاص:تلاش"
- },
- "searchForm": {
- "message": "https://ur.wikipedia.org/wiki/خاص:تلاش?search={searchTerms}&sourceid=Mozill…"
- },
- "suggestUrl": {
- "message": "https://ur.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/uz/messages.json b/browser/components/search/extensions/wikipedia/_locales/uz/messages.json
deleted file mode 100644
index 89a8f2a89bca..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/uz/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Vikipediya (uz)"
- },
- "extensionDescription": {
- "message": "Vikipediya, ochiq ensiklopediya"
- },
- "searchUrl": {
- "message": "https://uz.wikipedia.org/wiki/Maxsus:Search"
- },
- "searchForm": {
- "message": "https://uz.wikipedia.org/wiki/Maxsus:Search?search={searchTerms}&sourceid=M…"
- },
- "suggestUrl": {
- "message": "https://uz.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/vi/messages.json b/browser/components/search/extensions/wikipedia/_locales/vi/messages.json
deleted file mode 100644
index c0844e4feb14..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/vi/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedia (vi)"
- },
- "extensionDescription": {
- "message": "Wikipedia, bách khoa toàn thư mở"
- },
- "searchUrl": {
- "message": "https://vi.wikipedia.org/wiki/Đặc_biệt:Tìm_kiếm"
- },
- "searchForm": {
- "message": "https://vi.wikipedia.org/wiki/Đặc_biệt:Tìm_kiếm?search={searchTerms}&source…"
- },
- "suggestUrl": {
- "message": "https://vi.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/wo/messages.json b/browser/components/search/extensions/wikipedia/_locales/wo/messages.json
deleted file mode 100644
index 7efde3b1d0f4..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/wo/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedia (wo)"
- },
- "extensionDescription": {
- "message": "Wikipedia, Jimbulang bu Ubbeeku bi"
- },
- "searchUrl": {
- "message": "https://wo.wikipedia.org/wiki/Jagleel:Ceet"
- },
- "searchForm": {
- "message": "https://wo.wikipedia.org/wiki/Jagleel:Ceet?search={searchTerms}&sourceid=Mo…"
- },
- "suggestUrl": {
- "message": "https://wo.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/zh-CN/messages.json b/browser/components/search/extensions/wikipedia/_locales/zh-CN/messages.json
deleted file mode 100644
index 29047565a243..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/zh-CN/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "维基百科"
- },
- "extensionDescription": {
- "message": "维基百科,自由的百科全书"
- },
- "searchUrl": {
- "message": "https://zh.wikipedia.org/wiki/Special:搜索"
- },
- "searchForm": {
- "message": "https://zh.wikipedia.org/wiki/Special:搜索?search={searchTerms}&sourceid=Mozi…"
- },
- "suggestUrl": {
- "message": "https://zh.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/_locales/zh-TW/messages.json b/browser/components/search/extensions/wikipedia/_locales/zh-TW/messages.json
deleted file mode 100644
index a0e8d880ea26..000000000000
--- a/browser/components/search/extensions/wikipedia/_locales/zh-TW/messages.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "extensionName": {
- "message": "Wikipedia (zh)"
- },
- "extensionDescription": {
- "message": "維基百科,自由的百科全書"
- },
- "searchUrl": {
- "message": "https://zh.wikipedia.org/wiki/Special:搜索"
- },
- "searchForm": {
- "message": "https://zh.wikipedia.org/wiki/Special:搜索?search={searchTerms}&sourceid=Mozi…"
- },
- "suggestUrl": {
- "message": "https://zh.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
- },
- "searchUrlGetParams": {
- "message": "search={searchTerms}&sourceid=Mozilla-search&variant=zh-tw"
- }
-}
\ No newline at end of file
diff --git a/browser/components/search/extensions/wikipedia/manifest.json b/browser/components/search/extensions/wikipedia/manifest.json
index cd95d3aa9e1c..0af3b2a1c211 100644
--- a/browser/components/search/extensions/wikipedia/manifest.json
+++ b/browser/components/search/extensions/wikipedia/manifest.json
@@ -1,6 +1,6 @@
{
- "name": "__MSG_extensionName__",
- "description": "__MSG_extensionDescription__",
+ "name": "Wikipedia (en)",
+ "description": "Wikipedia, the Free Encyclopedia",
"manifest_version": 2,
"version": "1.1",
"applications": {
@@ -9,7 +9,6 @@
}
},
"hidden": true,
- "default_locale": "en",
"icons": {
"16": "favicon.ico"
},
@@ -19,11 +18,11 @@
"chrome_settings_overrides": {
"search_provider": {
"keyword": "@wikipedia",
- "name": "__MSG_extensionName__",
- "search_url": "__MSG_searchUrl__",
- "search_form": "__MSG_searchForm__",
- "suggest_url": "__MSG_suggestUrl__",
- "search_url_get_params": "__MSG_searchUrlGetParams__"
+ "name": "Wikipedia (en)",
+ "search_url": "https://en.wikipedia.org/wiki/Special:Search",
+ "search_form": "https://en.wikipedia.org/wiki/Special:Search?search={searchTerms}&sourceid=…",
+ "suggest_url": "https://en.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}",
+ "search_url_get_params": "search={searchTerms}&sourceid=Mozilla-search"
}
}
}
diff --git a/browser/components/search/extensions/yahoo/favicon.ico b/browser/components/search/extensions/yahoo/favicon.ico
new file mode 100644
index 000000000000..9bd1d9f7c008
Binary files /dev/null and b/browser/components/search/extensions/yahoo/favicon.ico differ
diff --git a/browser/components/search/extensions/yahoo/manifest.json b/browser/components/search/extensions/yahoo/manifest.json
new file mode 100644
index 000000000000..e1f04a373c2e
--- /dev/null
+++ b/browser/components/search/extensions/yahoo/manifest.json
@@ -0,0 +1,28 @@
+{
+ "name": "Yahoo",
+ "description": "Yahoo Search",
+ "manifest_version": 2,
+ "version": "1.0",
+ "applications": {
+ "gecko": {
+ "id": "yahoo(a)search.mozilla.org"
+ }
+ },
+ "hidden": true,
+ "icons": {
+ "16": "favicon.ico"
+ },
+ "web_accessible_resources": [
+ "favicon.ico"
+ ],
+ "chrome_settings_overrides": {
+ "search_provider": {
+ "name": "Yahoo",
+ "search_url": "https://search.yahoo.com/yhs/search",
+ "search_form": "https://search.yahoo.com/yhs/search?p={searchTerms}&ei=UTF-8&hspart=mozilla",
+ "search_url_get_params": "p={searchTerms}&ei=UTF-8&hspart=mozilla",
+ "suggest_url": "https://search.yahoo.com/sugg/ff",
+ "suggest_url_get_params": "output=fxjson&appid=ffd&command={searchTerms}"
+ }
+ }
+}
diff --git a/browser/components/search/extensions/youtube/favicon.ico b/browser/components/search/extensions/youtube/favicon.ico
new file mode 100644
index 000000000000..977887dbbb84
Binary files /dev/null and b/browser/components/search/extensions/youtube/favicon.ico differ
diff --git a/browser/components/search/extensions/youtube/manifest.json b/browser/components/search/extensions/youtube/manifest.json
new file mode 100644
index 000000000000..6fbf8745bac2
--- /dev/null
+++ b/browser/components/search/extensions/youtube/manifest.json
@@ -0,0 +1,26 @@
+{
+ "name": "YouTube",
+ "description": "YouTube - Videos",
+ "manifest_version": 2,
+ "version": "1.0",
+ "applications": {
+ "gecko": {
+ "id": "youtube(a)search.mozilla.org"
+ }
+ },
+ "hidden": true,
+ "icons": {
+ "16": "favicon.ico"
+ },
+ "web_accessible_resources": [
+ "favicon.ico"
+ ],
+ "chrome_settings_overrides": {
+ "search_provider": {
+ "name": "YouTube",
+ "search_url": "https://www.youtube.com/results?search_query={searchTerms}&search=Search",
+ "search_form": "https://www.youtube.com/index",
+ "suggest_url": "https://suggestqueries.google.com/complete/search?output=firefox&ds=yt&q={s…"
+ }
+ }
+}
\ No newline at end of file
diff --git a/tbb-tests/browser_tor_omnibox.js b/tbb-tests/browser_tor_omnibox.js
new file mode 100644
index 000000000000..3bb90f51a305
--- /dev/null
+++ b/tbb-tests/browser_tor_omnibox.js
@@ -0,0 +1,20 @@
+// # Test Tor Omnibox
+// Check what search engines are installed in the search box.
+
+add_task(async function() {
+ // Grab engine IDs.
+ let browserSearchService = Components.classes["@mozilla.org/browser/search-service;1"]
+ .getService(Components.interfaces.nsISearchService),
+ engineIDs = (await browserSearchService.getEngines()).map(e => e.identifier);
+
+ // Check that we have the correct engines installed, in the right order.
+ is(engineIDs[0], "ddg", "Default search engine is duckduckgo");
+ is(engineIDs[1], "youtube", "Secondary search engine is youtube");
+ is(engineIDs[2], "google", "Google is third search engine");
+ is(engineIDs[3], "blockchair", "Blockchair is fourth search engine");
+ is(engineIDs[4], "ddg-onion", "Duck Duck Go Onion is fifth search engine");
+ is(engineIDs[5], "startpage", "Startpage is sixth search engine");
+ is(engineIDs[6], "twitter", "Twitter is sixth search engine");
+ is(engineIDs[7], "wikipedia", "Wikipedia is seventh search engine");
+ is(engineIDs[8], "yahoo", "Yahoo is eighth search engine");
+});
diff --git a/toolkit/components/search/SearchService.jsm b/toolkit/components/search/SearchService.jsm
index 98fb8be74d86..776c8fca10d5 100644
--- a/toolkit/components/search/SearchService.jsm
+++ b/toolkit/components/search/SearchService.jsm
@@ -19,7 +19,6 @@ XPCOMUtils.defineLazyModuleGetters(this, {
Region: "resource://gre/modules/Region.jsm",
RemoteSettings: "resource://services-settings/remote-settings.js",
SearchEngine: "resource://gre/modules/SearchEngine.jsm",
- SearchEngineSelector: "resource://gre/modules/SearchEngineSelector.jsm",
SearchSettings: "resource://gre/modules/SearchSettings.jsm",
SearchStaticData: "resource://gre/modules/SearchStaticData.jsm",
SearchUtils: "resource://gre/modules/SearchUtils.jsm",
@@ -248,11 +247,6 @@ SearchService.prototype = {
Services.obs.addObserver(this, Region.REGION_TOPIC);
try {
- // Create the search engine selector.
- this._engineSelector = new SearchEngineSelector(
- this._handleConfigurationUpdated.bind(this)
- );
-
// See if we have a settings file so we don't have to parse a bunch of XML.
let settings = await this._settings.get();
@@ -1057,16 +1051,18 @@ SearchService.prototype = {
? "esr"
: AppConstants.MOZ_UPDATE_CHANNEL;
- let {
- engines,
- privateDefault,
- } = await this._engineSelector.fetchEngineConfiguration({
- locale,
- region,
- channel,
- experiment: gExperiment,
- distroID: SearchUtils.distroID,
- });
+ const engines = [
+ { webExtension: { id: "ddg(a)search.mozilla.org" }, orderHint: 100 },
+ { webExtension: { id: "youtube(a)search.mozilla.org" }, orderHint: 90 },
+ { webExtension: { id: "google(a)search.mozilla.org" }, orderHint: 80 },
+ { webExtension: { id: "blockchair(a)search.mozilla.org" }, orderHint: 70 },
+ { webExtension: { id: "ddg-onion(a)search.mozilla.org" }, orderHint: 60 },
+ { webExtension: { id: "blockchair-onion(a)search.mozilla.org" }, orderHint: 50 },
+ { webExtension: { id: "startpage(a)search.mozilla.org" }, orderHint: 40 },
+ { webExtension: { id: "twitter(a)search.mozilla.org" }, orderHint: 30 },
+ { webExtension: { id: "wikipedia(a)search.mozilla.org" }, orderHint: 20 },
+ { webExtension: { id: "yahoo(a)search.mozilla.org" }, orderHint: 10 },
+ ];
for (let e of engines) {
if (!e.webExtension) {
@@ -1075,7 +1071,7 @@ SearchService.prototype = {
e.webExtension.locale = e.webExtension?.locale ?? SearchUtils.DEFAULT_TAG;
}
- return { engines, privateDefault };
+ return { engines, privateDefault: undefined };
},
_setDefaultAndOrdersFromSelector(engines, privateDefault) {
1
0
[tor-browser/tor-browser-91.6.0esr-11.0-1] Bug 13379: Sign our MAR files.
by richard@torproject.org 03 Feb '22
by richard@torproject.org 03 Feb '22
03 Feb '22
commit 304d483366a072e8663027734f95765621fe17e2
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Wed Dec 17 16:37:11 2014 -0500
Bug 13379: Sign our MAR files.
Configure with --enable-verify-mar (when updating, require a valid
signature on the MAR file before it is applied).
Use the Tor Browser version instead of the Firefox version inside the
MAR file info block (necessary to prevent downgrade attacks).
Use NSS on all platforms for checking MAR signatures (instead of using
OS-native APIs, which Mozilla does on Mac OS and Windows). So that the
NSS and NSPR libraries the updater depends on can be found at runtime,
we add the firefox directory to the shared library search path on macOS.
On Linux, rpath is used by Mozilla to solve that problem, but that
approach won't work on macOS because the updater executable is copied
during the update process to a location that is under TorBrowser-Data,
and the location of TorBrowser-Data varies.
Also includes the fix for bug 18900.
---
.mozconfig | 1 +
.mozconfig-asan | 1 +
.mozconfig-mac | 1 +
.mozconfig-mingw | 1 +
modules/libmar/tool/mar.c | 6 +--
modules/libmar/tool/moz.build | 12 ++++--
modules/libmar/verify/moz.build | 14 +++---
.../mozapps/update/updater/updater-common.build | 24 +++++++++--
toolkit/mozapps/update/updater/updater.cpp | 25 +++++++----
toolkit/xre/moz.build | 3 ++
toolkit/xre/nsUpdateDriver.cpp | 50 ++++++++++++++++++++++
11 files changed, 113 insertions(+), 25 deletions(-)
diff --git a/.mozconfig b/.mozconfig
index 18cd1f9b6487..c50c57d410de 100755
--- a/.mozconfig
+++ b/.mozconfig
@@ -37,3 +37,4 @@ ac_add_options MOZ_TELEMETRY_REPORTING=
ac_add_options --disable-tor-launcher
ac_add_options --with-tor-browser-version=dev-build
ac_add_options --disable-tor-browser-update
+ac_add_options --enable-verify-mar
diff --git a/.mozconfig-asan b/.mozconfig-asan
index 98ea6ac6f3fe..8bee813bfee8 100644
--- a/.mozconfig-asan
+++ b/.mozconfig-asan
@@ -30,6 +30,7 @@ ac_add_options --enable-official-branding
ac_add_options --enable-default-toolkit=cairo-gtk3
ac_add_options --enable-tor-browser-update
+ac_add_options --enable-verify-mar
ac_add_options --disable-strip
ac_add_options --disable-install-strip
diff --git a/.mozconfig-mac b/.mozconfig-mac
index 26e2b6b92fdb..5b4624ef1f67 100644
--- a/.mozconfig-mac
+++ b/.mozconfig-mac
@@ -43,6 +43,7 @@ ac_add_options --disable-debug
ac_add_options --enable-tor-browser-data-outside-app-dir
ac_add_options --enable-tor-browser-update
+ac_add_options --enable-verify-mar
ac_add_options --disable-crashreporter
ac_add_options --disable-webrtc
diff --git a/.mozconfig-mingw b/.mozconfig-mingw
index 3ec6ff18a3e9..ce6ace1dad67 100644
--- a/.mozconfig-mingw
+++ b/.mozconfig-mingw
@@ -15,6 +15,7 @@ ac_add_options --enable-strip
ac_add_options --enable-official-branding
ac_add_options --enable-tor-browser-update
+ac_add_options --enable-verify-mar
ac_add_options --disable-bits-download
# Let's make sure no preference is enabling either Adobe's or Google's CDM.
diff --git a/modules/libmar/tool/mar.c b/modules/libmar/tool/mar.c
index 0bf2cb4bd1d4..ea2b79924914 100644
--- a/modules/libmar/tool/mar.c
+++ b/modules/libmar/tool/mar.c
@@ -65,7 +65,7 @@ static void print_usage() {
"signed_input_archive.mar base_64_encoded_signature_file "
"changed_signed_output.mar\n");
printf("(i) is the index of the certificate to extract\n");
-# if defined(XP_MACOSX) || (defined(XP_WIN) && !defined(MAR_NSS))
+# if (defined(XP_MACOSX) || defined(XP_WIN)) && !defined(MAR_NSS)
printf("Verify a MAR file:\n");
printf(" mar [-C workingDir] -D DERFilePath -v signed_archive.mar\n");
printf(
@@ -149,7 +149,7 @@ int main(int argc, char** argv) {
memset((void*)certBuffers, 0, sizeof(certBuffers));
#endif
#if !defined(NO_SIGN_VERIFY) && \
- ((!defined(MAR_NSS) && defined(XP_WIN)) || defined(XP_MACOSX))
+ (!defined(MAR_NSS) && (defined(XP_WIN) || defined(XP_MACOSX)))
memset(DERFilePaths, 0, sizeof(DERFilePaths));
memset(fileSizes, 0, sizeof(fileSizes));
#endif
@@ -181,7 +181,7 @@ int main(int argc, char** argv) {
argc -= 2;
}
#if !defined(NO_SIGN_VERIFY)
-# if (!defined(MAR_NSS) && defined(XP_WIN)) || defined(XP_MACOSX)
+# if (!defined(MAR_NSS) && (defined(XP_WIN) || defined(XP_MACOSX)))
/* -D DERFilePath, also matches -D[index] DERFilePath
We allow an index for verifying to be symmetric
with the import and export command line arguments. */
diff --git a/modules/libmar/tool/moz.build b/modules/libmar/tool/moz.build
index a6d26c66a668..d6fa1677ddf1 100644
--- a/modules/libmar/tool/moz.build
+++ b/modules/libmar/tool/moz.build
@@ -43,15 +43,21 @@ if CONFIG["MOZ_BUILD_APP"] != "tools/update-packaging":
"verifymar",
]
+ if CONFIG["TOR_BROWSER_UPDATE"]:
+ DEFINES["MAR_NSS"] = True
+
if CONFIG["OS_ARCH"] == "WINNT":
USE_STATIC_LIBS = True
OS_LIBS += [
"ws2_32",
- "crypt32",
- "advapi32",
]
- elif CONFIG["OS_ARCH"] == "Darwin":
+ if not CONFIG["TOR_BROWSER_UPDATE"]:
+ OS_LIBS += [
+ "crypt32",
+ "advapi32",
+ ]
+ elif CONFIG["OS_ARCH"] == "Darwin" and not CONFIG["TOR_BROWSER_UPDATE"]:
OS_LIBS += [
"-framework Security",
]
diff --git a/modules/libmar/verify/moz.build b/modules/libmar/verify/moz.build
index b07475655f0d..03718eee50b4 100644
--- a/modules/libmar/verify/moz.build
+++ b/modules/libmar/verify/moz.build
@@ -16,15 +16,12 @@ FORCE_STATIC_LIB = True
if CONFIG["OS_ARCH"] == "WINNT":
USE_STATIC_LIBS = True
elif CONFIG["OS_ARCH"] == "Darwin":
- UNIFIED_SOURCES += [
- "MacVerifyCrypto.cpp",
- ]
- OS_LIBS += [
- "-framework Security",
+ USE_LIBS += [
+ "nspr",
+ "nss",
+ "signmar",
]
else:
- DEFINES["MAR_NSS"] = True
- LOCAL_INCLUDES += ["../sign"]
USE_LIBS += [
"nspr",
"nss",
@@ -38,6 +35,9 @@ else:
"-Wl,-rpath=\\$$ORIGIN",
]
+DEFINES["MAR_NSS"] = True
+LOCAL_INCLUDES += ["../sign"]
+
LOCAL_INCLUDES += [
"../src",
]
diff --git a/toolkit/mozapps/update/updater/updater-common.build b/toolkit/mozapps/update/updater/updater-common.build
index 13926ea82046..a4173889271b 100644
--- a/toolkit/mozapps/update/updater/updater-common.build
+++ b/toolkit/mozapps/update/updater/updater-common.build
@@ -4,6 +4,10 @@
# 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/.
+DEFINES["MAR_NSS"] = True
+
+link_with_nss = DEFINES["MAR_NSS"] or (CONFIG["OS_ARCH"] == "Linux" and CONFIG["MOZ_VERIFY_MAR_SIGNATURE"])
+
srcs = [
"archivereader.cpp",
"updater.cpp",
@@ -36,10 +40,14 @@ if CONFIG["OS_ARCH"] == "WINNT":
"ws2_32",
"shell32",
"shlwapi",
- "crypt32",
- "advapi32",
]
+ if not link_with_nss:
+ OS_LIBS += [
+ "crypt32",
+ "advapi32",
+ ]
+
USE_LIBS += [
"bspatch",
"mar",
@@ -47,6 +55,13 @@ USE_LIBS += [
"xz-embedded",
]
+if link_with_nss:
+ USE_LIBS += [
+ "nspr",
+ "nss",
+ "signmar",
+ ]
+
if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
have_progressui = 1
srcs += [
@@ -61,9 +76,12 @@ if CONFIG["MOZ_WIDGET_TOOLKIT"] == "cocoa":
]
OS_LIBS += [
"-framework Cocoa",
- "-framework Security",
"-framework SystemConfiguration",
]
+ if not link_with_nss:
+ OS_LIBS += [
+ "-framework Security",
+ ]
UNIFIED_SOURCES += [
"/toolkit/xre/updaterfileutils_osx.mm",
]
diff --git a/toolkit/mozapps/update/updater/updater.cpp b/toolkit/mozapps/update/updater/updater.cpp
index b9b982367137..f1598ea9b529 100644
--- a/toolkit/mozapps/update/updater/updater.cpp
+++ b/toolkit/mozapps/update/updater/updater.cpp
@@ -110,9 +110,11 @@ struct UpdateServerThreadArgs {
# define stat64 stat
#endif
-#if defined(MOZ_VERIFY_MAR_SIGNATURE) && !defined(XP_WIN) && !defined(XP_MACOSX)
-# include "nss.h"
-# include "prerror.h"
+#if defined(MOZ_VERIFY_MAR_SIGNATURE)
+# if defined(MAR_NSS) || (!defined(XP_WIN) && !defined(XP_MACOSX))
+# include "nss.h"
+# include "prerror.h"
+# endif
#endif
#include "crctable.h"
@@ -2726,8 +2728,13 @@ static void UpdateThreadFunc(void* param) {
if (ReadMARChannelIDs(updateSettingsPath, &MARStrings) != OK) {
rv = UPDATE_SETTINGS_FILE_CHANNEL;
} else {
+# ifdef TOR_BROWSER_UPDATE
+ const char* appVersion = TOR_BROWSER_VERSION_QUOTED;
+# else
+ const char* appVersion = MOZ_APP_VERSION;
+# endif
rv = gArchiveReader.VerifyProductInformation(
- MARStrings.MARChannelID.get(), MOZ_APP_VERSION);
+ MARStrings.MARChannelID.get(), appVersion);
}
}
}
@@ -2963,11 +2970,10 @@ int NS_main(int argc, NS_tchar** argv) {
}
#endif
-#if defined(MOZ_VERIFY_MAR_SIGNATURE) && !defined(XP_WIN) && !defined(XP_MACOSX)
- // On Windows and Mac we rely on native APIs to do verifications so we don't
- // need to initialize NSS at all there.
- // Otherwise, minimize the amount of NSS we depend on by avoiding all the NSS
- // databases.
+#if defined(MOZ_VERIFY_MAR_SIGNATURE)
+# if defined(MAR_NSS) || (!defined(XP_WIN) && !defined(XP_MACOSX))
+ // If using NSS for signature verification, initialize NSS but minimize
+ // the portion we depend on by avoiding all of the NSS databases.
if (NSS_NoDB_Init(nullptr) != SECSuccess) {
PRErrorCode error = PR_GetError();
fprintf(stderr, "Could not initialize NSS: %s (%d)", PR_ErrorToName(error),
@@ -2975,6 +2981,7 @@ int NS_main(int argc, NS_tchar** argv) {
_exit(1);
}
#endif
+#endif
#ifdef XP_MACOSX
if (!isElevated) {
diff --git a/toolkit/xre/moz.build b/toolkit/xre/moz.build
index 90d06481ee9e..56a2d7173d3c 100644
--- a/toolkit/xre/moz.build
+++ b/toolkit/xre/moz.build
@@ -233,6 +233,9 @@ for var in ("APP_VERSION", "APP_ID"):
if CONFIG["MOZ_BUILD_APP"] == "browser":
DEFINES["MOZ_BUILD_APP_IS_BROWSER"] = True
+if CONFIG['TOR_BROWSER_UPDATE']:
+ DEFINES['MAR_NSS'] = True
+
LOCAL_INCLUDES += [
"../../other-licenses/nsis/Contrib/CityHash/cityhash",
"../components/find",
diff --git a/toolkit/xre/nsUpdateDriver.cpp b/toolkit/xre/nsUpdateDriver.cpp
index 2b176266b05f..c230567bd013 100644
--- a/toolkit/xre/nsUpdateDriver.cpp
+++ b/toolkit/xre/nsUpdateDriver.cpp
@@ -366,6 +366,42 @@ static nsresult GetUpdateDirFromAppDir(nsIFile* aAppDir, nsIFile** aResult) {
# endif
#endif
+#if defined(TOR_BROWSER_UPDATE) && defined(MOZ_VERIFY_MAR_SIGNATURE) && \
+ defined(MAR_NSS) && defined(XP_MACOSX)
+/**
+ * Ideally we would save and restore the original library path value after
+ * the updater finishes its work (and before firefox is re-launched).
+ * Doing so would avoid potential problems like the following bug:
+ * https://bugzilla.mozilla.org/show_bug.cgi?id=1434033
+ */
+/**
+ * Appends the specified path to the library path.
+ * This is used so that the updater can find libnss3.dylib and other
+ * shared libs.
+ *
+ * @param pathToAppend A new library path to prepend to the dynamic linker's
+ * search path.
+ */
+# include "prprf.h"
+# define PATH_SEPARATOR ":"
+# define LD_LIBRARY_PATH_ENVVAR_NAME "DYLD_LIBRARY_PATH"
+static void AppendToLibPath(const char* pathToAppend) {
+ char* pathValue = getenv(LD_LIBRARY_PATH_ENVVAR_NAME);
+ if (nullptr == pathValue || '\0' == *pathValue) {
+ // Leak the string because that is required by PR_SetEnv.
+ char* s =
+ Smprintf("%s=%s", LD_LIBRARY_PATH_ENVVAR_NAME, pathToAppend).release();
+ PR_SetEnv(s);
+ } else {
+ // Leak the string because that is required by PR_SetEnv.
+ char* s = Smprintf("%s=%s" PATH_SEPARATOR "%s", LD_LIBRARY_PATH_ENVVAR_NAME,
+ pathToAppend, pathValue)
+ .release();
+ PR_SetEnv(s);
+ }
+}
+#endif
+
/**
* Applies, switches, or stages an update.
*
@@ -612,6 +648,20 @@ static void ApplyUpdate(nsIFile* greDir, nsIFile* updateDir, nsIFile* appDir,
PR_SetEnv("MOZ_SAFE_MODE_RESTART=1");
}
+#if defined(TOR_BROWSER_UPDATE) && defined(MOZ_VERIFY_MAR_SIGNATURE) && \
+ defined(MAR_NSS) && defined(XP_MACOSX)
+ // On macOS, append the app directory to the shared library search path
+ // so the system can locate the shared libraries that are needed by the
+ // updater, e.g., libnss3.dylib).
+ nsAutoCString appPath;
+ nsresult rv2 = appDir->GetNativePath(appPath);
+ if (NS_SUCCEEDED(rv2)) {
+ AppendToLibPath(appPath.get());
+ } else {
+ LOG(("ApplyUpdate -- appDir->GetNativePath() failed (0x%x)\n", rv2));
+ }
+#endif
+
LOG(("spawning updater process [%s]\n", updaterPath.get()));
#ifdef DEBUG
dump_argv("ApplyUpdate updater", argv, argc);
1
0