--- a/browser/extensions/followonsearch/content/followonsearch-fs.js
+++ b/browser/extensions/followonsearch/content/followonsearch-fs.js
@@ -17,52 +17,43 @@ const kLastSearchQueueDepth = 10;
/**
* A map of search domains with their expected codes.
*/
let searchDomains = [{
"domains": [ "search.yahoo.co.jp" ],
"search": "p",
"followOnSearch": "ai",
- "prefix": "fr",
+ "prefix": ["fr"],
"codes": ["mozff"],
"sap": "yahoo",
}, {
"domains": [ "www.bing.com" ],
"search": "q",
- "prefix": "pc",
+ "prefix": ["pc"],
"reportPrefix": "form",
"codes": ["MOZI", "MOZD", "MZSL01", "MZSL02", "MZSL03", "MOZ2"],
"sap": "bing",
}, {
// The Yahoo domains to watch for.
"domains": [
"search.yahoo.com", "ca.search.yahoo.com", "hk.search.yahoo.com",
- "tw.search.yahoo.com", "mozilla.search.yahoo.com", "us.search.yahoo.com"
- ],
- "search": "p",
- "followOnSearch": "fr2",
- "prefix": "hspart",
- "reportPrefix": "hsimp",
- "codes": ["mozilla"],
- "sap": "yahoo",
-}, {
- // The Yahoo legacy domains.
- "domains": [
+ "tw.search.yahoo.com", "mozilla.search.yahoo.com", "us.search.yahoo.com",
"no.search.yahoo.com", "ar.search.yahoo.com", "br.search.yahoo.com",
"ch.search.yahoo.com", "cl.search.yahoo.com", "de.search.yahoo.com",
"uk.search.yahoo.com", "es.search.yahoo.com", "espanol.search.yahoo.com",
"fi.search.yahoo.com", "fr.search.yahoo.com", "nl.search.yahoo.com",
"id.search.yahoo.com", "in.search.yahoo.com", "it.search.yahoo.com",
"mx.search.yahoo.com", "se.search.yahoo.com", "sg.search.yahoo.com",
],
"search": "p",
"followOnSearch": "fr2",
- "prefix": "fr",
- "codes": ["moz35"],
+ "prefix": ["hspart", "fr"],
+ "reportPrefix": "hsimp",
+ "codes": ["mozilla", "moz35"],
"sap": "yahoo",
}, {
// The Google domains.
"domains": [
"www.google.com", "www.google.ac", "www.google.ad", "www.google.ae",
"www.google.com.af", "www.google.com.ag", "www.google.com.ai",
"www.google.al", "www.google.am", "www.google.co.ao", "www.google.com.ar",
"www.google.as", "www.google.at", "www.google.com.au", "www.google.az",
@@ -111,17 +102,17 @@ let searchDomains = [{
"www.google.tn", "www.google.com.tr", "www.google.tt", "www.google.com.tw",
"www.google.co.tz", "www.google.com.ua", "www.google.co.ug",
"www.google.co.uk", "www.google.us", "www.google.com.uy", "www.google.co.uz",
"www.google.com.vc", "www.google.co.ve", "www.google.vg", "www.google.co.vi",
"www.google.com.vn", "www.google.vu", "www.google.ws", "www.google.co.za",
"www.google.co.zm", "www.google.co.zw",
],
"search": "q",
- "prefix": "client",
+ "prefix": ["client"],
"followOnSearch": "oq",
"codes": ["firefox-b-ab", "firefox-b"],
"sap": "google",
}];
function getSearchDomainCodes(host) {
for (let domainInfo of searchDomains) {
if (domainInfo.domains.includes(host)) {
@@ -183,17 +174,23 @@ var webProgressListener = {
}
let domainInfo = getSearchDomainCodes(aLocation.host);
if (!domainInfo) {
searchingGoogle = false;
return;
}
let queries = new URLSearchParams(aLocation.query);
- let code = queries.get(domainInfo.prefix);
+ // Yahoo has switched to Unified search so we can get
+ // different codes on the same domain. Hack for now
+ // to allow two different prefixes for codes
+ let code = queries.get(domainInfo.prefix[0]);
+ if (!code && domainInfo.prefix.length > 1) {
+ code = queries.get(domainInfo.prefix[1]);
+ }
// Special case Google so we can track searches
// without codes from the browser.
if (domainInfo.sap == "google") {
if (aLocation.filePath == "/search") {
gLastSearchQueue.push(aLocation.spec);
// Our engine currently sends oe and ie - no one else does
if (queries.get("oe") && queries.get("ie")) {
sendSaveTelemetryMsg(code ? code : "none", code ? domainInfo.sap : "google-nocodes", "sap");