diff --git a/Cargo.lock b/Cargo.lock index 4d99f2229c15..effd71b9f837 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2937,6 +2937,7 @@ dependencies = [ "fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", "plane-split 0.13.3 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/browser/branding/aurora/pref/firefox-branding.js b/browser/branding/aurora/pref/firefox-branding.js index eab20db6facd..f83ef604ad7b 100644 --- a/browser/branding/aurora/pref/firefox-branding.js +++ b/browser/branding/aurora/pref/firefox-branding.js @@ -9,10 +9,6 @@ pref("startup.homepage_welcome_url", "https://www.mozilla.org/%LOCALE%/firefox/% pref("startup.homepage_welcome_url.additional", ""); // The time interval between checks for a new version (in seconds) pref("app.update.interval", 28800); // 8 hours -// The time interval between the downloading of mar file chunks in the -// background (in seconds) -// 0 means "download everything at once" -pref("app.update.download.backgroundInterval", 0); // Give the user x seconds to react before showing the big UI. default=192 hours pref("app.update.promptWaitTime", 691200); // URL user can browse to manually if for some reason all update installation diff --git a/browser/branding/nightly/pref/firefox-branding.js b/browser/branding/nightly/pref/firefox-branding.js index 183244f348fd..f82de1b00d20 100644 --- a/browser/branding/nightly/pref/firefox-branding.js +++ b/browser/branding/nightly/pref/firefox-branding.js @@ -7,10 +7,6 @@ pref("startup.homepage_welcome_url", "https://www.mozilla.org/projects/firefox/% pref("startup.homepage_welcome_url.additional", ""); // The time interval between checks for a new version (in seconds) pref("app.update.interval", 7200); // 2 hours -// The time interval between the downloading of mar file chunks in the -// background (in seconds) -// 0 means "download everything at once" -pref("app.update.download.backgroundInterval", 0); // Give the user x seconds to react before showing the big UI. default=12 hours pref("app.update.promptWaitTime", 43200); // URL user can browse to manually if for some reason all update installation diff --git a/browser/branding/official/pref/firefox-branding.js b/browser/branding/official/pref/firefox-branding.js index 11be38308c1e..d902f74ec053 100644 --- a/browser/branding/official/pref/firefox-branding.js +++ b/browser/branding/official/pref/firefox-branding.js @@ -7,10 +7,6 @@ pref("startup.homepage_welcome_url", "about:welcome"); pref("startup.homepage_welcome_url.additional", ""); // Interval: Time between checks for a new version (in seconds) pref("app.update.interval", 43200); // 12 hours -// The time interval between the downloading of mar file chunks in the -// background (in seconds) -// 0 means "download everything at once" -pref("app.update.download.backgroundInterval", 0); // Give the user x seconds to react before showing the big UI. default=192 hours pref("app.update.promptWaitTime", 691200); // app.update.url.manual: URL user can browse to manually if for some reason diff --git a/browser/branding/unofficial/pref/firefox-branding.js b/browser/branding/unofficial/pref/firefox-branding.js index 71f76e57a11d..038f4565c016 100644 --- a/browser/branding/unofficial/pref/firefox-branding.js +++ b/browser/branding/unofficial/pref/firefox-branding.js @@ -7,9 +7,6 @@ pref("startup.homepage_welcome_url", ""); pref("startup.homepage_welcome_url.additional", ""); // The time interval between checks for a new version (in seconds) pref("app.update.interval", 86400); // 24 hours -// The time interval between the downloading of mar file chunks in the -// background (in seconds) -pref("app.update.download.backgroundInterval", 60); // Give the user x seconds to react before showing the big UI. default=24 hours pref("app.update.promptWaitTime", 86400); // URL user can browse to manually if for some reason all update installation diff --git a/browser/components/nsBrowserContentHandler.js b/browser/components/nsBrowserContentHandler.js index 888f94b2c1b4..9266e2517a8b 100644 --- a/browser/components/nsBrowserContentHandler.js +++ b/browser/components/nsBrowserContentHandler.js @@ -123,12 +123,12 @@ function getPostUpdateOverridePage(defaultOverridePage) { // history. if (um.activeUpdate) { var update = um.activeUpdate - .QueryInterface(Ci.nsIPropertyBag); + .QueryInterface(Ci.nsIWritablePropertyBag); } else { // If the updates.xml file is deleted then getUpdateAt will throw. try { update = um.getUpdateAt(0) - .QueryInterface(Ci.nsIPropertyBag); + .QueryInterface(Ci.nsIWritablePropertyBag); } catch (e) { Cu.reportError("Unable to find update: " + e); return defaultOverridePage; diff --git a/browser/components/nsBrowserGlue.js b/browser/components/nsBrowserGlue.js index 891a8caabbf7..dcffe1eeb554 100644 --- a/browser/components/nsBrowserGlue.js +++ b/browser/components/nsBrowserGlue.js @@ -1865,7 +1865,7 @@ BrowserGlue.prototype = { getService(Ci.nsIUpdateManager); try { // If the updates.xml file is deleted then getUpdateAt will throw. - var update = um.getUpdateAt(0).QueryInterface(Ci.nsIPropertyBag); + var update = um.getUpdateAt(0).QueryInterface(Ci.nsIWritablePropertyBag); } catch (e) { // This should never happen. Cu.reportError("Unable to find update: " + e); diff --git a/browser/components/search/searchplugins/google-2018.xml b/browser/components/search/searchplugins/google-2018.xml index 48fa1bef5551..a078c1de505c 100644 --- a/browser/components/search/searchplugins/google-2018.xml +++ b/browser/components/search/searchplugins/google-2018.xml @@ -6,7 +6,7 @@ Google Google Search UTF-8 -resource://search-plugins/images/google.ico +data:image/x-icon;base64,AAABAAIAEBAAAAEAIABoBAAAJgAAACAgAAABACAAqBAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zD9/f2W/f392P39/fn9/f35/f391/39/ZT+/v4uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+Cf39/Zn///////////////////////////////////////////39/ZX///8IAAAAAAAAAAAAAAAA/v7+Cf39/cH/////+v35/7TZp/92ul3/WKs6/1iqOv9yuFn/rNWd//j79v///////f39v////wgAAAAAAAAAAP39/Zn/////7PXp/3G3WP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP+Or1j//vDo///////9/f2VAAAAAP///zD/////+vz5/3G3V/9TqDT/WKo6/6LQkf/U6cz/1urO/6rUm/+Zo0r/8IZB//adZ////v7///////7+/i79/f2Y/////4nWzf9Lqkj/Vqo4/9Xqzv///////////////////////ebY//SHRv/0hUL//NjD///////9/f2U/f392v////8sxPH/Ebzt/43RsP/////////////////////////////////4roL/9IVC//i1jf///////f391/39/fr/////Cr37/wW8+/+16/7/////////////////9IVC//SFQv/0hUL/9IVC//SFQv/3pnX///////39/fn9/f36/////wu++/8FvPv/tuz+//////////////////SFQv/0hUL/9IVC//SFQv/0hUL/96p7///////9/f35/f392/////81yfz/CrL5/2uk9v///////////////////////////////////////////////////////f392P39/Zn/////ks/7/zdS7P84Rur/0NT6///////////////////////9/f////////////////////////39/Zb+/v4y//////n5/v9WYu3/NUPq/ztJ6/+VnPT/z9L6/9HU+v+WnfT/Ul7t/+Hj/P////////////////////8wAAAAAP39/Z3/////6Or9/1hj7v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v9sdvD////////////9/f2YAAAAAAAAAAD///8K/f39w//////5+f7/paz2/11p7v88Suv/Okfq/1pm7v+iqfX/+fn+///////9/f3B/v7+CQAAAAAAAAAAAAAAAP///wr9/f2d///////////////////////////////////////////9/f2Z/v7+CQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/jL9/f2Z/f392/39/fr9/f36/f392v39/Zj///8wAAAAAAAAAAAAAAAAAAAAAPAPAADAAwAAgAEAAIABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIABAACAAQAAwAMAAPAPAAAoAAAAIAAAAEAAAAABACAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/g3+/v5X/f39mf39/cj9/f3q/f39+f39/fn9/f3q/f39yP39/Zn+/v5W////DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/iT9/f2c/f399f/////////////////////////////////////////////////////9/f31/f39mv7+/iMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gn9/f2K/f39+////////////////////////////////////////////////////////////////////////////f39+v39/Yf///8IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4k/f390v////////////////////////////////////////////////////////////////////////////////////////////////39/dD///8iAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////MP39/er//////////////////////////+r05v+v16H/gsBs/2WxSf9Wqjj/Vqk3/2OwRv99vWX/pdKV/97u2P////////////////////////////39/ej+/v4vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/iT9/f3q/////////////////////+v15/+Pxnv/VKk2/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/36+Z//d7tf///////////////////////39/ej///8iAAAAAAAAAAAAAAAAAAAAAAAAAAD///8K/f390//////////////////////E4bn/XKw+/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1apN/+x0pv///////////////////////39/dD///8IAAAAAAAAAAAAAAAAAAAAAP39/Yv/////////////////////sdij/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9TqDT/YKU1/8qOPv/5wZ////////////////////////39/YcAAAAAAAAAAAAAAAD+/v4l/f39+////////////////8Lgt/9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9utlT/n86N/7faqv+426v/pdKV/3u8ZP9UqDX/U6g0/3egN//jiUH/9IVC//SFQv/82MP//////////////////f39+v7+/iMAAAAAAAAAAP39/Z3////////////////q9Ob/W6w+/1OoNP9TqDT/U6g0/1OoNP9nskz/zOXC/////////////////////////////////+Dv2v+osWP/8YVC//SFQv/0hUL/9IVC//WQVP/++fb//////////////////f39mgAAAAD+/v4O/f399v///////////////4LHj/9TqDT/U6g0/1OoNP9TqDT/dblc//L58P/////////////////////////////////////////////8+v/3p3f/9IVC//SFQv/0hUL/9IVC//rIqf/////////////////9/f31////DP7+/ln////////////////f9v7/Cbz2/zOwhv9TqDT/U6g0/2KwRv/v9+z///////////////////////////////////////////////////////738//1kFT/9IVC//SFQv/0hUL/9plg///////////////////////+/v5W/f39nP///////////////4jf/f8FvPv/Bbz7/yG1s/9QqDz/vN2w//////////////////////////////////////////////////////////////////rHqP/0hUL/9IVC//SFQv/0hUL//vDn//////////////////39/Zn9/f3L////////////////R878/wW8+/8FvPv/Bbz7/y7C5P/7/fr//////////////////////////////////////////////////////////////////ere//SFQv/0hUL/9IVC//SFQv/718H//////////////////f39yP39/ez///////////////8cwvv/Bbz7/wW8+/8FvPv/WNL8///////////////////////////////////////0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//rIqv/////////////////9/f3q/f39+v///////////////we9+/8FvPv/Bbz7/wW8+/993P3///////////////////////////////////////SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/+cGf//////////////////39/fn9/f36////////////////B737/wW8+/8FvPv/Bbz7/33c/f//////////////////////////////////////9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/6xaX//////////////////f39+f39/e3///////////////8cwvv/Bbz7/wW8+/8FvPv/WdP8///////////////////////////////////////0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//vVv//////////////////9/f3q/f39y////////////////0bN/P8FvPv/Bbz7/wW8+/8hrvn/+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////39/cj9/f2c////////////////ht/9/wW8+/8FvPv/FZP1/zRJ6/+zuPf//////////////////////////////////////////////////////////////////////////////////////////////////////////////////f39mf7+/lr////////////////d9v7/B7n7/yB38f81Q+r/NUPq/0hV7P/u8P3////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v5X////D/39/ff///////////////9tkPT/NUPq/zVD6v81Q+r/NUPq/2Fs7//y8v7////////////////////////////////////////////09f7//////////////////////////////////////////////////f399f7+/g0AAAAA/f39n////////////////+Tm/P89Suv/NUPq/zVD6v81Q+r/NUPq/1Bc7f/IzPn/////////////////////////////////x8v5/0xY7P+MlPP////////////////////////////////////////////9/f2cAAAAAAAAAAD+/v4n/f39/P///////////////7W69/81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v9ZZe7/k5v0/6609/+vtff/lJv0/1pm7v81Q+r/NUPq/zVD6v+GjvL//v7//////////////////////////////f39+/7+/iQAAAAAAAAAAAAAAAD9/f2N/////////////////////6Cn9f81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v+BivL////////////////////////////9/f2KAAAAAAAAAAAAAAAAAAAAAP7+/gv9/f3V/////////////////////7W69/8+S+v/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/P0zr/7q/+P///////////////////////f390v7+/gkAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/ib9/f3r/////////////////////+Xn/P94gfH/NkTq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NkTq/3Z/8f/l5/z///////////////////////39/er+/v4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/jL9/f3r///////////////////////////k5vz/nqX1/2p08P9IVez/OEbq/zdF6v9GU+z/aHLv/5qh9f/i5Pz////////////////////////////9/f3q////MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/ib9/f3V/////////////////////////////////////////////////////////////////////////////////////////////////f390v7+/iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wr9/f2N/f39/P///////////////////////////////////////////////////////////////////////////f39+/39/Yv+/v4JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4n/f39n/39/ff//////////////////////////////////////////////////////f399v39/Z3+/v4lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+Dv7+/lr9/f2c/f39y/39/e39/f36/f39+v39/ez9/f3L/f39nP7+/ln+/v4OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/AA///AAD//AAAP/gAAB/wAAAP4AAAB8AAAAPAAAADgAAAAYAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABgAAAAcAAAAPAAAAD4AAAB/AAAA/4AAAf/AAAP/8AAP//wAP/ diff --git a/browser/components/search/searchplugins/google-b-1-d.xml b/browser/components/search/searchplugins/google-b-1-d.xml deleted file mode 100644 index 2d43390a0e70..000000000000 --- a/browser/components/search/searchplugins/google-b-1-d.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - -Google -Google Search -UTF-8 -resource://search-plugins/images/google.ico - - - - - - diff --git a/browser/components/search/searchplugins/google-b-1-e.xml b/browser/components/search/searchplugins/google-b-1-e.xml deleted file mode 100644 index ea251fc80161..000000000000 --- a/browser/components/search/searchplugins/google-b-1-e.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - -Google -Google Search -UTF-8 -resource://search-plugins/images/google.ico - - - - - - diff --git a/browser/components/search/searchplugins/google-b-d.xml b/browser/components/search/searchplugins/google-b-d.xml deleted file mode 100644 index 9b7f5e77185e..000000000000 --- a/browser/components/search/searchplugins/google-b-d.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - -Google -Google Search -UTF-8 -resource://search-plugins/images/google.ico - - - - - - diff --git a/browser/components/search/searchplugins/google-b-e.xml b/browser/components/search/searchplugins/google-b-e.xml deleted file mode 100644 index 43b48a0a175d..000000000000 --- a/browser/components/search/searchplugins/google-b-e.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - -Google -Google Search -UTF-8 -resource://search-plugins/images/google.ico - - - - - - diff --git a/browser/components/search/searchplugins/google.xml b/browser/components/search/searchplugins/google.xml index f41c8cbe335a..c71fa350433d 100644 --- a/browser/components/search/searchplugins/google.xml +++ b/browser/components/search/searchplugins/google.xml @@ -6,7 +6,7 @@ Google Google Search UTF-8 -resource://search-plugins/images/google.ico +data:image/x-icon;base64,AAABAAIAEBAAAAEAIABoBAAAJgAAACAgAAABACAAqBAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zD9/f2W/f392P39/fn9/f35/f391/39/ZT+/v4uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+Cf39/Zn///////////////////////////////////////////39/ZX///8IAAAAAAAAAAAAAAAA/v7+Cf39/cH/////+v35/7TZp/92ul3/WKs6/1iqOv9yuFn/rNWd//j79v///////f39v////wgAAAAAAAAAAP39/Zn/////7PXp/3G3WP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP+Or1j//vDo///////9/f2VAAAAAP///zD/////+vz5/3G3V/9TqDT/WKo6/6LQkf/U6cz/1urO/6rUm/+Zo0r/8IZB//adZ////v7///////7+/i79/f2Y/////4nWzf9Lqkj/Vqo4/9Xqzv///////////////////////ebY//SHRv/0hUL//NjD///////9/f2U/f392v////8sxPH/Ebzt/43RsP/////////////////////////////////4roL/9IVC//i1jf///////f391/39/fr/////Cr37/wW8+/+16/7/////////////////9IVC//SFQv/0hUL/9IVC//SFQv/3pnX///////39/fn9/f36/////wu++/8FvPv/tuz+//////////////////SFQv/0hUL/9IVC//SFQv/0hUL/96p7///////9/f35/f392/////81yfz/CrL5/2uk9v///////////////////////////////////////////////////////f392P39/Zn/////ks/7/zdS7P84Rur/0NT6///////////////////////9/f////////////////////////39/Zb+/v4y//////n5/v9WYu3/NUPq/ztJ6/+VnPT/z9L6/9HU+v+WnfT/Ul7t/+Hj/P////////////////////8wAAAAAP39/Z3/////6Or9/1hj7v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v9sdvD////////////9/f2YAAAAAAAAAAD///8K/f39w//////5+f7/paz2/11p7v88Suv/Okfq/1pm7v+iqfX/+fn+///////9/f3B/v7+CQAAAAAAAAAAAAAAAP///wr9/f2d///////////////////////////////////////////9/f2Z/v7+CQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/jL9/f2Z/f392/39/fr9/f36/f392v39/Zj///8wAAAAAAAAAAAAAAAAAAAAAPAPAADAAwAAgAEAAIABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIABAACAAQAAwAMAAPAPAAAoAAAAIAAAAEAAAAABACAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/g3+/v5X/f39mf39/cj9/f3q/f39+f39/fn9/f3q/f39yP39/Zn+/v5W////DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/iT9/f2c/f399f/////////////////////////////////////////////////////9/f31/f39mv7+/iMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gn9/f2K/f39+////////////////////////////////////////////////////////////////////////////f39+v39/Yf///8IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4k/f390v////////////////////////////////////////////////////////////////////////////////////////////////39/dD///8iAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////MP39/er//////////////////////////+r05v+v16H/gsBs/2WxSf9Wqjj/Vqk3/2OwRv99vWX/pdKV/97u2P////////////////////////////39/ej+/v4vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/iT9/f3q/////////////////////+v15/+Pxnv/VKk2/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/36+Z//d7tf///////////////////////39/ej///8iAAAAAAAAAAAAAAAAAAAAAAAAAAD///8K/f390//////////////////////E4bn/XKw+/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1apN/+x0pv///////////////////////39/dD///8IAAAAAAAAAAAAAAAAAAAAAP39/Yv/////////////////////sdij/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9TqDT/YKU1/8qOPv/5wZ////////////////////////39/YcAAAAAAAAAAAAAAAD+/v4l/f39+////////////////8Lgt/9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9utlT/n86N/7faqv+426v/pdKV/3u8ZP9UqDX/U6g0/3egN//jiUH/9IVC//SFQv/82MP//////////////////f39+v7+/iMAAAAAAAAAAP39/Z3////////////////q9Ob/W6w+/1OoNP9TqDT/U6g0/1OoNP9nskz/zOXC/////////////////////////////////+Dv2v+osWP/8YVC//SFQv/0hUL/9IVC//WQVP/++fb//////////////////f39mgAAAAD+/v4O/f399v///////////////4LHj/9TqDT/U6g0/1OoNP9TqDT/dblc//L58P/////////////////////////////////////////////8+v/3p3f/9IVC//SFQv/0hUL/9IVC//rIqf/////////////////9/f31////DP7+/ln////////////////f9v7/Cbz2/zOwhv9TqDT/U6g0/2KwRv/v9+z///////////////////////////////////////////////////////738//1kFT/9IVC//SFQv/0hUL/9plg///////////////////////+/v5W/f39nP///////////////4jf/f8FvPv/Bbz7/yG1s/9QqDz/vN2w//////////////////////////////////////////////////////////////////rHqP/0hUL/9IVC//SFQv/0hUL//vDn//////////////////39/Zn9/f3L////////////////R878/wW8+/8FvPv/Bbz7/y7C5P/7/fr//////////////////////////////////////////////////////////////////ere//SFQv/0hUL/9IVC//SFQv/718H//////////////////f39yP39/ez///////////////8cwvv/Bbz7/wW8+/8FvPv/WNL8///////////////////////////////////////0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//rIqv/////////////////9/f3q/f39+v///////////////we9+/8FvPv/Bbz7/wW8+/993P3///////////////////////////////////////SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/+cGf//////////////////39/fn9/f36////////////////B737/wW8+/8FvPv/Bbz7/33c/f//////////////////////////////////////9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/6xaX//////////////////f39+f39/e3///////////////8cwvv/Bbz7/wW8+/8FvPv/WdP8///////////////////////////////////////0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//vVv//////////////////9/f3q/f39y////////////////0bN/P8FvPv/Bbz7/wW8+/8hrvn/+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////39/cj9/f2c////////////////ht/9/wW8+/8FvPv/FZP1/zRJ6/+zuPf//////////////////////////////////////////////////////////////////////////////////////////////////////////////////f39mf7+/lr////////////////d9v7/B7n7/yB38f81Q+r/NUPq/0hV7P/u8P3////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v5X////D/39/ff///////////////9tkPT/NUPq/zVD6v81Q+r/NUPq/2Fs7//y8v7////////////////////////////////////////////09f7//////////////////////////////////////////////////f399f7+/g0AAAAA/f39n////////////////+Tm/P89Suv/NUPq/zVD6v81Q+r/NUPq/1Bc7f/IzPn/////////////////////////////////x8v5/0xY7P+MlPP////////////////////////////////////////////9/f2cAAAAAAAAAAD+/v4n/f39/P///////////////7W69/81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v9ZZe7/k5v0/6609/+vtff/lJv0/1pm7v81Q+r/NUPq/zVD6v+GjvL//v7//////////////////////////////f39+/7+/iQAAAAAAAAAAAAAAAD9/f2N/////////////////////6Cn9f81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v+BivL////////////////////////////9/f2KAAAAAAAAAAAAAAAAAAAAAP7+/gv9/f3V/////////////////////7W69/8+S+v/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/P0zr/7q/+P///////////////////////f390v7+/gkAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/ib9/f3r/////////////////////+Xn/P94gfH/NkTq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NkTq/3Z/8f/l5/z///////////////////////39/er+/v4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/jL9/f3r///////////////////////////k5vz/nqX1/2p08P9IVez/OEbq/zdF6v9GU+z/aHLv/5qh9f/i5Pz////////////////////////////9/f3q////MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/ib9/f3V/////////////////////////////////////////////////////////////////////////////////////////////////f390v7+/iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wr9/f2N/f39/P///////////////////////////////////////////////////////////////////////////f39+/39/Yv+/v4JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4n/f39n/39/ff//////////////////////////////////////////////////////f399v39/Z3+/v4lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+Dv7+/lr9/f2c/f39y/39/e39/f36/f39+v39/ez9/f3L/f39nP7+/ln+/v4OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/AA///AAD//AAAP/gAAB/wAAAP4AAAB8AAAAPAAAADgAAAAYAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABgAAAAcAAAAPAAAAD4AAAB/AAAA/4AAAf/AAAP/8AAP//wAP/ diff --git a/browser/components/search/searchplugins/images/google.ico b/browser/components/search/searchplugins/images/google.ico deleted file mode 100644 index 82339b3b1dbb..000000000000 Binary files a/browser/components/search/searchplugins/images/google.ico and /dev/null differ diff --git a/browser/components/search/searchplugins/list.json b/browser/components/search/searchplugins/list.json index 334e9911d4e1..4cede962866a 100644 --- a/browser/components/search/searchplugins/list.json +++ b/browser/components/search/searchplugins/list.json @@ -3,12 +3,12 @@ "searchDefault": "Google", "searchOrder": ["Google", "Bing"], "visibleDefaultEngines": [ - "google-b-d", "amazondotcom", "bing", "ddg", "ebay", "twitter", "wikipedia" + "google", "amazondotcom", "bing", "ddg", "ebay", "twitter", "wikipedia" ] }, "regionOverrides": { "US": { - "google-b-d": "google-b-1-d" + "google": "google-2018" }, "CA": { "ebay": "ebay-ca", @@ -54,68 +54,68 @@ "en-US": { "default": { "visibleDefaultEngines": [ - "google-b-d", "amazondotcom", "bing", "ddg", "ebay", "twitter", "wikipedia" + "google", "amazondotcom", "bing", "ddg", "ebay", "twitter", "wikipedia" ] }, "experimental-hidden": { "visibleDefaultEngines": [ - "amazon-ca", "amazon-au", "google-2018", "yandex-en", "google", "google-b-1-e", "google-b-e" + "amazon-ca", "amazon-au", "google-2018", "yandex-en" ] } }, "ach": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "amazondotcom", "ddg", "twitter", "wikipedia" + "google", "bing", "amazondotcom", "ddg", "twitter", "wikipedia" ] } }, "af": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "amazondotcom", "ddg", "wikipedia-af" + "google", "bing", "amazondotcom", "ddg", "wikipedia-af" ] } }, "an": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "ebay-es", "wikipedia-an", "ddg", "twitter" + "google", "bing", "ebay-es", "wikipedia-an", "ddg", "twitter" ] } }, "ar": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "amazondotcom", "ddg", "wikipedia-ar" + "google", "bing", "amazondotcom", "ddg", "wikipedia-ar" ] } }, "as": { "default": { "visibleDefaultEngines": [ - "google-b-d", "amazon-in", "ddg", "wikipedia-as" + "google", "amazon-in", "ddg", "wikipedia-as" ] } }, "ast": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "diccionariu-alla", "ddg", "ebay-es", "wikipedia-ast" + "google", "bing", "diccionariu-alla", "ddg", "ebay-es", "wikipedia-ast" ] } }, "az": { "default": { "visibleDefaultEngines": [ - "google-b-d", "amazondotcom", "azerdict", "bing", "ddg", "wikipedia-az", "yandex-az" + "google", "amazondotcom", "azerdict", "bing", "ddg", "wikipedia-az", "yandex-az" ] } }, "be": { "default": { "visibleDefaultEngines": [ - "yandex-by", "google-b-d", "ddg", "wikipedia-be", "wikipedia-be-tarask" + "yandex-by", "google", "ddg", "wikipedia-be", "wikipedia-be-tarask" ] }, "BY": { @@ -134,56 +134,56 @@ "bg": { "default": { "visibleDefaultEngines": [ - "google-b-d", "amazondotcom", "ddg", "pazaruvaj", "portalbgdict", "wikipedia-bg" + "google", "amazondotcom", "ddg", "pazaruvaj", "portalbgdict", "wikipedia-bg" ] } }, "bn-BD": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "ddg", "wikipedia-bn" + "google", "bing", "ddg", "wikipedia-bn" ] } }, "bn-IN": { "default": { "visibleDefaultEngines": [ - "google-b-d", "amazon-in", "bing", "ddg", "rediff", "wikipedia-bn" + "google", "amazon-in", "bing", "ddg", "rediff", "wikipedia-bn" ] } }, "br": { "default": { "visibleDefaultEngines": [ - "google-b-d", "amazon-france", "ddg", "ebay-fr", "freelang", "klask", "wikipedia-br" + "google", "amazon-france", "ddg", "ebay-fr", "freelang", "klask", "wikipedia-br" ] } }, "bs": { "default": { "visibleDefaultEngines": [ - "google-b-d", "ddg", "olx", "twitter", "wikipedia-bs" + "google", "ddg", "olx", "twitter", "wikipedia-bs" ] } }, "ca": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "diec2", "ddg", "ebay-es", "twitter", "wikipedia-ca" + "google", "bing", "diec2", "ddg", "ebay-es", "twitter", "wikipedia-ca" ] } }, "cak": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "amazondotcom", "ddg", "wikipedia-es" + "google", "bing", "amazondotcom", "ddg", "wikipedia-es" ] } }, "crh": { "default": { "visibleDefaultEngines": [ - "google-b-d", "ddg", "twitter", "wikipedia-crh" + "google", "ddg", "twitter", "wikipedia-crh" ] } }, @@ -191,56 +191,56 @@ "default": { "searchOrder": ["Google", "Seznam"], "visibleDefaultEngines": [ - "google-b-d", "seznam-cz", "ddg", "heureka-cz", "mapy-cz", "wikipedia-cz" + "google", "seznam-cz", "ddg", "heureka-cz", "mapy-cz", "wikipedia-cz" ] } }, "cy": { "default": { "visibleDefaultEngines": [ - "google-b-d", "amazon-en-GB", "ddg", "ebay-uk", "palasprint", "termau", "wikipedia-cy" + "google", "amazon-en-GB", "ddg", "ebay-uk", "palasprint", "termau", "wikipedia-cy" ] } }, "da": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "amazon-en-GB", "ddg", "wikipedia-da" + "google", "bing", "amazon-en-GB", "ddg", "wikipedia-da" ] } }, "de": { "default": { "visibleDefaultEngines": [ - "google-b-d", "amazondotcom-de", "bing", "ddg", "ebay-de", "ecosia", "leo_ende_de", "wikipedia-de" + "google", "amazondotcom-de", "bing", "ddg", "ebay-de", "ecosia", "leo_ende_de", "wikipedia-de" ] } }, "dsb": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "amazondotcom-de", "ddg", "ebay-de", "leo_ende_de", "wikipedia-dsb" + "google", "bing", "amazondotcom-de", "ddg", "ebay-de", "leo_ende_de", "wikipedia-dsb" ] } }, "el": { "default": { "visibleDefaultEngines": [ - "google-b-d", "amazon-en-GB", "bing", "ddg", "wikipedia-el" + "google", "amazon-en-GB", "bing", "ddg", "wikipedia-el" ] } }, "en-CA": { "default": { "visibleDefaultEngines": [ - "google-b-d", "amazon-ca", "bing", "ddg", "ebay-ca", "twitter", "wikipedia" + "google", "amazon-ca", "bing", "ddg", "ebay-ca", "twitter", "wikipedia" ] } }, "en-GB": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "amazon-en-GB", "chambers-en-GB", "ddg", "ebay-uk", "twitter", "wikipedia" + "google", "bing", "amazon-en-GB", "chambers-en-GB", "ddg", "ebay-uk", "twitter", "wikipedia" ] }, "experimental-hidden": { @@ -252,42 +252,42 @@ "en-ZA": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "amazondotcom", "ddg", "twitter", "wikipedia" + "google", "bing", "amazondotcom", "ddg", "twitter", "wikipedia" ] } }, "eo": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "amazondotcom", "ddg", "reta-vortaro", "wikipedia-eo" + "google", "bing", "amazondotcom", "ddg", "reta-vortaro", "wikipedia-eo" ] } }, "es-AR": { "default": { "visibleDefaultEngines": [ - "google-b-d", "amazondotcom", "drae", "ddg", "mercadolibre-ar", "wikipedia-es" + "google", "amazondotcom", "drae", "ddg", "mercadolibre-ar", "wikipedia-es" ] } }, "es-CL": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "drae", "ddg", "mercadolibre-cl", "wikipedia-es" + "google", "bing", "drae", "ddg", "mercadolibre-cl", "wikipedia-es" ] } }, "es-ES": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "drae", "ddg", "ebay-es", "twitter", "wikipedia-es" + "google", "bing", "drae", "ddg", "ebay-es", "twitter", "wikipedia-es" ] } }, "es-MX": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "ddg", "mercadolibre-mx", "wikipedia-es" + "google", "bing", "ddg", "mercadolibre-mx", "wikipedia-es" ] }, "experimental-hidden": { @@ -299,49 +299,49 @@ "et": { "default": { "visibleDefaultEngines": [ - "google-b-d", "neti-ee", "ddg", "osta-ee", "wikipedia-et", "eki-ee" + "google", "neti-ee", "ddg", "osta-ee", "wikipedia-et", "eki-ee" ] } }, "eu": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "amazon-en-GB", "ddg", "ebay-es", "elebila", "wikipedia-eu" + "google", "bing", "amazon-en-GB", "ddg", "ebay-es", "elebila", "wikipedia-eu" ] } }, "fa": { "default": { "visibleDefaultEngines": [ - "google-b-d", "amazondotcom", "bing", "ddg", "wikipedia-fa" + "google", "amazondotcom", "bing", "ddg", "wikipedia-fa" ] } }, "ff": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "amazon-france", "ddg", "cnrtl-tlfi-fr", "wikipedia-fr" + "google", "bing", "amazon-france", "ddg", "cnrtl-tlfi-fr", "wikipedia-fr" ] } }, "fi": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "bookplus-fi", "ddg", "wikipedia-fi" + "google", "bing", "bookplus-fi", "ddg", "wikipedia-fi" ] } }, "fr": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "amazon-france", "ddg", "ebay-fr", "cnrtl-tlfi-fr", "qwant", "wikipedia-fr" + "google", "bing", "amazon-france", "ddg", "ebay-fr", "cnrtl-tlfi-fr", "qwant", "wikipedia-fr" ] } }, "fy-NL": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "bolcom-fy-NL", "ddg", "ebay-nl", "marktplaats-fy-NL", "wikipedia-fy-NL" + "google", "bing", "bolcom-fy-NL", "ddg", "ebay-nl", "marktplaats-fy-NL", "wikipedia-fy-NL" ] }, "experimental-hidden": { @@ -353,105 +353,105 @@ "ga-IE": { "default": { "visibleDefaultEngines": [ - "google-b-d", "amazon-en-GB", "ddg", "ebay-ie", "tearma", "twitter", "wikipedia-ga-IE" + "google", "amazon-en-GB", "ddg", "ebay-ie", "tearma", "twitter", "wikipedia-ga-IE" ] } }, "gd": { "default": { "visibleDefaultEngines": [ - "google-b-d", "amazon-en-GB", "bbc-alba", "ddg", "ebay-uk", "faclair-beag", "wikipedia-gd" + "google", "amazon-en-GB", "bbc-alba", "ddg", "ebay-uk", "faclair-beag", "wikipedia-gd" ] } }, "gl": { "default": { "visibleDefaultEngines": [ - "google-b-d", "amazon-en-GB", "ddg", "ebay-es", "wikipedia-gl" + "google", "amazon-en-GB", "ddg", "ebay-es", "wikipedia-gl" ] } }, "gn": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "amazondotcom", "ddg", "twitter", "wikipedia-gn" + "google", "bing", "amazondotcom", "ddg", "twitter", "wikipedia-gn" ] } }, "gu-IN": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "amazon-in", "ddg", "gujaratilexicon", "wikipedia-gu" + "google", "bing", "amazon-in", "ddg", "gujaratilexicon", "wikipedia-gu" ] } }, "he": { "default": { "visibleDefaultEngines": [ - "google-b-d", "ddg", "wikipedia-he", "morfix-dic" + "google", "ddg", "wikipedia-he", "morfix-dic" ] } }, "hi-IN": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "ddg", "wikipedia-hi" + "google", "bing", "ddg", "wikipedia-hi" ] } }, "hr": { "default": { "visibleDefaultEngines": [ - "google-b-d", "amazon-en-GB", "bing", "ddg", "eudict", "twitter", "wikipedia-hr" + "google", "amazon-en-GB", "bing", "ddg", "eudict", "twitter", "wikipedia-hr" ] } }, "hsb": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "amazondotcom-de", "ddg", "ebay-de", "leo_ende_de", "wikipedia-hsb" + "google", "bing", "amazondotcom-de", "ddg", "ebay-de", "leo_ende_de", "wikipedia-hsb" ] } }, "hu": { "default": { "visibleDefaultEngines": [ - "google-b-d", "ddg", "sztaki-en-hu", "vatera", "wikipedia-hu" + "google", "ddg", "sztaki-en-hu", "vatera", "wikipedia-hu" ] } }, "hy-AM": { "default": { "visibleDefaultEngines": [ - "google-b-d", "amazondotcom", "ddg", "list-am", "wikipedia-hy" + "google", "amazondotcom", "ddg", "list-am", "wikipedia-hy" ] } }, "ia": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "amazondotcom", "ddg", "twitter", "wikipedia-ia" + "google", "bing", "amazondotcom", "ddg", "twitter", "wikipedia-ia" ] } }, "id": { "default": { "visibleDefaultEngines": [ - "google-b-d", "ddg", "wikipedia-id" + "google", "ddg", "wikipedia-id" ] } }, "is": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "amazondotcom", "ddg", "leit-is", "wikipedia-is" + "google", "bing", "amazondotcom", "ddg", "leit-is", "wikipedia-is" ] } }, "it": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "amazon-it", "ddg", "ebay-it", "hoepli", "wikipedia-it" + "google", "bing", "amazon-it", "ddg", "ebay-it", "hoepli", "wikipedia-it" ] } }, @@ -459,7 +459,7 @@ "default": { "searchOrder": ["Google", "Yahoo! JAPAN", "Bing", "Amazon.co.jp", "楽天市場", "ヤフオク!", "教えて!goo", "Twitter", "Wikipedia (ja)"], "visibleDefaultEngines": [ - "google-b-d", "yahoo-jp", "bing", "amazon-jp", "rakuten", "yahoo-jp-auctions", "oshiete-goo", "twitter-ja", "wikipedia-ja", "ddg" + "google", "yahoo-jp", "bing", "amazon-jp", "rakuten", "yahoo-jp-auctions", "oshiete-goo", "twitter-ja", "wikipedia-ja", "ddg" ] } }, @@ -467,28 +467,28 @@ "default": { "searchOrder": ["Google", "Yahoo! JAPAN", "Bing", "Amazon.co.jp", "楽天市場", "ヤフオク!", "教えて!goo", "Twitter", "Wikipedia (ja)"], "visibleDefaultEngines": [ - "google-b-d", "yahoo-jp", "bing", "amazon-jp", "rakuten", "yahoo-jp-auctions", "oshiete-goo", "twitter-ja", "wikipedia-ja", "ddg" + "google", "yahoo-jp", "bing", "amazon-jp", "rakuten", "yahoo-jp-auctions", "oshiete-goo", "twitter-ja", "wikipedia-ja", "ddg" ] } }, "ka": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "amazondotcom", "ddg", "twitter", "wikipedia-ka" + "google", "bing", "amazondotcom", "ddg", "twitter", "wikipedia-ka" ] } }, "kab": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "ddg", "wikipedia-kab" + "google", "bing", "ddg", "wikipedia-kab" ] } }, "kk": { "default": { "visibleDefaultEngines": [ - "yandex-kk", "google-b-d", "ddg", "flip", "kaz-kk", "twitter", "wikipedia-kk" + "yandex-kk", "google", "ddg", "flip", "kaz-kk", "twitter", "wikipedia-kk" ] }, "KZ": { @@ -507,119 +507,119 @@ "km": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "amazondotcom", "ddg", "twitter", "wikipedia-km" + "google", "bing", "amazondotcom", "ddg", "twitter", "wikipedia-km" ] } }, "kn": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "amazon-in", "ddg", "kannadastore", "wikipedia-kn" + "google", "bing", "amazon-in", "ddg", "kannadastore", "wikipedia-kn" ] } }, "ko": { "default": { "visibleDefaultEngines": [ - "google-b-d", "ddg", "naver-kr", "danawa-kr", "daum-kr", "wikipedia-kr" + "google", "ddg", "naver-kr", "danawa-kr", "daum-kr", "wikipedia-kr" ] } }, "lij": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "amazon-it", "ddg", "ebay-it", "paroledigenova-lij", "wikipedia-lij" + "google", "bing", "amazon-it", "ddg", "ebay-it", "paroledigenova-lij", "wikipedia-lij" ] } }, "lo": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "ddg", "wikipedia-lo", "twitter" + "google", "bing", "ddg", "wikipedia-lo", "twitter" ] } }, "lt": { "default": { "visibleDefaultEngines": [ - "google-b-d", "wikipedia-lt", "bing", "amazondotcom", "ddg", "twitter" + "google", "wikipedia-lt", "bing", "amazondotcom", "ddg", "twitter" ] } }, "ltg": { "default": { "visibleDefaultEngines": [ - "google-b-d", "dict-enlv", "ddg", "salidzinilv", "sslv", "wikipedia-ltg" + "google", "dict-enlv", "ddg", "salidzinilv", "sslv", "wikipedia-ltg" ] } }, "lv": { "default": { "visibleDefaultEngines": [ - "google-b-d", "dict-enlv", "ddg", "salidzinilv", "sslv", "wikipedia-lv" + "google", "dict-enlv", "ddg", "salidzinilv", "sslv", "wikipedia-lv" ] } }, "mai": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "amazon-in", "ddg", "twitter", "wikipedia-hi" + "google", "bing", "amazon-in", "ddg", "twitter", "wikipedia-hi" ] } }, "mk": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "amazondotcom", "ddg", "wikipedia-mk" + "google", "bing", "amazondotcom", "ddg", "wikipedia-mk" ] } }, "ml": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "amazon-in", "ddg", "rediff", "webdunia", "wikipedia", "wikipedia-ml" + "google", "bing", "amazon-in", "ddg", "rediff", "webdunia", "wikipedia", "wikipedia-ml" ] } }, "mr": { "default": { "visibleDefaultEngines": [ - "google-b-d", "amazon-in", "ddg", "rediff", "wikipedia-mr" + "google", "amazon-in", "ddg", "rediff", "wikipedia-mr" ] } }, "ms": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "amazondotcom", "ddg", "twitter", "wikipedia-ms" + "google", "bing", "amazondotcom", "ddg", "twitter", "wikipedia-ms" ] } }, "my": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "amazondotcom", "ddg", "twitter", "wikipedia-my" + "google", "bing", "amazondotcom", "ddg", "twitter", "wikipedia-my" ] } }, "nb-NO": { "default": { "visibleDefaultEngines": [ - "google-b-d", "amazon-en-GB", "bing", "ddg", "gulesider-NO", "bok-NO", "qxl-NO", "wikipedia-NO" + "google", "amazon-en-GB", "bing", "ddg", "gulesider-NO", "bok-NO", "qxl-NO", "wikipedia-NO" ] } }, "ne-NP": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "ddg", "twitter", "wikipedia-ne" + "google", "bing", "ddg", "twitter", "wikipedia-ne" ] } }, "nl": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "bolcom-nl", "ddg", "ebay-nl", "marktplaats-nl", "wikipedia-nl" + "google", "bing", "bolcom-nl", "ddg", "ebay-nl", "marktplaats-nl", "wikipedia-nl" ] }, "experimental-hidden": { @@ -631,42 +631,42 @@ "nn-NO": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "amazon-en-GB", "ddg", "gulesider-NO", "bok-NO", "qxl-NO", "wikipedia-NN" + "google", "bing", "amazon-en-GB", "ddg", "gulesider-NO", "bok-NO", "qxl-NO", "wikipedia-NN" ] } }, "oc": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "ddg", "twitter", "wikipedia-oc", "wiktionary-oc" + "google", "bing", "ddg", "twitter", "wikipedia-oc", "wiktionary-oc" ] } }, "or": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "amazon-in", "ddg", "wikipedia-or" + "google", "bing", "amazon-in", "ddg", "wikipedia-or" ] } }, "pa-IN": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "amazon-in", "ddg", "wikipedia-pa" + "google", "bing", "amazon-in", "ddg", "wikipedia-pa" ] } }, "pl": { "default": { "visibleDefaultEngines": [ - "google-b-d", "allegro-pl", "ddg", "pwn-pl", "wikipedia-pl", "wolnelektury-pl" + "google", "allegro-pl", "ddg", "pwn-pl", "wikipedia-pl", "wolnelektury-pl" ] } }, "pt-BR": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "buscape", "ddg", "mercadolivre", "twitter", "wikipedia-pt" + "google", "bing", "buscape", "ddg", "mercadolivre", "twitter", "wikipedia-pt" ] }, "experimental-hidden": { @@ -678,28 +678,28 @@ "pt-PT": { "default": { "visibleDefaultEngines": [ - "google-b-d", "amazon-en-GB", "ddg", "priberam", "sapo", "wikipedia-pt" + "google", "amazon-en-GB", "ddg", "priberam", "sapo", "wikipedia-pt" ] } }, "rm": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "ddg", "ebay-ch", "leo_ende_de-rm", "pledarigrond", "wikipedia-rm" + "google", "bing", "ddg", "ebay-ch", "leo_ende_de-rm", "pledarigrond", "wikipedia-rm" ] } }, "ro": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "amazondotcom", "ddg", "wikipedia-ro" + "google", "bing", "amazondotcom", "ddg", "wikipedia-ro" ] } }, "ru": { "default": { "visibleDefaultEngines": [ - "yandex-ru", "google-b-d", "ddg", "ozonru", "priceru", "wikipedia-ru", "mailru" + "yandex-ru", "google", "ddg", "ozonru", "priceru", "wikipedia-ru", "mailru" ] }, "RU": { @@ -718,84 +718,84 @@ "si": { "default": { "visibleDefaultEngines": [ - "google-b-d", "amazondotcom", "ddg", "wikipedia-si" + "google", "amazondotcom", "ddg", "wikipedia-si" ] } }, "sk": { "default": { "visibleDefaultEngines": [ - "google-b-d", "azet-sk", "atlas-sk", "ddg", "slovnik-sk", "wikipedia-sk", "zoznam-sk" + "google", "azet-sk", "atlas-sk", "ddg", "slovnik-sk", "wikipedia-sk", "zoznam-sk" ] } }, "sl": { "default": { "visibleDefaultEngines": [ - "google-b-d", "ceneji", "ddg", "najdi-si", "odpiralni", "twitter", "wikipedia-sl" + "google", "ceneji", "ddg", "najdi-si", "odpiralni", "twitter", "wikipedia-sl" ] } }, "son": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "amazon-france", "ddg", "cnrtl-tlfi-fr", "wikipedia-fr" + "google", "bing", "amazon-france", "ddg", "cnrtl-tlfi-fr", "wikipedia-fr" ] } }, "sq": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "amazon-en-GB", "ddg", "wikipedia-sq" + "google", "bing", "amazon-en-GB", "ddg", "wikipedia-sq" ] } }, "sr": { "default": { "visibleDefaultEngines": [ - "google-b-d", "amazon-en-GB", "bing", "ddg", "wikipedia-sr", "pogodak" + "google", "amazon-en-GB", "bing", "ddg", "wikipedia-sr", "pogodak" ] } }, "sv-SE": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "allaannonser-sv-SE", "ddg", "prisjakt-sv-SE", "tyda-sv-SE", "wikipedia-sv-SE" + "google", "bing", "allaannonser-sv-SE", "ddg", "prisjakt-sv-SE", "tyda-sv-SE", "wikipedia-sv-SE" ] } }, "ta": { "default": { "visibleDefaultEngines": [ - "google-b-d", "amazon-in", "ddg", "wikipedia-ta" + "google", "amazon-in", "ddg", "wikipedia-ta" ] } }, "te": { "default": { "visibleDefaultEngines": [ - "google-b-d", "amazon-in", "ddg", "wikipedia-te", "wiktionary-te" + "google", "amazon-in", "ddg", "wikipedia-te", "wiktionary-te" ] } }, "th": { "default": { "visibleDefaultEngines": [ - "google-b-d", "amazondotcom", "bing", "ddg", "longdo", "wikipedia-th" + "google", "amazondotcom", "bing", "ddg", "longdo", "wikipedia-th" ] } }, "tl": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "amazondotcom", "ddg", "twitter", "wikipedia-tl" + "google", "bing", "amazondotcom", "ddg", "twitter", "wikipedia-tl" ] } }, "tr": { "default": { "visibleDefaultEngines": [ - "yandex-tr", "google-b-d", "ddg", "twitter", "wikipedia-tr" + "yandex-tr", "google", "ddg", "twitter", "wikipedia-tr" ] }, "TR": { @@ -814,56 +814,56 @@ "trs": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "amazondotcom", "ddg", "wikipedia-es" + "google", "bing", "amazondotcom", "ddg", "wikipedia-es" ] } }, "uk": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "meta-ua", "ddg", "wikipedia-uk", "hotline-ua" + "google", "bing", "meta-ua", "ddg", "wikipedia-uk", "hotline-ua" ] } }, "ur": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "amazon-in", "ddg", "twitter", "wikipedia-ur" + "google", "bing", "amazon-in", "ddg", "twitter", "wikipedia-ur" ] } }, "uz": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "amazondotcom", "ddg", "twitter", "wikipedia-uz" + "google", "bing", "amazondotcom", "ddg", "twitter", "wikipedia-uz" ] } }, "vi": { "default": { "visibleDefaultEngines": [ - "google-b-d", "coccoc", "ddg", "wikipedia-vi" + "google", "coccoc", "ddg", "wikipedia-vi" ] } }, "wo": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "amazon-france", "ddg", "ebay-fr", "twitter", "wikipedia-wo" + "google", "bing", "amazon-france", "ddg", "ebay-fr", "twitter", "wikipedia-wo" ] } }, "xh": { "default": { "visibleDefaultEngines": [ - "google-b-d", "bing", "ddg", "wikipedia" + "google", "bing", "ddg", "wikipedia" ] } }, "zh-CN": { "default": { "visibleDefaultEngines": [ - "baidu", "google-b-d", "bing", "ddg", "wikipedia-zh-CN", "amazondotcn" + "baidu", "google", "bing", "ddg", "wikipedia-zh-CN", "amazondotcn" ] }, "CN": { @@ -873,7 +873,7 @@ "zh-TW": { "default": { "visibleDefaultEngines": [ - "google-b-d", "ddg", "readmoo", "wikipedia-zh-TW" + "google", "ddg", "readmoo", "wikipedia-zh-TW" ] } } diff --git a/browser/components/search/test/browser/browser_google.js b/browser/components/search/test/browser/browser_google.js index 54caecd54f62..449bbb8dfabd 100644 --- a/browser/components/search/test/browser/browser_google.js +++ b/browser/components/search/test/browser/browser_google.js @@ -15,7 +15,7 @@ let expectedEngine = { hidden: false, wrappedJSObject: { queryCharset: "UTF-8", - "_iconURL": "resource://search-plugins/images/google.ico", + "_iconURL": "data:image/x-icon;base64,AAABAAIAEBAAAAEAIABoBAAAJgAAACAgAAABACAAqBAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zD9/f2W/f392P39/fn9/f35/f391/39/ZT+/v4uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+Cf39/Zn///////////////////////////////////////////39/ZX///8IAAAAAAAAAAAAAAAA/v7+Cf39/cH/////+v35/7TZp/92ul3/WKs6/1iqOv9yuFn/rNWd//j79v///////f39v////wgAAAAAAAAAAP39/Zn/////7PXp/3G3WP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP+Or1j//vDo///////9/f2VAAAAAP///zD/////+vz5/3G3V/9TqDT/WKo6/6LQkf/U6cz/1urO/6rUm/+Zo0r/8IZB//adZ////v7///////7+/i79/f2Y/////4nWzf9Lqkj/Vqo4/9Xqzv///////////////////////ebY//SHRv/0hUL//NjD///////9/f2U/f392v////8sxPH/Ebzt/43RsP/////////////////////////////////4roL/9IVC//i1jf///////f391/39/fr/////Cr37/wW8+/+16/7/////////////////9IVC//SFQv/0hUL/9IVC//SFQv/3pnX///////39/fn9/f36/////wu++/8FvPv/tuz+//////////////////SFQv/0hUL/9IVC//SFQv/0hUL/96p7///////9/f35/f392/////81yfz/CrL5/2uk9v///////////////////////////////////////////////////////f392P39/Zn/////ks/7/zdS7P84Rur/0NT6///////////////////////9/f////////////////////////39/Zb+/v4y//////n5/v9WYu3/NUPq/ztJ6/+VnPT/z9L6/9HU+v+WnfT/Ul7t/+Hj/P////////////////////8wAAAAAP39/Z3/////6Or9/1hj7v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v9sdvD////////////9/f2YAAAAAAAAAAD///8K/f39w//////5+f7/paz2/11p7v88Suv/Okfq/1pm7v+iqfX/+fn+///////9/f3B/v7+CQAAAAAAAAAAAAAAAP///wr9/f2d///////////////////////////////////////////9/f2Z/v7+CQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/jL9/f2Z/f392/39/fr9/f36/f392v39/Zj///8wAAAAAAAAAAAAAAAAAAAAAPAPAADAAwAAgAEAAIABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIABAACAAQAAwAMAAPAPAAAoAAAAIAAAAEAAAAABACAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/g3+/v5X/f39mf39/cj9/f3q/f39+f39/fn9/f3q/f39yP39/Zn+/v5W////DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/iT9/f2c/f399f/////////////////////////////////////////////////////9/f31/f39mv7+/iMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gn9/f2K/f39+////////////////////////////////////////////////////////////////////////////f39+v39/Yf///8IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4k/f390v////////////////////////////////////////////////////////////////////////////////////////////////39/dD///8iAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////MP39/er//////////////////////////+r05v+v16H/gsBs/2WxSf9Wqjj/Vqk3/2OwRv99vWX/pdKV/97u2P////////////////////////////39/ej+/v4vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/iT9/f3q/////////////////////+v15/+Pxnv/VKk2/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/36+Z//d7tf///////////////////////39/ej///8iAAAAAAAAAAAAAAAAAAAAAAAAAAD///8K/f390//////////////////////E4bn/XKw+/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1apN/+x0pv///////////////////////39/dD///8IAAAAAAAAAAAAAAAAAAAAAP39/Yv/////////////////////sdij/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9TqDT/YKU1/8qOPv/5wZ////////////////////////39/YcAAAAAAAAAAAAAAAD+/v4l/f39+////////////////8Lgt/9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9utlT/n86N/7faqv+426v/pdKV/3u8ZP9UqDX/U6g0/3egN//jiUH/9IVC//SFQv/82MP//////////////////f39+v7+/iMAAAAAAAAAAP39/Z3////////////////q9Ob/W6w+/1OoNP9TqDT/U6g0/1OoNP9nskz/zOXC/////////////////////////////////+Dv2v+osWP/8YVC//SFQv/0hUL/9IVC//WQVP/++fb//////////////////f39mgAAAAD+/v4O/f399v///////////////4LHj/9TqDT/U6g0/1OoNP9TqDT/dblc//L58P/////////////////////////////////////////////8+v/3p3f/9IVC//SFQv/0hUL/9IVC//rIqf/////////////////9/f31////DP7+/ln////////////////f9v7/Cbz2/zOwhv9TqDT/U6g0/2KwRv/v9+z///////////////////////////////////////////////////////738//1kFT/9IVC//SFQv/0hUL/9plg///////////////////////+/v5W/f39nP///////////////4jf/f8FvPv/Bbz7/yG1s/9QqDz/vN2w//////////////////////////////////////////////////////////////////rHqP/0hUL/9IVC//SFQv/0hUL//vDn//////////////////39/Zn9/f3L////////////////R878/wW8+/8FvPv/Bbz7/y7C5P/7/fr//////////////////////////////////////////////////////////////////ere//SFQv/0hUL/9IVC//SFQv/718H//////////////////f39yP39/ez///////////////8cwvv/Bbz7/wW8+/8FvPv/WNL8///////////////////////////////////////0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//rIqv/////////////////9/f3q/f39+v///////////////we9+/8FvPv/Bbz7/wW8+/993P3///////////////////////////////////////SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/+cGf//////////////////39/fn9/f36////////////////B737/wW8+/8FvPv/Bbz7/33c/f//////////////////////////////////////9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/6xaX//////////////////f39+f39/e3///////////////8cwvv/Bbz7/wW8+/8FvPv/WdP8///////////////////////////////////////0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//vVv//////////////////9/f3q/f39y////////////////0bN/P8FvPv/Bbz7/wW8+/8hrvn/+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////39/cj9/f2c////////////////ht/9/wW8+/8FvPv/FZP1/zRJ6/+zuPf//////////////////////////////////////////////////////////////////////////////////////////////////////////////////f39mf7+/lr////////////////d9v7/B7n7/yB38f81Q+r/NUPq/0hV7P/u8P3////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v5X////D/39/ff///////////////9tkPT/NUPq/zVD6v81Q+r/NUPq/2Fs7//y8v7////////////////////////////////////////////09f7//////////////////////////////////////////////////f399f7+/g0AAAAA/f39n////////////////+Tm/P89Suv/NUPq/zVD6v81Q+r/NUPq/1Bc7f/IzPn/////////////////////////////////x8v5/0xY7P+MlPP////////////////////////////////////////////9/f2cAAAAAAAAAAD+/v4n/f39/P///////////////7W69/81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v9ZZe7/k5v0/6609/+vtff/lJv0/1pm7v81Q+r/NUPq/zVD6v+GjvL//v7//////////////////////////////f39+/7+/iQAAAAAAAAAAAAAAAD9/f2N/////////////////////6Cn9f81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v+BivL////////////////////////////9/f2KAAAAAAAAAAAAAAAAAAAAAP7+/gv9/f3V/////////////////////7W69/8+S+v/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/P0zr/7q/+P///////////////////////f390v7+/gkAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/ib9/f3r/////////////////////+Xn/P94gfH/NkTq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NkTq/3Z/8f/l5/z///////////////////////39/er+/v4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/jL9/f3r///////////////////////////k5vz/nqX1/2p08P9IVez/OEbq/zdF6v9GU+z/aHLv/5qh9f/i5Pz////////////////////////////9/f3q////MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/ib9/f3V/////////////////////////////////////////////////////////////////////////////////////////////////f390v7+/iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wr9/f2N/f39/P///////////////////////////////////////////////////////////////////////////f39+/39/Yv+/v4JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4n/f39n/39/ff//////////////////////////////////////////////////////f399v39/Z3+/v4lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+Dv7+/lr9/f2c/f39y/39/e39/f36/f39+v39/ez9/f3L/f39nP7+/ln+/v4OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/AA///AAD//AAAP/gAAB/wAAAP4AAAB8AAAAPAAAADgAAAAYAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABgAAAAcAAAAPAAAAD4AAAB/AAAA/4AAAf/AAAP/8AAP//wAP/", _urls: [ { type: "application/x-suggestions+json", @@ -47,12 +47,13 @@ function test() { let region = Services.prefs.getCharPref("browser.search.region"); let code = ""; + let keywordCode = ""; switch (region) { case "US": - code = "firefox-b-1-d"; + code = "firefox-b-1"; break; case "DE": - code = "firefox-b-d"; + code = "firefox-b"; break; case "RU": // Covered by test but doesn't use a code @@ -61,10 +62,17 @@ function test() { if (code) { expectedEngine.searchForm += `client=${code}&`; + keywordCode = `${code}-ab`; let urlParams = expectedEngine.wrappedJSObject._urls[1].params; urlParams.unshift({ name: "client", value: code, + purpose: "searchbar", + }); + urlParams.unshift({ + name: "client", + value: keywordCode, + purpose: "keyword", }); } expectedEngine.searchForm += "q="; @@ -72,7 +80,7 @@ function test() { let url; // Test search URLs (including purposes). - let purposes = ["", "contextmenu", "searchbar", "homepage", "newtab", "keyword"]; + let purposes = ["", "contextmenu", "searchbar", "homepage", "newtab"]; let urlParams; for (let purpose of purposes) { url = engine.getSubmission("foo", null, purpose).uri.spec; @@ -80,6 +88,10 @@ function test() { is(urlParams.get("client"), code, "Check ${purpose} search URL for code"); is(urlParams.get("q"), "foo", `Check ${purpose} search URL for 'foo'`); } + url = engine.getSubmission("foo", null, "keyword").uri.spec; + urlParams = new URLSearchParams(url.split("?")[1]); + is(urlParams.get("client"), keywordCode, "Check keyword search URL for code"); + is(urlParams.get("q"), "foo", `Check keyword search URL for 'foo'`); // Check search suggestion URL. url = engine.getSubmission("foo", "application/x-suggestions+json").uri.spec; diff --git a/browser/components/search/test/browser/browser_google_behavior.js b/browser/components/search/test/browser/browser_google_behavior.js index dae4ba1f59d0..11f3fab3fef5 100644 --- a/browser/components/search/test/browser/browser_google_behavior.js +++ b/browser/components/search/test/browser/browser_google_behavior.js @@ -24,10 +24,10 @@ let region = Services.prefs.getCharPref("browser.search.region"); let code = ""; switch (region) { case "US": - code = "firefox-b-1-d"; + code = "firefox-b-1"; break; case "DE": - code = "firefox-b-d"; + code = "firefox-b"; break; } @@ -36,7 +36,7 @@ if (code) { codes.context = code; codes.newTab = code; codes.submission = code; - codes.keyword = code; + codes.keyword = `${code}-ab`; } function promiseContentSearchReady(browser) { diff --git a/dom/svg/DOMSVGPathSegList.cpp b/dom/svg/DOMSVGPathSegList.cpp index e6ef42aaa9d4..0d9d1b722251 100644 --- a/dom/svg/DOMSVGPathSegList.cpp +++ b/dom/svg/DOMSVGPathSegList.cpp @@ -4,7 +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/. */ -#include "SVGElement.h" #include "DOMSVGPathSegList.h" #include "DOMSVGPathSeg.h" #include "nsError.h" @@ -12,8 +11,11 @@ #include "nsCOMPtr.h" #include "nsSVGAttrTearoffTable.h" #include "SVGPathSegUtils.h" +#include "mozilla/dom/SVGElement.h" #include "mozilla/dom/SVGPathSegListBinding.h" +using namespace mozilla::dom; + // See the comment in this file's header. namespace mozilla { diff --git a/dom/svg/DOMSVGPointList.cpp b/dom/svg/DOMSVGPointList.cpp index f4fbf969c99b..5fced476efc0 100644 --- a/dom/svg/DOMSVGPointList.cpp +++ b/dom/svg/DOMSVGPointList.cpp @@ -4,7 +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/. */ -#include "SVGElement.h" #include "DOMSVGPointList.h" #include "DOMSVGPoint.h" #include "nsError.h" @@ -12,9 +11,12 @@ #include "nsCOMPtr.h" #include "nsSVGAttrTearoffTable.h" #include "nsContentUtils.h" +#include "mozilla/dom/SVGElement.h" #include "mozilla/dom/SVGPointListBinding.h" #include +using namespace mozilla::dom; + // See the comment in this file's header. // local helper functions diff --git a/dom/svg/SVGAnimatedNumberList.cpp b/dom/svg/SVGAnimatedNumberList.cpp index 0092b170cb14..8ef63873a53d 100644 --- a/dom/svg/SVGAnimatedNumberList.cpp +++ b/dom/svg/SVGAnimatedNumberList.cpp @@ -7,12 +7,14 @@ #include "SVGAnimatedNumberList.h" #include "DOMSVGAnimatedNumberList.h" +#include "mozilla/dom/SVGElement.h" #include "mozilla/Move.h" -#include "SVGElement.h" #include "nsSVGAttrTearoffTable.h" #include "nsSMILValue.h" #include "SVGNumberListSMILType.h" +using namespace mozilla::dom; + namespace mozilla { nsresult SVGAnimatedNumberList::SetBaseValueString(const nsAString &aValue) { diff --git a/dom/svg/SVGAnimatedPathSegList.cpp b/dom/svg/SVGAnimatedPathSegList.cpp index cc4882f72cb1..189816b2eb31 100644 --- a/dom/svg/SVGAnimatedPathSegList.cpp +++ b/dom/svg/SVGAnimatedPathSegList.cpp @@ -13,6 +13,8 @@ #include "nsSMILValue.h" #include "SVGPathSegListSMILType.h" +using namespace mozilla::dom; + // See the comments in this file's header! namespace mozilla { diff --git a/dom/svg/SVGAnimatedPointList.cpp b/dom/svg/SVGAnimatedPointList.cpp index 8499e8a790ef..720414209eaa 100644 --- a/dom/svg/SVGAnimatedPointList.cpp +++ b/dom/svg/SVGAnimatedPointList.cpp @@ -7,12 +7,14 @@ #include "SVGAnimatedPointList.h" #include "DOMSVGPointList.h" +#include "mozilla/dom/SVGElement.h" #include "mozilla/Move.h" -#include "SVGElement.h" #include "nsSVGAttrTearoffTable.h" #include "nsSMILValue.h" #include "SVGPointListSMILType.h" +using namespace mozilla::dom; + // See the comments in this file's header! namespace mozilla { diff --git a/dom/svg/SVGContentUtils.cpp b/dom/svg/SVGContentUtils.cpp index 55a2e743ca21..7b2fd432761a 100644 --- a/dom/svg/SVGContentUtils.cpp +++ b/dom/svg/SVGContentUtils.cpp @@ -34,10 +34,95 @@ #include "SVGPathData.h" #include "SVGPathElement.h" +using namespace mozilla; using namespace mozilla::dom; using namespace mozilla::dom::SVGPreserveAspectRatio_Binding; using namespace mozilla::gfx; +static bool ParseNumber(RangedPtr& aIter, + const RangedPtr& aEnd, double& aValue) { + int32_t sign; + if (!SVGContentUtils::ParseOptionalSign(aIter, aEnd, sign)) { + return false; + } + + // Absolute value of the integer part of the mantissa. + double intPart = 0.0; + + bool gotDot = *aIter == '.'; + + if (!gotDot) { + if (!mozilla::IsAsciiDigit(*aIter)) { + return false; + } + do { + intPart = 10.0 * intPart + mozilla::AsciiAlphanumericToNumber(*aIter); + ++aIter; + } while (aIter != aEnd && mozilla::IsAsciiDigit(*aIter)); + + if (aIter != aEnd) { + gotDot = *aIter == '.'; + } + } + + // Fractional part of the mantissa. + double fracPart = 0.0; + + if (gotDot) { + ++aIter; + if (aIter == aEnd || !mozilla::IsAsciiDigit(*aIter)) { + return false; + } + + // Power of ten by which we need to divide the fraction + double divisor = 1.0; + + do { + fracPart = 10.0 * fracPart + mozilla::AsciiAlphanumericToNumber(*aIter); + divisor *= 10.0; + ++aIter; + } while (aIter != aEnd && mozilla::IsAsciiDigit(*aIter)); + + fracPart /= divisor; + } + + bool gotE = false; + int32_t exponent = 0; + int32_t expSign; + + if (aIter != aEnd && (*aIter == 'e' || *aIter == 'E')) { + RangedPtr expIter(aIter); + + ++expIter; + if (expIter != aEnd) { + expSign = *expIter == '-' ? -1 : 1; + if (*expIter == '-' || *expIter == '+') { + ++expIter; + } + if (expIter != aEnd && mozilla::IsAsciiDigit(*expIter)) { + // At this point we're sure this is an exponent + // and not the start of a unit such as em or ex. + gotE = true; + } + } + + if (gotE) { + aIter = expIter; + do { + exponent = 10.0 * exponent + mozilla::AsciiAlphanumericToNumber(*aIter); + ++aIter; + } while (aIter != aEnd && mozilla::IsAsciiDigit(*aIter)); + } + } + + // Assemble the number + aValue = sign * (intPart + fracPart); + if (gotE) { + aValue *= pow(10.0, expSign * exponent); + } + return true; +} + namespace mozilla { SVGSVGElement* SVGContentUtils::GetOuterSVGElement(SVGElement* aSVGElement) { @@ -589,90 +674,6 @@ gfx::Matrix SVGContentUtils::GetViewBoxTransform( return gfx::Matrix(a, 0.0f, 0.0f, d, e, f); } -static bool ParseNumber(RangedPtr& aIter, - const RangedPtr& aEnd, double& aValue) { - int32_t sign; - if (!SVGContentUtils::ParseOptionalSign(aIter, aEnd, sign)) { - return false; - } - - // Absolute value of the integer part of the mantissa. - double intPart = 0.0; - - bool gotDot = *aIter == '.'; - - if (!gotDot) { - if (!mozilla::IsAsciiDigit(*aIter)) { - return false; - } - do { - intPart = 10.0 * intPart + mozilla::AsciiAlphanumericToNumber(*aIter); - ++aIter; - } while (aIter != aEnd && mozilla::IsAsciiDigit(*aIter)); - - if (aIter != aEnd) { - gotDot = *aIter == '.'; - } - } - - // Fractional part of the mantissa. - double fracPart = 0.0; - - if (gotDot) { - ++aIter; - if (aIter == aEnd || !mozilla::IsAsciiDigit(*aIter)) { - return false; - } - - // Power of ten by which we need to divide the fraction - double divisor = 1.0; - - do { - fracPart = 10.0 * fracPart + mozilla::AsciiAlphanumericToNumber(*aIter); - divisor *= 10.0; - ++aIter; - } while (aIter != aEnd && mozilla::IsAsciiDigit(*aIter)); - - fracPart /= divisor; - } - - bool gotE = false; - int32_t exponent = 0; - int32_t expSign; - - if (aIter != aEnd && (*aIter == 'e' || *aIter == 'E')) { - RangedPtr expIter(aIter); - - ++expIter; - if (expIter != aEnd) { - expSign = *expIter == '-' ? -1 : 1; - if (*expIter == '-' || *expIter == '+') { - ++expIter; - } - if (expIter != aEnd && mozilla::IsAsciiDigit(*expIter)) { - // At this point we're sure this is an exponent - // and not the start of a unit such as em or ex. - gotE = true; - } - } - - if (gotE) { - aIter = expIter; - do { - exponent = 10.0 * exponent + mozilla::AsciiAlphanumericToNumber(*aIter); - ++aIter; - } while (aIter != aEnd && mozilla::IsAsciiDigit(*aIter)); - } - } - - // Assemble the number - aValue = sign * (intPart + fracPart); - if (gotE) { - aValue *= pow(10.0, expSign * exponent); - } - return true; -} - template bool SVGContentUtils::ParseNumber(RangedPtr& aIter, const RangedPtr& aEnd, diff --git a/dom/svg/SVGDataParser.h b/dom/svg/SVGDataParser.h index 818e7b9093df..a7617e853671 100644 --- a/dom/svg/SVGDataParser.h +++ b/dom/svg/SVGDataParser.h @@ -7,8 +7,9 @@ #ifndef __NS_SVGDATAPARSER_H__ #define __NS_SVGDATAPARSER_H__ +#include #include "mozilla/RangedPtr.h" -#include "nsString.h" +#include "nsStringFwd.h" namespace mozilla { diff --git a/dom/svg/SVGElementFactory.h b/dom/svg/SVGElementFactory.h index 0a41c52072a8..1f3acebc11f8 100644 --- a/dom/svg/SVGElementFactory.h +++ b/dom/svg/SVGElementFactory.h @@ -7,7 +7,13 @@ #ifndef mozilla_dom_SVGElementFactory_h #define mozilla_dom_SVGElementFactory_h +#include "nsError.h" +#include "mozilla/AlreadyAddRefed.h" +#include "mozilla/dom/FromParser.h" +#include "mozilla/dom/NodeInfo.h" + class nsAtom; +class nsIContent; namespace mozilla { namespace dom { diff --git a/dom/svg/SVGLength.cpp b/dom/svg/SVGLength.cpp index a7edd09791b8..a0961a3322e6 100644 --- a/dom/svg/SVGLength.cpp +++ b/dom/svg/SVGLength.cpp @@ -4,19 +4,20 @@ * 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/. */ -#include "mozilla/ArrayUtils.h" - #include "SVGLength.h" -#include "SVGElement.h" + +#include "mozilla/ArrayUtils.h" +#include "mozilla/dom/SVGElement.h" #include "mozilla/dom/SVGSVGElement.h" #include "nsTextFormatter.h" #include "SVGContentUtils.h" #include #include -namespace mozilla { +using namespace mozilla::dom; +using namespace mozilla::dom::SVGLength_Binding; -using namespace mozilla; +namespace mozilla { // Declare some helpers defined below: static void GetUnitString(nsAString& unit, uint16_t unitType); diff --git a/dom/svg/SVGMarkerElement.cpp b/dom/svg/SVGMarkerElement.cpp index 81f57ace86b3..6e5175c61c6b 100644 --- a/dom/svg/SVGMarkerElement.cpp +++ b/dom/svg/SVGMarkerElement.cpp @@ -11,6 +11,7 @@ #include "SVGAnimatedPreserveAspectRatio.h" #include "nsError.h" #include "mozilla/dom/SVGAngle.h" +#include "mozilla/dom/SVGGeometryElement.h" #include "mozilla/dom/SVGLengthBinding.h" #include "mozilla/dom/SVGMarkerElement.h" #include "mozilla/dom/SVGMarkerElementBinding.h" diff --git a/dom/svg/SVGPathSegListSMILType.cpp b/dom/svg/SVGPathSegListSMILType.cpp index 193dcc3944e2..0d40f15e9d11 100644 --- a/dom/svg/SVGPathSegListSMILType.cpp +++ b/dom/svg/SVGPathSegListSMILType.cpp @@ -11,6 +11,8 @@ #include "SVGPathSegUtils.h" #include "SVGPathData.h" +using namespace mozilla::dom::SVGPathSeg_Binding; + // Indices of boolean flags within 'arc' segment chunks in path-data arrays // (where '0' would correspond to the index of the encoded segment type): #define LARGE_ARC_FLAG_IDX 4 diff --git a/dom/svg/SVGPathSegUtils.cpp b/dom/svg/SVGPathSegUtils.cpp index 3d786771b9e3..a15ff8db6f0c 100644 --- a/dom/svg/SVGPathSegUtils.cpp +++ b/dom/svg/SVGPathSegUtils.cpp @@ -13,6 +13,7 @@ #include "nsTextFormatter.h" using namespace mozilla; +using namespace mozilla::dom::SVGPathSeg_Binding; using namespace mozilla::gfx; static const float PATH_SEG_LENGTH_TOLERANCE = 0.0000001f; diff --git a/dom/svg/SVGSVGElement.cpp b/dom/svg/SVGSVGElement.cpp index ec7666259523..7cb647bc67b1 100644 --- a/dom/svg/SVGSVGElement.cpp +++ b/dom/svg/SVGSVGElement.cpp @@ -8,6 +8,7 @@ #include "mozilla/dom/SVGSVGElement.h" #include "mozilla/dom/SVGSVGElementBinding.h" #include "mozilla/dom/SVGMatrix.h" +#include "mozilla/dom/SVGRect.h" #include "mozilla/dom/SVGViewElement.h" #include "mozilla/EventDispatcher.h" diff --git a/dom/svg/SVGStringList.cpp b/dom/svg/SVGStringList.cpp index 6d3d037c314a..15a2ab826c14 100644 --- a/dom/svg/SVGStringList.cpp +++ b/dom/svg/SVGStringList.cpp @@ -7,6 +7,7 @@ #include "SVGStringList.h" #include "nsError.h" #include "nsCharSeparatedTokenizer.h" +#include "nsContentUtils.h" #include "nsString.h" #include "nsWhitespaceTokenizer.h" #include "SVGContentUtils.h" diff --git a/dom/svg/SVGTests.cpp b/dom/svg/SVGTests.cpp index b213aca9df5c..bfdd79754fc4 100644 --- a/dom/svg/SVGTests.cpp +++ b/dom/svg/SVGTests.cpp @@ -6,6 +6,8 @@ #include "mozilla/dom/SVGTests.h" #include "DOMSVGStringList.h" +#include "nsIContent.h" +#include "nsIContentInlines.h" #include "nsSVGFeatures.h" #include "mozilla/dom/SVGSwitchElement.h" #include "nsCharSeparatedTokenizer.h" diff --git a/gfx/webrender_bindings/revision.txt b/gfx/webrender_bindings/revision.txt index f71364c4eaeb..b25d5b3e28ea 100644 --- a/gfx/webrender_bindings/revision.txt +++ b/gfx/webrender_bindings/revision.txt @@ -1 +1 @@ -6bdd0d26afe3fc5a24f10c19d4ca8569d0182a37 +8476ed5e134e54f2facb01ea45e8a2008c8ba8da diff --git a/gfx/wr/Cargo.lock b/gfx/wr/Cargo.lock index 905b404fb43b..35794460e9aa 100644 --- a/gfx/wr/Cargo.lock +++ b/gfx/wr/Cargo.lock @@ -1547,6 +1547,7 @@ dependencies = [ "gleam 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", "image 0.20.1 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "mozangle 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/gfx/wr/webrender/Cargo.toml b/gfx/wr/webrender/Cargo.toml index d386b90be071..7dae53dcc89d 100644 --- a/gfx/wr/webrender/Cargo.toml +++ b/gfx/wr/webrender/Cargo.toml @@ -72,6 +72,7 @@ rand = "0.4" [target.'cfg(any(target_os = "android", all(unix, not(target_os = "macos"))))'.dependencies] freetype = { version = "0.4", default-features = false } +libc = "0.2" [target.'cfg(target_os = "windows")'.dependencies] dwrote = "0.6.3" diff --git a/gfx/wr/webrender/src/clip.rs b/gfx/wr/webrender/src/clip.rs index 461d5d0e4669..ae68d7938112 100644 --- a/gfx/wr/webrender/src/clip.rs +++ b/gfx/wr/webrender/src/clip.rs @@ -18,7 +18,7 @@ use image::{self, Repetition}; use intern; use internal_types::FastHashSet; use prim_store::{ClipData, ImageMaskData, SpaceMapper, VisibleMaskImageTile}; -use prim_store::{PointKey, SizeKey, RectangleKey}; +use prim_store::{PointKey, PrimitiveInstance, SizeKey, RectangleKey}; use render_task::to_cache_size; use resource_cache::{ImageRequest, ResourceCache}; use std::{cmp, u32}; @@ -198,7 +198,7 @@ impl ClipChainId { // A clip chain node is an id for a range of clip sources, // and a link to a parent clip chain node, or ClipChainId::NONE. -#[derive(Clone)] +#[derive(Clone, Debug)] pub struct ClipChainNode { pub handle: ClipDataHandle, pub local_pos: LayoutPoint, @@ -516,7 +516,7 @@ impl ClipStore { // information, and a clip chain id, build an optimized clip chain instance. pub fn build_clip_chain_instance( &mut self, - clip_chain_id: ClipChainId, + prim_instance: &PrimitiveInstance, local_prim_rect: LayoutRect, local_prim_clip_rect: LayoutRect, spatial_node_index: SpatialNodeIndex, @@ -536,7 +536,7 @@ impl ClipStore { // smallest possible local/device clip area. self.clip_node_info.clear(); - let mut current_clip_chain_id = clip_chain_id; + let mut current_clip_chain_id = prim_instance.clip_chain_id; // for each clip chain node while current_clip_chain_id != ClipChainId::NONE { @@ -551,10 +551,12 @@ impl ClipStore { collector.insert(current_clip_chain_id); } None => { + if prim_instance.is_chased() { + println!("\t\tclip node (from chain) {:?} at {:?}", + clip_chain_node.spatial_node_index, clip_chain_node.local_pos); + } if !add_clip_node_to_current_chain( - clip_chain_node.handle, - clip_chain_node.spatial_node_index, - clip_chain_node.local_pos, + clip_chain_node, spatial_node_index, &mut local_clip_rect, &mut self.clip_node_info, @@ -573,15 +575,14 @@ impl ClipStore { // handled as part of this rasterization root. if let Some(clip_node_collector) = clip_node_collector { for clip_chain_id in &clip_node_collector.clips { - let (handle, clip_spatial_node_index, local_pos) = { - let clip_chain_node = &self.clip_chain_nodes[clip_chain_id.0 as usize]; - (clip_chain_node.handle, clip_chain_node.spatial_node_index, clip_chain_node.local_pos) - }; + let clip_chain_node = &self.clip_chain_nodes[clip_chain_id.0 as usize]; + if prim_instance.is_chased() { + println!("\t\tclip node (from collector) {:?} at {:?}", + clip_chain_node.spatial_node_index, clip_chain_node.local_pos); + } if !add_clip_node_to_current_chain( - handle, - clip_spatial_node_index, - local_pos, + clip_chain_node, spatial_node_index, &mut local_clip_rect, &mut self.clip_node_info, @@ -655,6 +656,10 @@ impl ClipStore { resource_cache, ); + if prim_instance.is_chased() { + println!("\t\tpartial {:?}", node.item); + } + // As a special case, a partial accept of a clip rect that is // in the same coordinate system as the primitive doesn't need // a clip mask. Instead, it can be handled by the primitive @@ -1362,77 +1367,73 @@ impl ClipNodeCollector { // for the current clip chain. Returns false if the clip // results in the entire primitive being culled out. fn add_clip_node_to_current_chain( - handle: ClipDataHandle, - clip_spatial_node_index: SpatialNodeIndex, - local_pos: LayoutPoint, + node: &ClipChainNode, spatial_node_index: SpatialNodeIndex, local_clip_rect: &mut LayoutRect, clip_node_info: &mut Vec, clip_data_store: &ClipDataStore, clip_scroll_tree: &ClipScrollTree, ) -> bool { - let clip_node = &clip_data_store[handle]; - let clip_spatial_node = &clip_scroll_tree.spatial_nodes[clip_spatial_node_index.0]; + let clip_node = &clip_data_store[node.handle]; + let clip_spatial_node = &clip_scroll_tree.spatial_nodes[node.spatial_node_index.0]; let ref_spatial_node = &clip_scroll_tree.spatial_nodes[spatial_node_index.0]; // Determine the most efficient way to convert between coordinate // systems of the primitive and clip node. - let conversion = if spatial_node_index == clip_spatial_node_index { - Some(ClipSpaceConversion::Local) + let conversion = if spatial_node_index == node.spatial_node_index { + ClipSpaceConversion::Local } else if ref_spatial_node.coordinate_system_id == clip_spatial_node.coordinate_system_id { let scale_offset = ref_spatial_node.coordinate_system_relative_scale_offset .inverse() .accumulate(&clip_spatial_node.coordinate_system_relative_scale_offset); - Some(ClipSpaceConversion::ScaleOffset(scale_offset)) + ClipSpaceConversion::ScaleOffset(scale_offset) } else { - let xf = clip_scroll_tree.get_relative_transform( - clip_spatial_node_index, + match clip_scroll_tree.get_relative_transform( + node.spatial_node_index, ROOT_SPATIAL_NODE_INDEX, - ); - - xf.map(|xf| { - ClipSpaceConversion::Transform(xf.with_destination::()) - }) + ) { + None => return true, + Some(xf) => ClipSpaceConversion::Transform(xf.with_destination::()), + } }; // If we can convert spaces, try to reduce the size of the region // requested, and cache the conversion information for the next step. - if let Some(conversion) = conversion { - if let Some(clip_rect) = clip_node.item.get_local_clip_rect(local_pos) { - match conversion { - ClipSpaceConversion::Local => { - *local_clip_rect = match local_clip_rect.intersection(&clip_rect) { - Some(rect) => rect, - None => return false, - }; - } - ClipSpaceConversion::ScaleOffset(ref scale_offset) => { - let clip_rect = scale_offset.map_rect(&clip_rect); - *local_clip_rect = match local_clip_rect.intersection(&clip_rect) { - Some(rect) => rect, - None => return false, - }; - } - ClipSpaceConversion::Transform(..) => { - // TODO(gw): In the future, we can reduce the size - // of the pic_clip_rect here. To do this, - // we can use project_rect or the - // inverse_rect_footprint method, depending - // on the relationship of the clip, pic - // and primitive spatial nodes. - // I have left this for now until we - // find some good test cases where this - // would be a worthwhile perf win. - } + if let Some(clip_rect) = clip_node.item.get_local_clip_rect(node.local_pos) { + match conversion { + ClipSpaceConversion::Local => { + *local_clip_rect = match local_clip_rect.intersection(&clip_rect) { + Some(rect) => rect, + None => return false, + }; + } + ClipSpaceConversion::ScaleOffset(ref scale_offset) => { + let clip_rect = scale_offset.map_rect(&clip_rect); + *local_clip_rect = match local_clip_rect.intersection(&clip_rect) { + Some(rect) => rect, + None => return false, + }; + } + ClipSpaceConversion::Transform(..) => { + // TODO(gw): In the future, we can reduce the size + // of the pic_clip_rect here. To do this, + // we can use project_rect or the + // inverse_rect_footprint method, depending + // on the relationship of the clip, pic + // and primitive spatial nodes. + // I have left this for now until we + // find some good test cases where this + // would be a worthwhile perf win. } } - clip_node_info.push(ClipNodeInfo { - conversion, - local_pos, - handle, - spatial_node_index: clip_spatial_node_index, - }) } + clip_node_info.push(ClipNodeInfo { + conversion, + local_pos: node.local_pos, + handle: node.handle, + spatial_node_index: node.spatial_node_index, + }); + true } diff --git a/gfx/wr/webrender/src/lib.rs b/gfx/wr/webrender/src/lib.rs index f4c0cce0fb7c..d5a6c2cc61c8 100644 --- a/gfx/wr/webrender/src/lib.rs +++ b/gfx/wr/webrender/src/lib.rs @@ -153,6 +153,8 @@ extern crate core_text; #[cfg(all(unix, not(target_os = "macos")))] extern crate freetype; +#[cfg(all(unix, not(target_os = "macos")))] +extern crate libc; #[cfg(target_os = "windows")] extern crate dwrote; diff --git a/gfx/wr/webrender/src/platform/macos/font.rs b/gfx/wr/webrender/src/platform/macos/font.rs index 0543efba8ea4..770c94c851d5 100644 --- a/gfx/wr/webrender/src/platform/macos/font.rs +++ b/gfx/wr/webrender/src/platform/macos/font.rs @@ -339,10 +339,7 @@ impl FontContext { match self.ct_fonts.entry((font_key, size, variations.to_vec())) { Entry::Occupied(entry) => Some((*entry.get()).clone()), Entry::Vacant(entry) => { - let cg_font = match self.cg_fonts.get(&font_key) { - None => return None, - Some(cg_font) => cg_font, - }; + let cg_font = self.cg_fonts.get(&font_key)?; let ct_font = new_ct_font_with_variations(cg_font, size.to_f64_px(), variations); entry.insert(ct_font.clone()); Some(ct_font) diff --git a/gfx/wr/webrender/src/platform/unix/font.rs b/gfx/wr/webrender/src/platform/unix/font.rs index 6d1e98c60842..bec591256f8c 100644 --- a/gfx/wr/webrender/src/platform/unix/font.rs +++ b/gfx/wr/webrender/src/platform/unix/font.rs @@ -4,7 +4,7 @@ use api::{ColorU, GlyphDimensions, FontKey, FontRenderMode}; use api::{FontInstancePlatformOptions, FontLCDFilter, FontHinting}; -use api::{FontInstanceFlags, NativeFontHandle}; +use api::{FontInstanceFlags, FontVariation, NativeFontHandle}; use freetype::freetype::{FT_BBox, FT_Outline_Translate, FT_Pixel_Mode, FT_Render_Mode}; use freetype::freetype::{FT_Done_Face, FT_Error, FT_Get_Char_Index, FT_Int32}; use freetype::freetype::{FT_Done_FreeType, FT_Library_SetLcdFilter, FT_Pos}; @@ -12,20 +12,26 @@ use freetype::freetype::{FT_F26Dot6, FT_Face, FT_Glyph_Format, FT_Long, FT_UInt} use freetype::freetype::{FT_GlyphSlot, FT_LcdFilter, FT_New_Face, FT_New_Memory_Face}; use freetype::freetype::{FT_Init_FreeType, FT_Load_Glyph, FT_Render_Glyph}; use freetype::freetype::{FT_Library, FT_Outline_Get_CBox, FT_Set_Char_Size, FT_Select_Size}; -use freetype::freetype::{FT_Fixed, FT_Matrix, FT_Set_Transform}; +use freetype::freetype::{FT_Fixed, FT_Matrix, FT_Set_Transform, FT_String, FT_ULong}; +use freetype::freetype::{FT_Err_Unimplemented_Feature}; use freetype::freetype::{FT_LOAD_COLOR, FT_LOAD_DEFAULT, FT_LOAD_FORCE_AUTOHINT}; use freetype::freetype::{FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH, FT_LOAD_NO_AUTOHINT}; use freetype::freetype::{FT_LOAD_NO_BITMAP, FT_LOAD_NO_HINTING, FT_LOAD_VERTICAL_LAYOUT}; use freetype::freetype::{FT_FACE_FLAG_SCALABLE, FT_FACE_FLAG_FIXED_SIZES}; +use freetype::freetype::{FT_FACE_FLAG_MULTIPLE_MASTERS}; use freetype::succeeded; use glyph_rasterizer::{FontInstance, GlyphFormat, GlyphKey, GlyphRasterResult, RasterizedGlyph}; #[cfg(feature = "pathfinder")] use glyph_rasterizer::NativeFontHandleWrapper; use internal_types::{FastHashMap, ResourceCacheError}; +#[cfg(not(target_os = "android"))] +use libc::{dlsym, RTLD_DEFAULT}; +use libc::free; #[cfg(feature = "pathfinder")] use pathfinder_font_renderer::freetype as pf_freetype; use std::{cmp, mem, ptr, slice}; use std::cmp::max; +use std::collections::hash_map::Entry; use std::ffi::CString; use std::sync::Arc; @@ -38,16 +44,141 @@ const FT_LOAD_TARGET_MONO: FT_UInt = 2 << 16; const FT_LOAD_TARGET_LCD: FT_UInt = 3 << 16; const FT_LOAD_TARGET_LCD_V: FT_UInt = 4 << 16; -struct Face { - face: FT_Face, +#[repr(C)] +struct FT_Var_Axis { + pub name: *mut FT_String, + pub minimum: FT_Fixed, + pub def: FT_Fixed, + pub maximum: FT_Fixed, + pub tag: FT_ULong, + pub strid: FT_UInt, +} + +#[repr(C)] +struct FT_Var_Named_Style { + pub coords: *mut FT_Fixed, + pub strid: FT_UInt, + pub psid: FT_UInt, +} + +#[repr(C)] +struct FT_MM_Var { + pub num_axis: FT_UInt, + pub num_designs: FT_UInt, + pub num_namedstyles: FT_UInt, + pub axis: *mut FT_Var_Axis, + pub namedstyle: *mut FT_Var_Named_Style, +} + +#[inline] +pub fn unimplemented(error: FT_Error) -> bool { + error == FT_Err_Unimplemented_Feature as FT_Error +} + +// Use dlsym to check for symbols. If not available. just return an unimplemented error. +#[cfg(not(target_os = "android"))] +macro_rules! ft_dyn_fn { + ($func_name:ident($($arg_name:ident:$arg_type:ty),*) -> FT_Error) => { + #[allow(non_snake_case)] + unsafe fn $func_name($($arg_name:$arg_type),*) -> FT_Error { + extern "C" fn unimpl_func($(_:$arg_type),*) -> FT_Error { + FT_Err_Unimplemented_Feature as FT_Error + } + lazy_static! { + static ref func: unsafe extern "C" fn($($arg_type),*) -> FT_Error = { + unsafe { + let cname = CString::new(stringify!($func_name)).unwrap(); + let ptr = dlsym(RTLD_DEFAULT, cname.as_ptr()); + if !ptr.is_null() { mem::transmute(ptr) } else { unimpl_func } + } + }; + } + (*func)($($arg_name),*) + } + } +} + +// On Android, just statically link in the symbols... +#[cfg(target_os = "android")] +macro_rules! ft_dyn_fn { + ($($proto:tt)+) => { extern "C" { fn $($proto)+; } } +} + +ft_dyn_fn!(FT_Get_MM_Var(face: FT_Face, desc: *mut *mut FT_MM_Var) -> FT_Error); +ft_dyn_fn!(FT_Done_MM_Var(library: FT_Library, desc: *mut FT_MM_Var) -> FT_Error); +ft_dyn_fn!(FT_Set_Var_Design_Coordinates(face: FT_Face, num_vals: FT_UInt, vals: *mut FT_Fixed) -> FT_Error); + +extern "C" { + fn FT_GlyphSlot_Embolden(slot: FT_GlyphSlot); +} + +enum FontFile { + Pathname(CString), + Data(Arc>), +} + +struct FontFace { // Raw byte data has to live until the font is deleted, according to // https://www.freetype.org/freetype2/docs/reference/ft2-base_interface.html#FT_New_Memory_Face - _bytes: Option>>, + file: FontFile, + index: u32, + face: FT_Face, + mm_var: *mut FT_MM_Var, +} + +impl Drop for FontFace { + fn drop(&mut self) { + unsafe { + if !self.mm_var.is_null() && + unimplemented(FT_Done_MM_Var((*(*self.face).glyph).library, self.mm_var)) { + free(self.mm_var as _); + } + + FT_Done_Face(self.face); + } + } +} + +struct VariationFace(FT_Face); + +impl Drop for VariationFace { + fn drop(&mut self) { + unsafe { FT_Done_Face(self.0) }; + } +} + +fn new_ft_face(font_key: &FontKey, lib: FT_Library, file: &FontFile, index: u32) -> Option { + unsafe { + let mut face: FT_Face = ptr::null_mut(); + let result = match file { + FontFile::Pathname(ref cstr) => FT_New_Face( + lib, + cstr.as_ptr(), + index as FT_Long, + &mut face, + ), + FontFile::Data(ref bytes) => FT_New_Memory_Face( + lib, + bytes.as_ptr(), + bytes.len() as FT_Long, + index as FT_Long, + &mut face, + ), + }; + if succeeded(result) && !face.is_null() { + Some(face) + } else { + warn!("WARN: webrender failed to load font"); + debug!("font={:?}, result={:?}", font_key, result); + None + } + } } pub struct FontContext { lib: FT_Library, - faces: FastHashMap, + faces: FastHashMap, + variations: FastHashMap<(FontKey, Vec), VariationFace>, lcd_extra_pixels: i64, } @@ -56,10 +187,6 @@ pub struct FontContext { // a given FontContext so it is safe to move the latter between threads. unsafe impl Send for FontContext {} -extern "C" { - fn FT_GlyphSlot_Embolden(slot: FT_GlyphSlot); -} - fn get_skew_bounds(bottom: i32, top: i32, skew_factor: f32) -> (f32, f32) { let skew_min = ((bottom as f32 + 0.5) * skew_factor).floor(); let skew_max = ((top as f32 - 0.5) * skew_factor).ceil(); @@ -165,6 +292,7 @@ impl FontContext { Ok(FontContext { lib, faces: FastHashMap::default(), + variations: FastHashMap::default(), lcd_extra_pixels, }) } else { @@ -181,72 +309,78 @@ impl FontContext { pub fn add_raw_font(&mut self, font_key: &FontKey, bytes: Arc>, index: u32) { if !self.faces.contains_key(&font_key) { - let mut face: FT_Face = ptr::null_mut(); - let result = unsafe { - FT_New_Memory_Face( - self.lib, - bytes.as_ptr(), - bytes.len() as FT_Long, - index as FT_Long, - &mut face, - ) - }; - if succeeded(result) && !face.is_null() { - self.faces.insert( - *font_key, - Face { - face, - _bytes: Some(bytes), - }, - ); - } else { - warn!("WARN: webrender failed to load font"); - debug!("font={:?}", font_key); + let file = FontFile::Data(bytes); + if let Some(face) = new_ft_face(font_key, self.lib, &file, index) { + self.faces.insert(*font_key, FontFace { file, index, face, mm_var: ptr::null_mut() }); } } } pub fn add_native_font(&mut self, font_key: &FontKey, native_font_handle: NativeFontHandle) { if !self.faces.contains_key(&font_key) { - let mut face: FT_Face = ptr::null_mut(); - let pathname = CString::new(native_font_handle.pathname).unwrap(); - let result = unsafe { - FT_New_Face( - self.lib, - pathname.as_ptr(), - native_font_handle.index as FT_Long, - &mut face, - ) - }; - if succeeded(result) && !face.is_null() { - self.faces.insert( - *font_key, - Face { - face, - _bytes: None, - }, - ); - } else { - warn!("WARN: webrender failed to load font"); - debug!("font={:?}, path={:?}", font_key, pathname); + let file = FontFile::Pathname(CString::new(native_font_handle.pathname).unwrap()); + let index = native_font_handle.index; + if let Some(face) = new_ft_face(font_key, self.lib, &file, index) { + self.faces.insert(*font_key, FontFace { file, index, face, mm_var: ptr::null_mut() }); } } } pub fn delete_font(&mut self, font_key: &FontKey) { - if let Some(face) = self.faces.remove(font_key) { - let result = unsafe { FT_Done_Face(face.face) }; - assert!(succeeded(result)); + if let Some(_) = self.faces.remove(font_key) { + self.variations.retain(|k, _| k.0 != *font_key); } } - pub fn delete_font_instance(&mut self, _instance: &FontInstance) { - // This backend does not yet support variations, so there is nothing to do here. + pub fn delete_font_instance(&mut self, instance: &FontInstance) { + // Ensure we don't keep around excessive amounts of stale variations. + if !instance.variations.is_empty() { + self.variations.remove(&(instance.font_key, instance.variations.clone())); + } } - fn load_glyph(&self, font: &FontInstance, glyph: &GlyphKey) -> Option<(FT_GlyphSlot, f32)> { - debug_assert!(self.faces.contains_key(&font.font_key)); - let face = self.faces.get(&font.font_key).unwrap(); + fn get_ft_face(&mut self, font: &FontInstance) -> Option { + if font.variations.is_empty() { + return Some(self.faces.get(&font.font_key)?.face); + } + match self.variations.entry((font.font_key, font.variations.clone())) { + Entry::Occupied(entry) => Some(entry.get().0), + Entry::Vacant(entry) => unsafe { + let normal_face = self.faces.get_mut(&font.font_key)?; + if ((*normal_face.face).face_flags & (FT_FACE_FLAG_MULTIPLE_MASTERS as FT_Long)) == 0 { + return Some(normal_face.face); + } + // Clone a new FT face and attempt to set the variation values on it. + // Leave unspecified values at the defaults. + let var_face = new_ft_face(&font.font_key, self.lib, &normal_face.file, normal_face.index)?; + if !normal_face.mm_var.is_null() || + succeeded(FT_Get_MM_Var(normal_face.face, &mut normal_face.mm_var)) { + let mm_var = normal_face.mm_var; + let num_axis = (*mm_var).num_axis; + let mut coords: Vec = Vec::with_capacity(num_axis as usize); + for i in 0 .. num_axis { + let axis = (*mm_var).axis.offset(i as isize); + let mut value = (*axis).def; + for var in &font.variations { + if var.tag as FT_ULong == (*axis).tag { + value = (var.value * 65536.0 + 0.5) as FT_Fixed; + value = cmp::min(value, (*axis).maximum); + value = cmp::max(value, (*axis).minimum); + break; + } + } + coords.push(value); + } + FT_Set_Var_Design_Coordinates(var_face, num_axis, coords.as_mut_ptr()); + } + entry.insert(VariationFace(var_face)); + Some(var_face) + } + } + } + + fn load_glyph(&mut self, font: &FontInstance, glyph: &GlyphKey) -> Option<(FT_GlyphSlot, f32)> { + let face = self.get_ft_face(font)?; let mut load_flags = FT_LOAD_DEFAULT; let FontInstancePlatformOptions { mut hinting, .. } = font.platform_options.unwrap_or_default(); @@ -293,12 +427,12 @@ impl FontContext { let (x_scale, y_scale) = font.transform.compute_scale().unwrap_or((1.0, 1.0)); let scale = font.oversized_scale_factor(x_scale, y_scale); let req_size = font.size.to_f64_px(); - let face_flags = unsafe { (*face.face).face_flags }; + let face_flags = unsafe { (*face).face_flags }; let mut result = if (face_flags & (FT_FACE_FLAG_FIXED_SIZES as FT_Long)) != 0 && (face_flags & (FT_FACE_FLAG_SCALABLE as FT_Long)) == 0 && (load_flags & FT_LOAD_NO_BITMAP) == 0 { - unsafe { FT_Set_Transform(face.face, ptr::null_mut(), ptr::null_mut()) }; - self.choose_bitmap_size(face.face, req_size * y_scale / scale) + unsafe { FT_Set_Transform(face, ptr::null_mut(), ptr::null_mut()) }; + self.choose_bitmap_size(face, req_size * y_scale / scale) } else { let mut shape = font.transform.invert_scale(x_scale, y_scale); if font.flags.contains(FontInstanceFlags::FLIP_X) { @@ -320,9 +454,9 @@ impl FontContext { yy: (shape.scale_y * 65536.0) as FT_Fixed, }; unsafe { - FT_Set_Transform(face.face, &mut ft_shape, ptr::null_mut()); + FT_Set_Transform(face, &mut ft_shape, ptr::null_mut()); FT_Set_Char_Size( - face.face, + face, (req_size * x_scale / scale * 64.0 + 0.5) as FT_F26Dot6, (req_size * y_scale / scale * 64.0 + 0.5) as FT_F26Dot6, 0, @@ -332,11 +466,11 @@ impl FontContext { }; if succeeded(result) { - result = unsafe { FT_Load_Glyph(face.face, glyph.index() as FT_UInt, load_flags as FT_Int32) }; + result = unsafe { FT_Load_Glyph(face, glyph.index() as FT_UInt, load_flags as FT_Int32) }; }; if succeeded(result) { - let slot = unsafe { (*face.face).glyph }; + let slot = unsafe { (*face).glyph }; assert!(slot != ptr::null_mut()); if font.flags.contains(FontInstanceFlags::SYNTHETIC_BOLD) { @@ -504,9 +638,9 @@ impl FontContext { } pub fn get_glyph_index(&mut self, font_key: FontKey, ch: char) -> Option { - let face = self.faces.get(&font_key).expect("Unknown font key!"); + let face = self.faces.get(&font_key)?.face; unsafe { - let idx = FT_Get_Char_Index(face.face, ch as _); + let idx = FT_Get_Char_Index(face, ch as _); if idx != 0 { Some(idx) } else { @@ -823,6 +957,8 @@ impl FontContext { impl Drop for FontContext { fn drop(&mut self) { + self.variations.clear(); + self.faces.clear(); unsafe { FT_Done_FreeType(self.lib); } diff --git a/gfx/wr/webrender/src/prim_store/mod.rs b/gfx/wr/webrender/src/prim_store/mod.rs index 33436475407e..1ede345c99b2 100644 --- a/gfx/wr/webrender/src/prim_store/mod.rs +++ b/gfx/wr/webrender/src/prim_store/mod.rs @@ -2036,7 +2036,7 @@ impl PrimitiveStore { let clip_chain = frame_state .clip_store .build_clip_chain_instance( - prim_instance.clip_chain_id, + prim_instance, local_rect, prim_local_clip_rect, prim_context.spatial_node_index, @@ -3117,7 +3117,7 @@ impl PrimitiveInstance { let segment_clip_chain = frame_state .clip_store .build_clip_chain_instance( - self.clip_chain_id, + self, segment.local_rect.translate(&LayoutVector2D::new(prim_origin.x, prim_origin.y)), prim_local_clip_rect, prim_context.spatial_node_index, diff --git a/js/public/Id.h b/js/public/Id.h index 575f08d300db..34c700e33387 100644 --- a/js/public/Id.h +++ b/js/public/Id.h @@ -53,6 +53,9 @@ struct PropertyKey { bool operator==(const PropertyKey& rhs) const { return asBits == rhs.asBits; } bool operator!=(const PropertyKey& rhs) const { return asBits != rhs.asBits; } + + MOZ_ALWAYS_INLINE bool isInt() const { return !!(asBits & JSID_TYPE_INT_BIT); } + } JS_HAZ_GC_POINTER; } // namespace JS @@ -91,6 +94,7 @@ static MOZ_ALWAYS_INLINE bool JSID_IS_INT(jsid id) { static MOZ_ALWAYS_INLINE int32_t JSID_TO_INT(jsid id) { MOZ_ASSERT(JSID_IS_INT(id)); + MOZ_ASSERT(id.isInt()); uint32_t bits = static_cast(JSID_BITS(id)) >> 1; return static_cast(bits); } diff --git a/layout/base/AccessibleCaretManager.cpp b/layout/base/AccessibleCaretManager.cpp index 782062f5b4cb..cdbf755ed5fc 100644 --- a/layout/base/AccessibleCaretManager.cpp +++ b/layout/base/AccessibleCaretManager.cpp @@ -502,9 +502,7 @@ nsresult AccessibleCaretManager::SelectWordOrShortcut(const nsPoint& aPoint) { #ifdef MOZ_WIDGET_ANDROID // On Android, we need IgnoreRootScrollFrame for correct hit testing when // zoomed in or out. - // - // FIXME(emilio): But do we really want to override the other two flags? - options = nsLayoutUtils::FrameForPointOption::IgnoreRootScrollFrame; + options += nsLayoutUtils::FrameForPointOption::IgnoreRootScrollFrame; #endif AutoWeakFrame ptFrame = diff --git a/toolkit/components/search/nsSearchService.js b/toolkit/components/search/nsSearchService.js index f4692e240d42..27ee63acb94d 100644 --- a/toolkit/components/search/nsSearchService.js +++ b/toolkit/components/search/nsSearchService.js @@ -581,34 +581,6 @@ function fetchRegion(ss) { }); } -// This converts our legacy google engines to the -// new codes. We have to manually change them here -// because we can't change the default name in absearch. -function convertGoogleEngines(engineNames) { - let overrides = { - "google": "google-b-d", - "google-2018": "google-b-1-d", - }; - - let esrOverrides = { - "google": "google-b-e", - "google-2018": "google-b-1-e", - "google-b-d": "google-b-e", - "google-b-1-d": "google-b-1-e", - }; - - if (AppConstants.MOZ_APP_VERSION_DISPLAY.endsWith("esr")) { - overrides = esrOverrides; - } - for (let engine in overrides) { - let index = engineNames.indexOf(engine); - if (index > -1) { - engineNames[index] = overrides[engine]; - } - } - return engineNames; -} - // This will make an HTTP request to a Mozilla server that will return // JSON data telling us what engine should be set as the default for // the current region, and how soon we should check again. @@ -3596,8 +3568,6 @@ SearchService.prototype = { } } - engineNames = convertGoogleEngines(engineNames); - for (let name of engineNames) { uris.push(APP_SEARCH_PREFIX + name + ".xml"); } diff --git a/toolkit/mozapps/update/content/updates.js b/toolkit/mozapps/update/content/updates.js index f2591fd67e91..321a42475ee5 100644 --- a/toolkit/mozapps/update/content/updates.js +++ b/toolkit/mozapps/update/content/updates.js @@ -820,7 +820,7 @@ var gDownloadingPage = { this._pauseButton.setAttribute("tooltiptext", gUpdates.getAUSString("pauseButtonResume")); this._pauseButton.setAttribute("paused", "true"); - var p = u.selectedPatch.QueryInterface(Ci.nsIPropertyBag); + var p = u.selectedPatch.QueryInterface(Ci.nsIWritablePropertyBag); var status = p.getProperty("status"); if (status) { let pausedStatus = gUpdates.getAUSString("downloadPausedStatus", [status]); diff --git a/toolkit/mozapps/update/nsUpdateService.js b/toolkit/mozapps/update/nsUpdateService.js index 71ba83a0afc0..867149caa79d 100644 --- a/toolkit/mozapps/update/nsUpdateService.js +++ b/toolkit/mozapps/update/nsUpdateService.js @@ -16,7 +16,6 @@ XPCOMUtils.defineLazyGlobalGetters(this, ["DOMParser", "XMLHttpRequest"]); const UPDATESERVICE_CID = Components.ID("{B3C290A6-3943-4B89-8BBE-C01EB7B3B311}"); const PREF_APP_UPDATE_ALTWINDOWTYPE = "app.update.altwindowtype"; -const PREF_APP_UPDATE_BACKGROUNDINTERVAL = "app.update.download.backgroundInterval"; const PREF_APP_UPDATE_BACKGROUNDERRORS = "app.update.backgroundErrors"; const PREF_APP_UPDATE_BACKGROUNDMAXERRORS = "app.update.backgroundMaxErrors"; const PREF_APP_UPDATE_CANCELATIONS = "app.update.cancelations"; @@ -156,8 +155,6 @@ const NETWORK_ERROR_OFFLINE = 111; const HTTP_ERROR_OFFSET = 1000; const DOWNLOAD_CHUNK_SIZE = 300000; // bytes -const DOWNLOAD_BACKGROUND_INTERVAL = 600; // seconds -const DOWNLOAD_FOREGROUND_INTERVAL = 0; const UPDATE_WINDOW_NAME = "Update:Wizard"; @@ -1330,8 +1327,6 @@ function Update(update) { this.unsupported = false; this.channel = "default"; this.promptWaitTime = Services.prefs.getIntPref(PREF_APP_UPDATE_PROMPTWAITTIME, 43200); - this.backgroundInterval = Services.prefs.getIntPref(PREF_APP_UPDATE_BACKGROUNDINTERVAL, - DOWNLOAD_BACKGROUND_INTERVAL); // Null , assume this is a message container and do no // further initialization @@ -1386,10 +1381,6 @@ function Update(update) { if (!isNaN(attr.value)) { this.promptWaitTime = parseInt(attr.value); } - } else if (attr.name == "backgroundInterval") { - if (!isNaN(attr.value)) { - this.backgroundInterval = parseInt(attr.value); - } } else if (attr.name == "unsupported") { this.unsupported = attr.value == "true"; } else { @@ -1420,9 +1411,6 @@ function Update(update) { this.displayVersion = this.appVersion; } - // Don't allow the background download interval to be greater than 10 minutes. - this.backgroundInterval = Math.min(this.backgroundInterval, 600); - // The Update Name is either the string provided by the element, or // the string: " " var name = ""; @@ -1528,7 +1516,6 @@ Update.prototype = { } var update = updates.createElementNS(URI_UPDATE_NS, "update"); update.setAttribute("appVersion", this.appVersion); - update.setAttribute("backgroundInterval", this.backgroundInterval); update.setAttribute("buildID", this.buildID); update.setAttribute("channel", this.channel); update.setAttribute("displayVersion", this.displayVersion); @@ -3552,9 +3539,9 @@ Downloader.prototype = { let patchFile = getUpdatesDir().clone(); patchFile.append(FILE_UPDATE_MAR); - update.QueryInterface(Ci.nsIPropertyBag); - let interval = this.background ? update.getProperty("backgroundInterval") - : DOWNLOAD_FOREGROUND_INTERVAL; + + // The interval is 0 since there is no need to throttle downloads. + let interval = 0; LOG("Downloader:downloadUpdate - url: " + this._patch.URL + ", path: " + patchFile.path + ", interval: " + interval); @@ -3903,6 +3890,7 @@ Downloader.prototype = { // downloading) and if at any point this was a foreground download // notify the user about the error. If the update was a background // update there is no notification since the user won't be expecting it. + this._update.QueryInterface(Ci.nsIWritablePropertyBag); if (!Services.wm.getMostRecentWindow(UPDATE_WINDOW_NAME) && this._update.getProperty("foregroundDownload") == "true") { let prompter = Cc["@mozilla.org/updates/update-prompt;1"]. diff --git a/toolkit/mozapps/update/tests/chrome/utils.js b/toolkit/mozapps/update/tests/chrome/utils.js index 53443f733940..c3b7d8573466 100644 --- a/toolkit/mozapps/update/tests/chrome/utils.js +++ b/toolkit/mozapps/update/tests/chrome/utils.js @@ -816,7 +816,6 @@ function setupPrefs() { Services.prefs.setIntPref(PREF_APP_UPDATE_PROMPTWAITTIME, 0); Services.prefs.setBoolPref(PREF_APP_UPDATE_SILENT, false); Services.prefs.setBoolPref(PREF_APP_UPDATE_DOORHANGER, false); - Services.prefs.setIntPref(PREF_APP_UPDATE_DOWNLOADBACKGROUNDINTERVAL, 0); } /** @@ -915,10 +914,6 @@ function resetPrefs() { if (Services.prefs.prefHasUserValue(PREF_APP_UPDATE_DOORHANGER)) { Services.prefs.clearUserPref(PREF_APP_UPDATE_DOORHANGER); } - - if (Services.prefs.prefHasUserValue(PREF_APP_UPDATE_DOWNLOADBACKGROUNDINTERVAL)) { - Services.prefs.clearUserPref(PREF_APP_UPDATE_DOWNLOADBACKGROUNDINTERVAL); - } } function setupTimer(aTestTimeout) { diff --git a/toolkit/mozapps/update/tests/data/shared.js b/toolkit/mozapps/update/tests/data/shared.js index 4ec0fb943e70..e81696565a40 100644 --- a/toolkit/mozapps/update/tests/data/shared.js +++ b/toolkit/mozapps/update/tests/data/shared.js @@ -18,7 +18,6 @@ const PREF_APP_UPDATE_CHANNEL = "app.update.channel"; const PREF_APP_UPDATE_DOORHANGER = "app.update.doorhanger"; const PREF_APP_UPDATE_DOWNLOADPROMPTATTEMPTS = "app.update.download.attempts"; const PREF_APP_UPDATE_DOWNLOADPROMPTMAXATTEMPTS = "app.update.download.maxAttempts"; -const PREF_APP_UPDATE_DOWNLOADBACKGROUNDINTERVAL = "app.update.download.backgroundInterval"; const PREF_APP_UPDATE_DISABLEDFORTESTING = "app.update.disabledForTesting"; const PREF_APP_UPDATE_IDLETIME = "app.update.idletime"; const PREF_APP_UPDATE_LOG = "app.update.log"; diff --git a/toolkit/mozapps/update/tests/data/sharedUpdateXML.js b/toolkit/mozapps/update/tests/data/sharedUpdateXML.js index 2ae6dffd2baf..6d80fdd0b686 100644 --- a/toolkit/mozapps/update/tests/data/sharedUpdateXML.js +++ b/toolkit/mozapps/update/tests/data/sharedUpdateXML.js @@ -118,7 +118,6 @@ function getRemoteUpdatesXMLString(aUpdates) { function getRemoteUpdateString(aUpdateProps, aPatches) { const updateProps = { appVersion: DEFAULT_UPDATE_VERSION, - backgroundInterval: null, buildID: "20080811053724", custom1: null, custom2: null, @@ -215,7 +214,6 @@ function getLocalUpdateString(aUpdateProps, aPatches) { set appVersion(val) { this._appVersion = val; }, - backgroundInterval: null, buildID: "20080811053724", channel: gDefaultPrefBranch.getCharPref(PREF_APP_UPDATE_CHANNEL), custom1: null, @@ -310,8 +308,6 @@ function getUpdateString(aUpdateProps) { let detailsURL = "detailsURL=\"" + aUpdateProps.detailsURL + "\" "; let promptWaitTime = aUpdateProps.promptWaitTime ? "promptWaitTime=\"" + aUpdateProps.promptWaitTime + "\" " : ""; - let backgroundInterval = aUpdateProps.backgroundInterval ? - "backgroundInterval=\"" + aUpdateProps.backgroundInterval + "\" " : ""; let custom1 = aUpdateProps.custom1 ? aUpdateProps.custom1 + " " : ""; let custom2 = aUpdateProps.custom2 ? aUpdateProps.custom2 + " " : ""; let buildID = "buildID=\"" + aUpdateProps.buildID + "\""; @@ -322,7 +318,6 @@ function getUpdateString(aUpdateProps) { appVersion + detailsURL + promptWaitTime + - backgroundInterval + custom1 + custom2 + buildID; diff --git a/toolkit/mozapps/update/tests/unit_aus_update/remoteUpdateXML.js b/toolkit/mozapps/update/tests/unit_aus_update/remoteUpdateXML.js index c176d5f0f2c2..c9cd42e5f8ff 100644 --- a/toolkit/mozapps/update/tests/unit_aus_update/remoteUpdateXML.js +++ b/toolkit/mozapps/update/tests/unit_aus_update/remoteUpdateXML.js @@ -15,10 +15,6 @@ function run_test() { setUpdateURL(gURLData + gHTTPHandlerPath); setUpdateChannel("test_channel"); - // This test expects that the app.update.download.backgroundInterval - // preference doesn't already exist. - Services.prefs.deleteBranch("app.update.download.backgroundInterval"); - standardInit(); executeSoon(run_test_pt01); } @@ -67,7 +63,6 @@ function run_test_pt02() { buildID: "20080811053724", detailsURL: "http://details/", promptWaitTime: "345600", - backgroundInterval: "1200", custom1: "custom1_attr=\"custom1 value\"", custom2: "custom2_attr=\"custom2 value\""}; let updates = getRemoteUpdateString(updateProps, patches); @@ -92,7 +87,7 @@ function check_test_pt02() { Assert.equal(gUpdateCount, 1, "the update count" + MSG_SHOULD_EQUAL); - let bestUpdate = gAUS.selectUpdate(gUpdates, gUpdateCount).QueryInterface(Ci.nsIPropertyBag); + let bestUpdate = gAUS.selectUpdate(gUpdates, gUpdateCount).QueryInterface(Ci.nsIWritablePropertyBag); Assert.equal(bestUpdate.type, "minor", "the update type attribute" + MSG_SHOULD_EQUAL); Assert.equal(bestUpdate.name, "Minor Test", @@ -107,9 +102,6 @@ function check_test_pt02() { "the update detailsURL attribute" + MSG_SHOULD_EQUAL); Assert.equal(bestUpdate.promptWaitTime, "345600", "the update promptWaitTime attribute" + MSG_SHOULD_EQUAL); - // The default and maximum value for backgroundInterval is 600 - Assert.equal(bestUpdate.getProperty("backgroundInterval"), "600", - "the update backgroundInterval attribute" + MSG_SHOULD_EQUAL); Assert.equal(bestUpdate.serviceURL, gURLData + gHTTPHandlerPath + "?force=1", "the update serviceURL attribute" + MSG_SHOULD_EQUAL); Assert.equal(bestUpdate.channel, "test_channel", diff --git a/toolkit/mozapps/update/tests/unit_aus_update/updateManagerXML.js b/toolkit/mozapps/update/tests/unit_aus_update/updateManagerXML.js index 8d846885f26a..8d551c16d7e2 100644 --- a/toolkit/mozapps/update/tests/unit_aus_update/updateManagerXML.js +++ b/toolkit/mozapps/update/tests/unit_aus_update/updateManagerXML.js @@ -12,10 +12,6 @@ function run_test() { setUpdateChannel("test_channel"); - // This test expects that the app.update.download.backgroundInterval - // preference doesn't already exist. - Services.prefs.deleteBranch("app.update.download.backgroundInterval"); - let patchProps = {type: "partial", url: "http://partial/", size: "86", @@ -35,7 +31,6 @@ function run_test() { channel: "test_channel", foregroundDownload: "true", promptWaitTime: "345600", - backgroundInterval: "300", previousAppVersion: "3.0", custom1: "custom1_attr=\"custom1 value\"", custom2: "custom2_attr=\"custom2 value\""}; @@ -72,7 +67,7 @@ function run_test() { "the update manager updateCount attribute" + MSG_SHOULD_EQUAL); debugDump("checking the activeUpdate properties"); - let update = gUpdateManager.getUpdateAt(0).QueryInterface(Ci.nsIPropertyBag); + let update = gUpdateManager.getUpdateAt(0).QueryInterface(Ci.nsIWritablePropertyBag); Assert.equal(update.state, STATE_SUCCEEDED, "the update state attribute" + MSG_SHOULD_EQUAL); Assert.equal(update.type, "major", @@ -100,8 +95,6 @@ function run_test() { "the update channel attribute" + MSG_SHOULD_EQUAL); Assert.equal(update.promptWaitTime, "345600", "the update promptWaitTime attribute" + MSG_SHOULD_EQUAL); - Assert.equal(update.getProperty("backgroundInterval"), "300", - "the update backgroundInterval attribute" + MSG_SHOULD_EQUAL); Assert.equal(update.previousAppVersion, "3.0", "the update previousAppVersion attribute" + MSG_SHOULD_EQUAL); // Custom attributes @@ -124,7 +117,7 @@ function run_test() { "the update patch state attribute" + MSG_SHOULD_EQUAL); debugDump("checking the first update properties"); - update = gUpdateManager.getUpdateAt(1).QueryInterface(Ci.nsIPropertyBag); + update = gUpdateManager.getUpdateAt(1).QueryInterface(Ci.nsIWritablePropertyBag); Assert.equal(update.state, STATE_FAILED, "the update state attribute" + MSG_SHOULD_EQUAL); Assert.equal(update.name, "Existing", @@ -151,9 +144,6 @@ function run_test() { "the update channel attribute" + MSG_SHOULD_EQUAL); Assert.equal(update.promptWaitTime, "691200", "the update promptWaitTime attribute" + MSG_SHOULD_EQUAL); - // The default and maximum value for backgroundInterval is 600 - Assert.equal(update.getProperty("backgroundInterval"), "600", - "the update backgroundInterval attribute" + MSG_SHOULD_EQUAL); Assert.equal(update.previousAppVersion, null, "the update previousAppVersion attribute" + MSG_SHOULD_EQUAL); // Custom attributes diff --git a/toolkit/themes/linux/global/global.css b/toolkit/themes/linux/global/global.css index b2280fb8bbe4..0d96ca7fc98a 100644 --- a/toolkit/themes/linux/global/global.css +++ b/toolkit/themes/linux/global/global.css @@ -262,23 +262,3 @@ popupnotificationcontent { %include ../../shared/notification-popup.inc.css -/* :::::: autoscroll popup ::::: */ - -.autoscroller { - border: none; - padding: 0; - background-image: url("chrome://global/skin/icons/autoscroll.svg"); - background-size: contain; - background-color: transparent; - background-repeat: no-repeat; - -moz-appearance: none; -} - -.autoscroller[scrolldir="NS"] { - background-image: url("chrome://global/skin/icons/autoscroll-vertical.svg"); -} - -.autoscroller[scrolldir="EW"] { - background-image: url("chrome://global/skin/icons/autoscroll-horizontal.svg"); -} - diff --git a/toolkit/themes/osx/global/global.css b/toolkit/themes/osx/global/global.css index 5e621235617e..f7068ffae694 100644 --- a/toolkit/themes/osx/global/global.css +++ b/toolkit/themes/osx/global/global.css @@ -250,28 +250,6 @@ popupnotificationcontent { %include ../../shared/notification-popup.inc.css -/* :::::: autoscroll popup ::::: */ - -.autoscroller { - border: none; - padding: 0; - background-image: url("chrome://global/skin/icons/autoscroll.svg"); - background-size: contain; - background-color: transparent; - background-position: right top; - background-repeat: no-repeat; - -moz-appearance: none; - -moz-window-shadow: none; -} - -.autoscroller[scrolldir="NS"] { - background-image: url("chrome://global/skin/icons/autoscroll-vertical.svg"); -} - -.autoscroller[scrolldir="EW"] { - background-image: url("chrome://global/skin/icons/autoscroll-horizontal.svg"); -} - /* autorepeatbuttons in menus */ .popup-internal-box > .scrollbutton-up, diff --git a/toolkit/themes/shared/global.inc.css b/toolkit/themes/shared/global.inc.css index 03a4d7e33b42..6da91d1a4ea2 100644 --- a/toolkit/themes/shared/global.inc.css +++ b/toolkit/themes/shared/global.inc.css @@ -28,6 +28,27 @@ height: 20px; } +/* Autoscroll popup */ + +.autoscroller { + border: none; + padding: 0; + background-image: url("chrome://global/skin/icons/autoscroll.svg"); + background-size: contain; + background-color: transparent; + background-repeat: no-repeat; + -moz-appearance: none; + -moz-window-shadow: none; +} + +.autoscroller[scrolldir="NS"] { + background-image: url("chrome://global/skin/icons/autoscroll-vertical.svg"); +} + +.autoscroller[scrolldir="EW"] { + background-image: url("chrome://global/skin/icons/autoscroll-horizontal.svg"); +} + /* Panel footers */ .panel-footer { diff --git a/toolkit/themes/windows/global/global.css b/toolkit/themes/windows/global/global.css index 3beec23af037..bef57c6566f2 100644 --- a/toolkit/themes/windows/global/global.css +++ b/toolkit/themes/windows/global/global.css @@ -267,23 +267,3 @@ popupnotificationcontent { %include ../../shared/notification-popup.inc.css -/* :::::: autoscroll popup ::::: */ - -.autoscroller { - border: none; - padding: 0; - background-image: url("chrome://global/skin/icons/autoscroll.svg"); - background-size: contain; - background-color: transparent; - background-repeat: no-repeat; - -moz-appearance: none; -} - -.autoscroller[scrolldir="NS"] { - background-image: url("chrome://global/skin/icons/autoscroll-vertical.svg"); -} - -.autoscroller[scrolldir="EW"] { - background-image: url("chrome://global/skin/icons/autoscroll-horizontal.svg"); -} -