diff --git a/helpers/DATA/firefox/aboutabrowser@trisquel.info/LICENSE b/helpers/DATA/firefox/aboutabrowser@trisquel.info/LICENSE deleted file mode 100644 index 10d1ec67e287a4dbd0d3f25e93b4837b7e027f47..0000000000000000000000000000000000000000 --- a/helpers/DATA/firefox/aboutabrowser@trisquel.info/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -Extension built by Ruben Rodriguez using pieces of torbutton as a template - -Copyright (c) 2014, Ruben Rodriguez <ruben@gnu.org> -Copyright (c) 2013, The Tor Project, Inc. -Copyright (c) 2006 Scott Squires, Oleg Ivanov - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the "Software"), -to deal in the Software without restriction, including without limitation -the rights to use, copy, modify, merge, publish, distribute, sublicense, -and/or sell copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR -OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. - diff --git a/helpers/DATA/firefox/aboutabrowser@trisquel.info/chrome.manifest b/helpers/DATA/firefox/aboutabrowser@trisquel.info/chrome.manifest deleted file mode 100644 index bf104513ecf0a8fa082e9aaedffdb82639fea18d..0000000000000000000000000000000000000000 --- a/helpers/DATA/firefox/aboutabrowser@trisquel.info/chrome.manifest +++ /dev/null @@ -1,9 +0,0 @@ -content abrowserhome chrome/content/ - -locale abrowserhome af chrome/locale/es/ -locale abrowserhome ak chrome/locale/en/ - -component {a364a9c0-2960-11e4-8c21-0800200c9a66} components/aboutAbrowser.js -contract @mozilla.org/network/protocol/about;1?what=startpage {a364a9c0-2960-11e4-8c21-0800200c9a66} -contract @mozilla.org/network/protocol/about;1?what=home {a364a9c0-2960-11e4-8c21-0800200c9a66} - diff --git a/helpers/DATA/firefox/aboutabrowser@trisquel.info/chrome/content/aboutAbrowser/aboutAbrowser.xhtml b/helpers/DATA/firefox/aboutabrowser@trisquel.info/chrome/content/aboutAbrowser/aboutAbrowser.xhtml deleted file mode 100644 index 36d2ca0c384ca06a846b9e71a7499d2a4da46f4c..0000000000000000000000000000000000000000 --- a/helpers/DATA/firefox/aboutabrowser@trisquel.info/chrome/content/aboutAbrowser/aboutAbrowser.xhtml +++ /dev/null @@ -1,364 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<!-- This Source Code Form is subject to the terms of the Mozilla Public - - License, v. 2.0. If a copy of the MPL was not distributed with this - - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> - -<!DOCTYPE html [ - <!ENTITY % htmlDTD - PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" - "DTD/xhtml1-strict.dtd"> - %htmlDTD; - <!ENTITY % globalDTD SYSTEM "chrome://global/locale/global.dtd"> - %globalDTD; - <!ENTITY % aboutHomeDTD SYSTEM "chrome://browser/locale/aboutHome.dtd"> - %aboutHomeDTD; - <!ENTITY % browserDTD SYSTEM "chrome://browser/locale/browser.dtd" > - %browserDTD; -]> - -<html xmlns="http://www.w3.org/1999/xhtml"> - <head> - <title>&abouthome.pageTitle;</title> - - <link rel="icon" type="image/png" id="favicon" - href="chrome://branding/content/icon32.png"/> - <link rel="stylesheet" type="text/css" media="all" - href="chrome://browser/content/abouthome/aboutHome.css"/> - -<style> - -body{ - margin:0; - background-color:#f2f2f2; -} -#box{ - display: flex; - flex-flow: column; - justify-content: space-between; - align-items: center; - align-content: center; - height: 100vh; -} - -#topSection, #box3, #block-horizontal-margin{ - flex: 0 1 auto; - align-self: auto; -} -#topSection { - margin-top:10vh; - order:1; -} -#block-horizontal-margin{ - order:2; -} -#box3{ - order:3; - width:100vw; -} - - -label{ -position:relative; -bottom:2px; -left:2px; -} - -#addonsform form{ -position:relative; -left:10px; -} - -em { -color:#600 -} - -a{ -color:#004998 -} - -#addonsform{ -background-color:#fff; -font-size:14px; -padding:10px 25px 20px 25px; -border-radius: 5px; -box-shadow: 0 0px 2px hsla(0,0%,0%,.3) inset; -} - -.block-side-margin { - min-width: 16px; -} - - -ul li { -list-style:none; -float:left; -} - -ul li a{ -font-weight:bold; -text-shadow:0px 1px 0px #fff; -padding:5px 10px 5px 10px; -border-radius:3px; -margin:5px; -color:#888; -background:#dcdcdc; -box-shadow: 0px 2px 0 #ccc ; -} - -ul li a:hover{ -color:#666; -background:#ccc; -box-shadow: 0px 2px 0 #aaa; - -} - -.titlelink{ -font-weight:bold; -color: #678; -text-shadow: 0px 1px 0px white; -} - -#footer{ -min-height:50px; -display: -moz-box; --moz-box-align: center; --moz-box-pack: center; -width: 100%; -background-color: hsla(0,0%,0%,.03); -border-top: 1px solid hsla(0,0%,0%,.03); -box-shadow: 0 -1px 2px hsla(0,0%,0%,.1) inset, 0 -1px 0 hsla(0,0%,100%,.25); -} - -#searchLogoContainer{ -color:#888; -text-shadow: 0 1px 0 #fff; -} - -</style> - -<script type="text/javascript"> -<![CDATA[ - -Components.utils.import("resource://gre/modules/AddonManager.jsm"); -Components.utils.import("resource://gre/modules/Services.jsm"); - -function flip(sel){ - var id = sel.id; - var addonObj=-1; - AddonManager.getAddonByID(id, function(addon) { - addonObj=addon; - }); - var thread = Components.classes["@mozilla.org/thread-manager;1"].getService().currentThread; - while (addonObj == null || addonObj == -1) - thread.processNextEvent(true); - addonObj.userDisabled = addonObj.isActive; - if ( addonObj.operationsRequiringRestart != 0) - alert("This change will be applied when you restart Abrowser"); -} - -function languagesettings(sel){ - if (sel.checked) - Services.prefs.setCharPref(sel.id,sel.value); - else - Services.prefs.clearUserPref(sel.id); -} - -function fontsettings(sel){ - if (sel.checked) - Services.prefs.setIntPref(sel.id,sel.value); - else - Services.prefs.clearUserPref(sel.id); -} - -function jssettings(sel){ - if (sel.checked){ - Services.prefs.setBoolPref(sel.id, !sel.checked);} - else - Services.prefs.clearUserPref(sel.id); -} - -function prepare(){ - -srchsvc = Components.classes["@mozilla.org/browser/search-service;1"].getService(Components.interfaces.nsIBrowserSearchService); -currentEngine = srchsvc.defaultEngine.name; -document.getElementById("searchLogoContainer").innerHTML=currentEngine+":"; - -/*try { -Services.prefs.getCharPref("extensions.abrowserhome.intl.accept_languages"); -}catch(err){ -Services.prefs.setCharPref("intl.accept_languages","en-US, en"); -Services.prefs.setCharPref("extensions.abrowserhome.intl.accept_languages","en-US, en"); -} - -try { -Services.prefs.getIntPref("extensions.abrowserhome.browser.display.use_document_fonts"); -}catch(err){ -Services.prefs.setIntPref("browser.display.use_document_fonts",0); -Services.prefs.setIntPref("extensions.abrowserhome.browser.display.use_document_fonts",0); -}*/ - - var f = document.createElement("form"); - - var extensions=[ -["jid1-KtlZuoiikVfFew@jetpack","Block execution of non-free <a target=\"_blank\" href=\"http://www.gnu.org/software/librejs/\">JavaScript</a> <em>(experimental)</em>"], -["spyblock@gnu.org","Block privacy <a target=\"_blank\" href=\"https://easylist.adblockplus.org\">trackers</a>"], -["torproxy@trisquel","Use <a target=\"_blank\" href=\"https://www.torproject.org/about/overview.html.en#overview\">Tor</a> when in Private Mode"], -["https-everywhere@eff.org","Get redirected to <a target=\"_blank\" href=\"https://www.eff.org/https-everywhere/faq\">HTTPS</a> when possible"], -] - - for (var i=0; i<extensions.length; ++i) { - var ex=extensions[i][0]; - - var tmp = document.createElement("input"); - tmp.setAttribute('type',"checkbox"); - tmp.setAttribute('id', ex); - tmp.setAttribute('onclick','flip(this);'); - - var label = document.createElement("label"); - label.htmlFor = ex ; - label.id = ex+'label'; - label.appendChild(document.createTextNode('')); - - f.appendChild(tmp); - f.appendChild(label); - - document.getElementById("addonsform").appendChild(f); - } - - var tmp = document.createElement("input"); - tmp.setAttribute('type',"checkbox"); - tmp.setAttribute('id', "intl.accept_languages"); - tmp.setAttribute('value', "en-US, en"); - tmp.setAttribute('onclick','languagesettings(this);'); - value=Services.prefs.getCharPref("intl.accept_languages"); - tmp.checked=(value=="en-US, en"); - var label = document.createElement("label"); - label.htmlFor = "intl.accept_languages" ; - label.id = "intl.accept_languageslabel"; - label.appendChild(document.createTextNode("Request pages in English")); - f.appendChild(tmp); - f.appendChild(label); - f.appendChild(document.createElement("br")); - document.getElementById("addonsform").appendChild(f); - - var tmp = document.createElement("input"); - tmp.setAttribute('type',"checkbox"); - tmp.setAttribute('id', "browser.display.use_document_fonts"); - tmp.setAttribute('value', 0); - tmp.setAttribute('onclick','fontsettings(this);'); - value=Services.prefs.getIntPref("browser.display.use_document_fonts"); - tmp.checked=(value==0); - var label = document.createElement("label"); - label.htmlFor = "browser.display.use_document_fonts" ; - label.id = "browser.display.use_document_fontslabel"; - label.appendChild(document.createTextNode("Use system fonts")); - f.appendChild(tmp); - f.appendChild(label); - f.appendChild(document.createElement("br")); - document.getElementById("addonsform").appendChild(f); - - var tmp = document.createElement("input"); - tmp.setAttribute('type',"checkbox"); - tmp.setAttribute('id', "javascript.enabled"); - tmp.setAttribute('value', 0); - tmp.setAttribute('onclick','jssettings(this);'); - value=Services.prefs.getBoolPref("javascript.enabled"); - tmp.checked=(value==0); - var label = document.createElement("label"); - label.htmlFor = "javascript.enabled" ; - label.id = "javascript.enabledlabel"; - label.appendChild(document.createTextNode("Disable JavaScript")); - f.appendChild(tmp); - f.appendChild(label); - f.appendChild(document.createElement("br")); - document.getElementById("addonsform").appendChild(f); - - for (var i=0; i<extensions.length; ++i) { - var ex=extensions[i][0]; - var addonObj=-1; - - AddonManager.getAddonByID(ex, function(addon) { - addonObj=addon; - }); - - var thread = Components.classes["@mozilla.org/thread-manager;1"].getService().currentThread; - while ( addonObj == -1) - thread.processNextEvent(true); - if ( addonObj != null){ - document.getElementById(ex).checked = addonObj.isActive; - //document.getElementById(ex+'label').innerHTML = addonObj.name; - document.getElementById(ex+'label').innerHTML = extensions[i][1]+"<br/>"; - }else{ - document.getElementById(ex).style.display='none'; - document.getElementById(ex+'label').style.display='none'; - } - } -} - -function onSearchSubmit(){ - - srchsvc = Components.classes["@mozilla.org/browser/search-service;1"].getService(Components.interfaces.nsIBrowserSearchService); - currentEngine = srchsvc.defaultEngine; - var selectedText=document.getElementById("searchText").value; - submission = currentEngine.getSubmission(selectedText,null); - window.location = submission.uri.spec; - -} - -]]> -</script> - - </head> - - <body dir="&locale.dir;" onload="prepare();"> - - - <div id="box"> - <div id="box1"> - <div id="topSection"> - <img src="chrome://branding/content/about-logo.png"/> -<br/> -<br/> - <div id="searchContainer"> - <form name="searchForm" id="searchForm" onsubmit="onSearchSubmit(); return false"> - <div id="searchLogoContainer"></div> - <input type="text" name="q" value="" id="searchText" maxlength="256" - autofocus="autofocus" dir="auto"/> - <input id="searchSubmit" type="submit" value="Search"/> - </form> - </div> - - </div> - </div> - - - <div id="box2"> -<div id="block-horizontal-margin"> -<div class="block-side-margin"></div> -<div id="addonsform"> -<!--<h3>Enabled privacy features:</h3>--> -<p><a target="_blank" href="https://trisquel.info/browser">Abrowser</a> protects your <a target="_blank" href="http://www.gnu.org/philosophy/free-sw.html">freedom</a> and your privacy!<br/><small>For a browser with an even bigger focus on privacy, <a href="apt:icecat">install GNU IceCat</a></small></p> -</div> -<div class="block-side-margin"></div> -</div> -</div> - - - <div id="box3"> - <div id="footer"> - <p ><a class="titlelink" href="https://trisquel.info">Trisquel GNU/Linux</a></p> - <ul style="font-size:0.8em"> - <li><a href="https://trisquel.info/forum">Forum</a></li> - <li><a href="https://trisquel.info/wiki">Wiki</a></li> - <li><a href="http://store.trisquel.info/">Store</a></li> - <li><a href="https://trisquel.info/donate">Donate</a></li> - </ul> - </div> - </div> -</div> - - - </body> -</html> - diff --git a/helpers/DATA/firefox/aboutabrowser@trisquel.info/chrome/locale/en/aboutAbrowser.dtd b/helpers/DATA/firefox/aboutabrowser@trisquel.info/chrome/locale/en/aboutAbrowser.dtd deleted file mode 100644 index 73fd945fb65e76197d3b614ad29e5278d7591da2..0000000000000000000000000000000000000000 --- a/helpers/DATA/firefox/aboutabrowser@trisquel.info/chrome/locale/en/aboutAbrowser.dtd +++ /dev/null @@ -1 +0,0 @@ -<!ENTITY aboutAbrowser.title "About Abrowser"> diff --git a/helpers/DATA/firefox/aboutabrowser@trisquel.info/chrome/locale/es/aboutAbrowser.dtd b/helpers/DATA/firefox/aboutabrowser@trisquel.info/chrome/locale/es/aboutAbrowser.dtd deleted file mode 100644 index cd8f56df719cf57276b4cbf07a57ff16f19bc976..0000000000000000000000000000000000000000 --- a/helpers/DATA/firefox/aboutabrowser@trisquel.info/chrome/locale/es/aboutAbrowser.dtd +++ /dev/null @@ -1 +0,0 @@ -<!ENTITY aboutAbrowser.title "Acerca de Abrowser"> diff --git a/helpers/DATA/firefox/aboutabrowser@trisquel.info/components/aboutAbrowser.js b/helpers/DATA/firefox/aboutabrowser@trisquel.info/components/aboutAbrowser.js deleted file mode 100644 index f81ba7d55a9d7ebfe09c71464c65b36f2b9a1e56..0000000000000000000000000000000000000000 --- a/helpers/DATA/firefox/aboutabrowser@trisquel.info/components/aboutAbrowser.js +++ /dev/null @@ -1,72 +0,0 @@ -/* - -Copyright (c) 2014, Ruben Rodriguez <ruben@gnu.org> -Copyright (c) 2013, The Tor Project, Inc. -Copyright (c) 2006 Scott Squires, Oleg Ivanov - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the "Software"), -to deal in the Software without restriction, including without limitation -the rights to use, copy, modify, merge, publish, distribute, sublicense, -and/or sell copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR -OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. - -*/ - -// Module specific constants -const kMODULE_NAME = "about:abrowser"; -const kMODULE_CONTRACTID = "@mozilla.org/network/protocol/about;1?what=abrowser"; -const kMODULE_CID = Components.ID("a364a9c0-2960-11e4-8c21-0800200c9a66"); - -const kAboutAbrowserURL = "chrome://abrowserhome/content/aboutAbrowser/aboutAbrowser.xhtml"; - -const Cc = Components.classes; -const Ci = Components.interfaces; -const Cu = Components.utils; - -Cu.import("resource://gre/modules/XPCOMUtils.jsm"); - -function AboutAbrowser() -{ -} - - -AboutAbrowser.prototype = -{ - QueryInterface: XPCOMUtils.generateQI([Ci.nsIAboutModule]), - - // nsIClassInfo implementation: - classDescription: kMODULE_NAME, - classID: kMODULE_CID, - contractID: kMODULE_CONTRACTID, - - // nsIAboutModule implementation: - newChannel: function(aURI) - { - let ioSvc = Cc["@mozilla.org/network/io-service;1"] - .getService(Ci.nsIIOService); - let channel = ioSvc.newChannel(kAboutAbrowserURL, null, null); - channel.originalURI = aURI; - - return channel; - }, - - getURIFlags: function(aURI) - { - return Ci.nsIAboutModule.ALLOW_SCRIPT; - } -}; - - -const NSGetFactory = XPCOMUtils.generateNSGetFactory([AboutAbrowser]); diff --git a/helpers/DATA/firefox/aboutabrowser@trisquel.info/defaults/preferences/preferences.js b/helpers/DATA/firefox/aboutabrowser@trisquel.info/defaults/preferences/preferences.js deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/helpers/DATA/firefox/aboutabrowser@trisquel.info/install.rdf b/helpers/DATA/firefox/aboutabrowser@trisquel.info/install.rdf deleted file mode 100644 index 94105d8ad4ae277a562a09730f21143a4373440c..0000000000000000000000000000000000000000 --- a/helpers/DATA/firefox/aboutabrowser@trisquel.info/install.rdf +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0"?> -<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:em="http://www.mozilla.org/2004/em-rdf#"> - - <Description about="urn:mozilla:install-manifest"> - <em:name>AbrowserHome</em:name> - <em:creator>Ruben Rodriguez</em:creator> - <em:id>aboutabrowser@trisquel.info</em:id> - <em:version>1.1</em:version> - <em:updateURL>https://127.0.0.1/</em:updateURL> - <em:multiprocessCompatible>true</em:multiprocessCompatible> - <!-- <em:updateKey></em:updateKey> --> - <!-- firefox --> - <em:targetApplication> - <Description> - <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> - <em:minVersion>30.0</em:minVersion> - <em:maxVersion>10000.0</em:maxVersion> - </Description> - </em:targetApplication> - </Description> -</RDF> diff --git a/helpers/DATA/firefox/abouthome/aboutHome.css b/helpers/DATA/firefox/abouthome/aboutHome.css index 863523920686bc74d1055ead6f314c7eb3a41f17..c9dff0d80a273c5f45c6f067f30f7e7859052d95 100644 --- a/helpers/DATA/firefox/abouthome/aboutHome.css +++ b/helpers/DATA/firefox/abouthome/aboutHome.css @@ -1,8 +1,3 @@ -%if 0 -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -%endif html { font: message-box; @@ -40,8 +35,8 @@ a { } #brandLogo { - height: 420px; - width: 150px; + height: 150px; + width: 420px; margin: 22px auto 31px; background-image: url("chrome://branding/content/about-logo.png"); background-size: 420px 150px; @@ -49,90 +44,105 @@ a { background-repeat: no-repeat; } -#searchForm, +#searchIconAndTextContainer, #snippets { width: 470px; } -#searchForm { +#searchIconAndTextContainer { display: -moz-box; + height: 36px; + position: relative; } -#searchLogoContainer { - display: -moz-box; - -moz-box-align: center; - padding-top: 2px; - -moz-padding-end: 8px; -} - -#searchLogoContainer[hidden] { - display: none; -} - -#searchEngineLogo { - display: inline-block; - height: 28px; - width: 70px; - min-width: 70px; +#searchIcon { + border: 1px transparent; + padding: 0; + margin: 0; + width: 36px; + height: 36px; + background: url("chrome://browser/skin/search-indicator-magnifying-glass.svg") center center no-repeat; + position: absolute; } #searchText { + margin-left: 0; -moz-box-flex: 1; - padding: 6px 8px; + padding-top: 6px; + padding-bottom: 6px; + padding-inline-start: 34px; + padding-inline-end: 8px; background: hsla(0,0%,100%,.9) padding-box; border: 1px solid; + border-radius: 2px 0 0 2px; border-color: hsla(210,54%,20%,.15) hsla(210,54%,20%,.17) hsla(210,54%,20%,.2); box-shadow: 0 1px 0 hsla(210,65%,9%,.02) inset, 0 0 2px hsla(210,65%,9%,.1) inset, 0 1px 0 hsla(0,0%,100%,.2); - border-radius: 2.5px 0 0 2.5px; + color: inherit; + unicode-bidi: plaintext; +} + +#searchText:dir(rtl) { + border-radius: 0 2px 2px 0; } -#searchText:-moz-dir(rtl) { - border-radius: 0 2.5px 2.5px 0; +#searchText[aria-expanded="true"] { + border-radius: 2px 0 0 0; } +#searchText[aria-expanded="true"]:dir(rtl) { + border-radius: 0 2px 0 0; +} + +#searchText[keepfocus], #searchText:focus, #searchText[autofocus] { border-color: hsla(206,100%,60%,.6) hsla(206,76%,52%,.6) hsla(204,100%,40%,.6); } #searchSubmit { - -moz-margin-start: -1px; - background: linear-gradient(hsla(0,0%,100%,.8), hsla(0,0%,100%,.1)) padding-box; - padding: 0 9px; + margin-inline-start: -1px; + color: transparent; + background: url("chrome://browser/skin/search-arrow-go.svg") center center no-repeat, linear-gradient(hsla(0,0%,100%,.8), hsla(0,0%,100%,.1)) padding-box; + -moz-context-properties: fill; + fill: #616366; + padding: 0; border: 1px solid; - border-color: hsla(210,54%,20%,.15) hsla(210,54%,20%,.17) hsla(210,54%,20%,.2); - -moz-border-start: 1px solid transparent; - border-radius: 0 2.5px 2.5px 0; + border-color: hsla(210,54%,20%,.15) hsla(210,54%,20%,.17) hsla(210,54%,20%,.2) transparent; + border-radius: 0 2px 2px 0; box-shadow: 0 0 2px hsla(0,0%,100%,.5) inset, 0 1px 0 hsla(0,0%,100%,.2); cursor: pointer; transition-property: background-color, border-color, box-shadow; transition-duration: 150ms; + width: 50px; } -#searchSubmit:-moz-dir(rtl) { - border-radius: 2.5px 0 0 2.5px; +#searchSubmit:dir(rtl) { + transform: scaleX(-1); } #searchText:focus + #searchSubmit, +#searchText[keepfocus] + #searchSubmit, #searchText + #searchSubmit:hover, #searchText[autofocus] + #searchSubmit { border-color: #59b5fc #45a3e7 #3294d5; - color: white; } #searchText:focus + #searchSubmit, +#searchText[keepfocus] + #searchSubmit, #searchText[autofocus] + #searchSubmit { - background-image: linear-gradient(#4cb1ff, #1793e5); + background-image: url("chrome://browser/skin/search-arrow-go.svg"), linear-gradient(#4cb1ff, #1793e5); + fill: white; box-shadow: 0 1px 0 hsla(0,0%,100%,.2) inset, 0 0 0 1px hsla(0,0%,100%,.1) inset, 0 1px 0 hsla(210,54%,20%,.03); } #searchText + #searchSubmit:hover { - background-image: linear-gradient(#66bdff, #0d9eff); + background-image: url("chrome://browser/skin/search-arrow-go.svg"), linear-gradient(#66bdff, #0d9eff); + fill: white; box-shadow: 0 1px 0 hsla(0,0%,100%,.2) inset, 0 0 0 1px hsla(0,0%,100%,.1) inset, 0 1px 0 hsla(210,54%,20%,.03), @@ -150,19 +160,19 @@ a { #rightsSnippet { display: block; min-height: 38px; - background: 30px center no-repeat; + background: 0 center no-repeat; padding: 6px 0; - -moz-padding-start: 79px; + padding-inline-start: 49px; } #rightsSnippet[hidden] { display: none; } -#defaultSnippet1:-moz-dir(rtl), -#defaultSnippet2:-moz-dir(rtl), -#rightsSnippet:-moz-dir(rtl) { - background-position: right 30px center; +#defaultSnippet1:dir(rtl), +#defaultSnippet2:dir(rtl), +#rightsSnippet:dir(rtl) { + background-position: right 0 center; } #defaultSnippet1 { @@ -217,7 +227,7 @@ body[narrow] #launcher[session] { white-space: normal; background: transparent padding-box; border: 1px solid transparent; - border-radius: 2.5px; + border-radius: 2px; color: #525c66; font-size: 75%; cursor: pointer; @@ -299,10 +309,6 @@ body[narrow] #restorePreviousSession { content: url("chrome://browser/content/abouthome/history.png"); } -#apps::before { - content: url("chrome://browser/content/abouthome/apps.png"); -} - #addons::before { content: url("chrome://browser/content/abouthome/addons.png"); } @@ -322,10 +328,10 @@ body[narrow] #restorePreviousSession { display: inline-block; /* display on same line as text label */ vertical-align: middle; margin-bottom: 0; - -moz-margin-end: 8px; + margin-inline-end: 8px; } -#restorePreviousSession:-moz-dir(rtl)::before { +#restorePreviousSession:dir(rtl)::before { transform: scaleX(-1); } @@ -339,21 +345,21 @@ body[narrow] #restorePreviousSession::before { display: block; position: relative; /* pin wordmark to edge of document, not of viewport */ -moz-box-ordinal-group: 0; - opacity: .5; + opacity: .2; transition: opacity 150ms; } #aboutMozilla:hover { - opacity: 1; + opacity: .6; } #aboutMozilla::before { - content: url("chrome://browser/content/abouthome/mozilla.png"); + content: url("chrome://browser/content/abouthome/mozilla.svg"); display: block; position: absolute; top: 12px; - right: 12px; - width: 69px; + offset-inline-end: 12px; + width: 67px; height: 19px; } @@ -362,9 +368,6 @@ body[narrow] #restorePreviousSession::before { * rather than upscaling the original-size ones (bug 818940). */ @media not all and (max-resolution: 1dppx) { - #brandLogo { - background-image: url("chrome://branding/content/about-logo@2x.png"); - } #defaultSnippet1, #defaultSnippet2, @@ -380,12 +383,15 @@ body[narrow] #restorePreviousSession::before { background-image: url("chrome://browser/content/abouthome/snippet2@2x.png"); } - .launchButton::before, - #aboutMozilla::before { + .launchButton::before { transform: scale(.5); transform-origin: 0 0; } + .launchButton:dir(rtl)::before { + transform: scale(.5) translateX(32px); + } + #downloads::before { content: url("chrome://browser/content/abouthome/downloads@2x.png"); } @@ -398,10 +404,6 @@ body[narrow] #restorePreviousSession::before { content: url("chrome://browser/content/abouthome/history@2x.png"); } - #apps::before { - content: url("chrome://browser/content/abouthome/apps@2x.png"); - } - #addons::before { content: url("chrome://browser/content/abouthome/addons@2x.png"); } @@ -422,8 +424,8 @@ body[narrow] #restorePreviousSession::before { content: url("chrome://browser/content/abouthome/restore@2x.png"); } - #aboutMozilla::before { - content: url("chrome://browser/content/abouthome/mozilla@2x.png"); + #restorePreviousSession:dir(rtl)::before { + transform: scale(-0.5, 0.5) translateX(24px); + transform-origin: top center; } } - diff --git a/helpers/DATA/firefox/abouthome/aboutHome.js b/helpers/DATA/firefox/abouthome/aboutHome.js index d3b4aa955b9a6c4afaa9649ab0bbadc89d87e92c..58718edd20904340f77914d6be14db4968a0722b 100644 --- a/helpers/DATA/firefox/abouthome/aboutHome.js +++ b/helpers/DATA/firefox/abouthome/aboutHome.js @@ -2,158 +2,37 @@ * 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/. */ -const SEARCH_ENGINES = { - "Google": { - // This is the "2x" image designed for OS X retina resolution, Windows at 192dpi, etc.; - // it will be scaled down as necessary on lower-dpi displays. - image: "data:image/png;base64," + - "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" - } -}; +"use strict"; + +/* import-globals-from ../contentSearchUI.js */ // The process of adding a new default snippet involves: // * add a new entity to aboutHome.dtd // * add a <span/> for it in aboutHome.xhtml // * add an entry here in the proper ordering (based on spans) // The <a/> part of the snippet will be linked to the corresponding url. -const DEFAULT_SNIPPETS_URLS = [ "" ]; +const DEFAULT_SNIPPETS_URLS = []; -const SNIPPETS_UPDATE_INTERVAL_MS = 86400000; // 1 Day. +const SNIPPETS_UPDATE_INTERVAL_MS = 14400000; // 4 hours. // IndexedDB storage constants. const DATABASE_NAME = "abouthome"; const DATABASE_VERSION = 1; +const DATABASE_STORAGE = "persistent"; const SNIPPETS_OBJECTSTORE_NAME = "snippets"; +var searchText; // This global tracks if the page has been set up before, to prevent double inits -let gInitialized = false; -let gObserver = new MutationObserver(function (mutations) { +var gInitialized = false; +var gObserver = new MutationObserver(function(mutations) { for (let mutation of mutations) { - if (mutation.attributeName == "searchEngineName") { - setupSearchEngine(); + // The addition of the restore session button changes our width: + if (mutation.attributeName == "session") { + fitToWidth(); + } + if (mutation.attributeName == "snippetsVersion") { if (!gInitialized) { -// ensureSnippetsMapThen(loadSnippets); + ensureSnippetsMapThen(loadSnippets); gInitialized = true; } return; @@ -161,15 +40,17 @@ let gObserver = new MutationObserver(function (mutations) { } }); -window.addEventListener("pageshow", function () { +window.addEventListener("pageshow", function() { // Delay search engine setup, cause browser.js::BrowserOnAboutPageLoad runs // later and may use asynchronous getters. window.gObserver.observe(document.documentElement, { attributes: true }); + window.gObserver.observe(document.getElementById("launcher"), { attributes: true }); fitToWidth(); + setupSearch(); window.addEventListener("resize", fitToWidth); // Ask chrome to update snippets. - var event = new CustomEvent("AboutHomeLoad", {bubbles:true}); + var event = new CustomEvent("AboutHomeLoad", {bubbles: true}); document.dispatchEvent(event); }); @@ -178,11 +59,39 @@ window.addEventListener("pagehide", function() { window.removeEventListener("resize", fitToWidth); }); +window.addEventListener("keypress", ev => { + if (ev.defaultPrevented) { + return; + } + + // don't focus the search-box on keypress if something other than the + // body or document element has focus - don't want to steal input from other elements + // Make an exception for <a> and <button> elements (and input[type=button|submit]) + // which don't usefully take keypresses anyway. + // (except space, which is handled below) + if (document.activeElement && document.activeElement != document.body && + document.activeElement != document.documentElement && + !["a", "button"].includes(document.activeElement.localName) && + !document.activeElement.matches("input:-moz-any([type=button],[type=submit])")) { + return; + } + + let modifiers = ev.ctrlKey + ev.altKey + ev.metaKey; + // ignore Ctrl/Cmd/Alt, but not Shift + // also ignore Tab, Insert, PageUp, etc., and Space + if (modifiers != 0 || ev.charCode == 0 || ev.charCode == 32) + return; + + searchText.focus(); + // need to send the first keypress outside the search-box manually to it + searchText.value += ev.key; +}); + // This object has the same interface as Map and is used to store and retrieve // the snippets data. It is lazily initialized by ensureSnippetsMapThen(), so // be sure its callback returned before trying to use it. -let gSnippetsMap; -let gSnippetsMapCallbacks = []; +var gSnippetsMap; +var gSnippetsMapCallbacks = []; /** * Ensure the snippets map is properly initialized. @@ -192,9 +101,7 @@ let gSnippetsMapCallbacks = []; * @note Snippets should never directly manage the underlying storage, since * it may change inadvertently. */ -function ensureSnippetsMapThen(aCallback) -{ -return; +function ensureSnippetsMapThen(aCallback) { if (gSnippetsMap) { aCallback(gSnippetsMap); return; @@ -207,7 +114,7 @@ return; return; } - let invokeCallbacks = function () { + let invokeCallbacks = function() { if (!gSnippetsMap) { gSnippetsMap = Object.freeze(new Map()); } @@ -218,43 +125,52 @@ return; gSnippetsMapCallbacks.length = 0; } - let openRequest = indexedDB.open(DATABASE_NAME, DATABASE_VERSION); + let openRequest = indexedDB.open(DATABASE_NAME, {version: DATABASE_VERSION, + storage: DATABASE_STORAGE}); - openRequest.onerror = function (event) { + openRequest.onerror = function(event) { // Try to delete the old database so that we can start this process over // next time. indexedDB.deleteDatabase(DATABASE_NAME); invokeCallbacks(); }; - openRequest.onupgradeneeded = function (event) { + openRequest.onupgradeneeded = function(event) { let db = event.target.result; if (!db.objectStoreNames.contains(SNIPPETS_OBJECTSTORE_NAME)) { db.createObjectStore(SNIPPETS_OBJECTSTORE_NAME); } } - openRequest.onsuccess = function (event) { + openRequest.onsuccess = function(event) { let db = event.target.result; - db.onerror = function (event) { + db.onerror = function() { invokeCallbacks(); } - db.onversionchange = function (event) { - event.target.close(); + db.onversionchange = function(versionChangeEvent) { + versionChangeEvent.target.close(); invokeCallbacks(); } let cache = new Map(); - let cursorRequest = db.transaction(SNIPPETS_OBJECTSTORE_NAME) - .objectStore(SNIPPETS_OBJECTSTORE_NAME).openCursor(); - cursorRequest.onerror = function (event) { + let cursorRequest; + try { + cursorRequest = db.transaction(SNIPPETS_OBJECTSTORE_NAME) + .objectStore(SNIPPETS_OBJECTSTORE_NAME).openCursor(); + } catch (ex) { + console.error(ex); invokeCallbacks(); + return; } - cursorRequest.onsuccess = function(event) { - let cursor = event.target.result; + cursorRequest.onerror = function() { + invokeCallbacks(); + } + + cursorRequest.onsuccess = function(cursorRequestEvent) { + let cursor = cursorRequestEvent.target.result; // Populate the cache from the persistent storage. if (cursor) { @@ -265,24 +181,24 @@ return; // The cache has been filled up, create the snippets map. gSnippetsMap = Object.freeze({ - get: function (aKey) cache.get(aKey), - set: function (aKey, aValue) { + get: (aKey) => cache.get(aKey), + set(aKey, aValue) { db.transaction(SNIPPETS_OBJECTSTORE_NAME, "readwrite") .objectStore(SNIPPETS_OBJECTSTORE_NAME).put(aValue, aKey); return cache.set(aKey, aValue); }, - has: function (aKey) cache.has(aKey), - delete: function (aKey) { + has: (aKey) => cache.has(aKey), + delete(aKey) { db.transaction(SNIPPETS_OBJECTSTORE_NAME, "readwrite") .objectStore(SNIPPETS_OBJECTSTORE_NAME).delete(aKey); return cache.delete(aKey); }, - clear: function () { + clear() { db.transaction(SNIPPETS_OBJECTSTORE_NAME, "readwrite") .objectStore(SNIPPETS_OBJECTSTORE_NAME).clear(); return cache.clear(); }, - get size() cache.size + get size() { return cache.size; }, }); setTimeout(invokeCallbacks, 0); @@ -290,61 +206,39 @@ return; } } -function onSearchSubmit(aEvent) -{ - let searchTerms = document.getElementById("searchText").value; - let engineName = document.documentElement.getAttribute("searchEngineName"); - - if (engineName && searchTerms.length > 0) { - // Send an event that will perform a search and Firefox Health Report will - // record that a search from about:home has occurred. - let eventData = JSON.stringify({ - engineName: engineName, - searchTerms: searchTerms - }); - let event = new CustomEvent("AboutHomeSearchEvent", {detail: eventData}); - document.dispatchEvent(event); - } - - aEvent.preventDefault(); +function onSearchSubmit(aEvent) { + gContentSearchController.search(aEvent); } -function setupSearchEngine() -{ +var gContentSearchController; + +function setupSearch() { + // Set submit button label for when CSS background are disabled (e.g. + // high contrast mode). + document.getElementById("searchSubmit").value = + document.body.getAttribute("dir") == "ltr" ? "\u25B6" : "\u25C0"; + // The "autofocus" attribute doesn't focus the form element // immediately when the element is first drawn, so the // attribute is also used for styling when the page first loads. - let searchText = document.getElementById("searchText"); - searchText.addEventListener("blur", function searchText_onBlur() { - searchText.removeEventListener("blur", searchText_onBlur); + searchText = document.getElementById("searchText"); + searchText.addEventListener("blur", function() { searchText.removeAttribute("autofocus"); - }); - - let searchEngineName = document.documentElement.getAttribute("searchEngineName"); - let searchEngineInfo = SEARCH_ENGINES[searchEngineName]; - let logoElt = document.getElementById("searchEngineLogo"); - - // Add search engine logo. - if (searchEngineInfo && searchEngineInfo.image) { - logoElt.parentNode.hidden = false; - logoElt.src = searchEngineInfo.image; - logoElt.alt = searchEngineName; - searchText.placeholder = ""; - } - else { - logoElt.parentNode.hidden = true; - searchText.placeholder = searchEngineName; - } + }, {once: true}); + if (!gContentSearchController) { + gContentSearchController = + new ContentSearchUIController(searchText, searchText.parentNode, + "abouthome", "homepage"); + } } /** * Inform the test harness that we're done loading the page. */ -function loadSucceeded() -{ - var event = new CustomEvent("AboutHomeLoadSnippetsSucceeded", {bubbles:true}); +function loadCompleted() { + var event = new CustomEvent("AboutHomeLoadSnippetsCompleted", {bubbles: true}); document.dispatchEvent(event); } @@ -352,14 +246,13 @@ function loadSucceeded() * Update the local snippets from the remote storage, then show them through * showSnippets. */ -function loadSnippets() -{ -return; +function loadSnippets() { + return(); if (!gSnippetsMap) throw new Error("Snippets map has not properly been initialized"); // Allow tests to modify the snippets map before using it. - var event = new CustomEvent("AboutHomeLoadSnippets", {bubbles:true}); + var event = new CustomEvent("AboutHomeLoadSnippets", {bubbles: true}); document.dispatchEvent(event); // Check cached snippets version. @@ -378,32 +271,28 @@ return; if (updateURL && shouldUpdate) { // Try to update from network. let xhr = new XMLHttpRequest(); - try { - xhr.open("GET", updateURL, true); - } catch (ex) { - showSnippets(); - loadSucceeded(); - return; - } + xhr.timeout = 5000; // Even if fetching should fail we don't want to spam the server, thus // set the last update time regardless its results. Will retry tomorrow. gSnippetsMap.set("snippets-last-update", Date.now()); - xhr.onerror = function (event) { - showSnippets(); - }; - xhr.onload = function (event) - { + xhr.onloadend = function() { if (xhr.status == 200) { gSnippetsMap.set("snippets", xhr.responseText); gSnippetsMap.set("snippets-cached-version", currentVersion); } showSnippets(); - loadSucceeded(); + loadCompleted(); }; - xhr.send(null); + try { + xhr.open("GET", updateURL, true); + xhr.send(null); + } catch (ex) { + showSnippets(); + loadCompleted(); + } } else { showSnippets(); - loadSucceeded(); + loadCompleted(); } } @@ -413,10 +302,8 @@ return; * @note: snippets should never invoke showSnippets(), or they may cause * a "too much recursion" exception. */ -let _snippetsShown = false; -function showSnippets() -{ -return; +var _snippetsShown = false; +function showSnippets() { let snippetsElt = document.getElementById("snippets"); // Show about:rights notification, if needed. @@ -445,12 +332,13 @@ return; if (snippets) { // Injecting snippets can throw if they're invalid XML. try { + // eslint-disable-next-line no-unsanitized/property snippetsElt.innerHTML = snippets; // Scripts injected by innerHTML are inactive, so we have to relocate them // through DOM manipulation to activate their contents. Array.forEach(snippetsElt.getElementsByTagName("script"), function(elt) { let relocatedScript = document.createElement("script"); - relocatedScript.type = "text/javascript;version=1.8"; + relocatedScript.type = "text/javascript"; relocatedScript.text = elt.text; elt.parentNode.replaceChild(relocatedScript, elt); }); @@ -466,9 +354,7 @@ return; /** * Clear snippets element contents and show default snippets. */ -function showDefaultSnippets() -{ -return; +function showDefaultSnippets() { // Clear eventual contents... let snippetsElt = document.getElementById("snippets"); snippetsElt.innerHTML = ""; @@ -493,7 +379,7 @@ return; } function fitToWidth() { - if (window.scrollMaxX) { + if (document.documentElement.scrollWidth > window.innerWidth) { document.body.setAttribute("narrow", "true"); } else if (document.body.hasAttribute("narrow")) { document.body.removeAttribute("narrow"); diff --git a/helpers/DATA/firefox/abouthome/aboutHome.xhtml b/helpers/DATA/firefox/abouthome/aboutHome.xhtml index ac1c0e945b47ef2d48a8c49eb820fc1f27257679..8612da6d5b309540b013cc2955eccca50933037f 100644 --- a/helpers/DATA/firefox/abouthome/aboutHome.xhtml +++ b/helpers/DATA/firefox/abouthome/aboutHome.xhtml @@ -24,126 +24,41 @@ <link rel="icon" type="image/png" id="favicon" href="chrome://branding/content/icon32.png"/> <link rel="stylesheet" type="text/css" media="all" + href="chrome://browser/content/contentSearchUI.css"/> + <link rel="stylesheet" type="text/css" media="all" defer="defer" href="chrome://browser/content/abouthome/aboutHome.css"/> -<style> - -body{ - margin:0; - background-color:#f2f2f2; -} -#box{ - display: flex; - flex-flow: column; - justify-content: space-between; - align-items: center; - align-content: center; - height: 100vh; -} - -#topSection, #box3, #block-horizontal-margin{ - flex: 0 1 auto; - align-self: auto; -} -#topSection { - margin-top:10vh; - order:1; -} -#block-horizontal-margin{ - order:2; -} -#box3{ - order:3; - width:100vw; -} - - -label{ -position:relative; -bottom:2px; -left:2px; -} - -em { -color:#600 -} - -a{ -color:#004998 -} - -.block-side-margin { - min-width: 16px; - -moz-box-flex: 1; -} - -#block-horizontal-margin { - display: -moz-box; - -moz-box-flex: 1; -} - -ul li { -list-style:none; -background:#ddd; -border-radius:3px; -padding:3px 5px 3px 5px; -margin:5px; -box-shadow: 0px 2px 0 #ccc ; -float:left; -} - -ul li a{ -font-weight:bold; -color:#666; -text-shadow:0px 1px 0px #fff; -} - -.titlelink { -font-weight:bold; -color:#56728C; -text-shadow:0px 1px 0px #fff; -} - -#footer{ -min-height:100px; -} - -</style> - + <script type="text/javascript" + src="chrome://browser/content/abouthome/aboutHome.js"/> + <script type="text/javascript" + src="chrome://browser/content/contentSearchUI.js"/> </head> <body dir="&locale.dir;"> - - <div id="box"> - <div id="box1"> + <div class="spacer"/> <div id="topSection"> - <img src="chrome://branding/content/about-logo.png"/> - - <div id="searchContainer"> - <form name="searchForm" id="searchForm" action="https://duckduckgo.com/"> - <input type="hidden" name="t" value="trisquel"/> - <input type="text" name="q" value="" id="searchText" maxlength="256" - autofocus="autofocus"/> - <input id="searchSubmit" type="submit" value="Search"/> - </form> + <div id="brandLogo"></div> + + <div id="searchIconAndTextContainer"> + <div id="searchIcon"/> + <input type="text" name="q" value="" id="searchText" maxlength="256" + aria-label="&contentSearchInput.label;" autofocus="autofocus"/> + <input id="searchSubmit" type="button" onclick="onSearchSubmit(event)" + title="&contentSearchSubmit.tooltip;"/> </div> - </div> - </div> - - <div id="box2"> -<div id="footer" style=" display: -moz-box; -moz-box-align: center; -moz-box-pack: center; width: 100%; background-color: hsla(0,0%,0%,.03); border-top: 1px solid hsla(0,0%,0%,.03); box-shadow: 0 2px 5px hsla(0,0%,0%,.1) inset, 0 -1px 0 hsla(0,0%,100%,.25);"> -<p ><a class="titlelink" href="https://trisquel.info">Trisquel GNU/Linux</a>:</p> -<ul style="font-size:0.8em"> -<li><a href="https://trisquel.info/forum">Forum</a></li> -<li><a href="https://trisquel.info/wiki">Wiki</a></li> -<li><a href="http://store.trisquel.info/">Store</a></li> -<li><a href="https://trisquel.info/donate">Donate</a></li> -</ul> -</div> -</div> -</div> + <div class="spacer"/> + + <div id="launcher"> + <button class="launchButton" id="downloads">&abouthome.downloadsButton.label;</button> + <button class="launchButton" id="bookmarks">&abouthome.bookmarksButton.label;</button> + <button class="launchButton" id="history">&abouthome.historyButton.label;</button> + <button class="launchButton" id="addons">&abouthome.addonsButton.label;</button> + <button class="launchButton" id="sync">&abouthome.syncButton.label;</button> + <button class="launchButton" id="settings">&abouthome.preferencesButtonUnix.label;</button> + <div id="restorePreviousSessionSeparator"/> + <button class="launchButton" id="restorePreviousSession">&historyRestoreLastSession.label;</button> + </div> </body> </html> - diff --git a/helpers/DATA/firefox/abouthome/mozilla.svg b/helpers/DATA/firefox/abouthome/mozilla.svg new file mode 100644 index 0000000000000000000000000000000000000000..ecf470ee1038b0a562ed3b3c055cf46e3d1bdd0a --- /dev/null +++ b/helpers/DATA/firefox/abouthome/mozilla.svg @@ -0,0 +1,3 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 134 38"> +<path d="M54.2,21.8c0,3.2-1.6,5.2-4.1,5.2s-3.9-2.2-3.9-5.1,1.5-4.9,3.9-4.9S54.2,18.4,54.2,21.8Zm61.1,3.5a1.7,1.7,0,0,0,2,1.9c1.7,0,3.5-1.2,3.6-4l-2.4-.2C116.8,23,115.3,23.4,115.3,25.3ZM134,0V38H0V0ZM39.2,26.6H37V19a5.4,5.4,0,0,0-5.7-5.8,5.6,5.6,0,0,0-5.4,3.6,5.4,5.4,0,0,0-5.4-3.6,5.5,5.5,0,0,0-5.1,2.8V13.6h-7v3.6h2.2v9.4H8.4v3.6H18.6V26.6H15.4V20.8c0-2.3.9-3.9,3.2-3.9s2.8,1.1,2.8,4v9.4h7V26.6H26.2V20.8c0-2.3.9-3.9,3.2-3.9s2.8,1.1,2.8,4v9.4h7Zm19.9-4.7c0-4.6-2.9-8.7-8.9-8.7s-8.9,4-8.9,8.9,3.5,8.4,8.7,8.4S59.1,27.2,59.1,21.9Zm18.7,2.5L74,24l-.8,2.6H67.9l9.2-10.5-.4-2.5H62.1l-.6,5.8,3.4.4.7-2.6h5.2L61.8,27.7l.5,2.5H76.8Zm8.5-.1h-5v6h5Zm0-10.7h-5v6h5ZM94,30.2l7.2-25.4H96.6L89.4,30.2Zm9.7,0,7.2-25.4h-4.7L99,30.2Zm23.8-.4V27.3h-.7c-.8,0-1.1-.3-1.1-1.3V18.9c0-3.8-3-5.6-6.6-5.6a16,16,0,0,0-7.1,1.5l-.6,3.8,3.8.4.5-1.9a5.2,5.2,0,0,1,2.5-.5c2.7,0,2.7,2,2.7,3.7v.6h-2.7c-3.8,0-7.7,1-7.7,5.1s2.7,4.8,5.1,4.8a6,6,0,0,0,5.3-3.3,3.4,3.4,0,0,0,3.6,3.3A6.4,6.4,0,0,0,127.5,29.8Z"/> +</svg> diff --git a/helpers/DATA/firefox/branding/content/about-logo.png b/helpers/DATA/firefox/branding/content/about-logo.png index de2af008a99e2b8f063a30a1a4a852efb7e1d6f4..b518914bba2a5d5bfa2d8fa9a08d107a890142be 100644 Binary files a/helpers/DATA/firefox/branding/content/about-logo.png and b/helpers/DATA/firefox/branding/content/about-logo.png differ diff --git a/helpers/DATA/firefox/branding/mozicon128.png b/helpers/DATA/firefox/branding/mozicon128.png index 09547088a1a92670f45c4ae7b145a9ca2ebc4051..9c462371218ffbfbf6e5fc52f0e6713b6102844f 100644 Binary files a/helpers/DATA/firefox/branding/mozicon128.png and b/helpers/DATA/firefox/branding/mozicon128.png differ diff --git a/helpers/DATA/firefox/settings.js b/helpers/DATA/firefox/settings.js index 43475ff9c5b6267d1e93f90e49be41b38a8578ca..409b9ff4d110615859d8d317794e22058e2a3719 100644 --- a/helpers/DATA/firefox/settings.js +++ b/helpers/DATA/firefox/settings.js @@ -123,7 +123,7 @@ pref("browser.newtabpage.directory.source", ""); pref("browser.newtabpage.directory.ping", ""); pref("browser.newtabpage.introShown", true); // Disable home snippets -pref("browser.aboutHomeSnippets.updateUrl", "data:text/html"); +pref("browser.aboutHomeSnippets.updateUrl", ""); // Services pref("gecko.handlerService.schemes.mailto.0.name", ""); diff --git a/helpers/make-firefox b/helpers/make-firefox index 119834bceac9d413f47d070b6b386ea0f81f1dec..56c3ae8baf906ead45fc90a351ad28690781791c 100644 --- a/helpers/make-firefox +++ b/helpers/make-firefox @@ -176,9 +176,11 @@ cp $DATA/bookmarks.html.in browser/locales/generic/profile/bookmarks.html.in cp $DATA/searchplugins/*.xml debian/searchplugins/en-US/ cp $DATA/searchplugins/searchplugins.conf debian/config/ -# install aboutabrowser extension -cp $DATA/aboutabrowser@trisquel.info -r debian -echo "debian/aboutabrowser@trisquel.info @MOZ_ADDONDIR@/extensions/" >> debian/abrowser.install.in +# install extensions +for extension in $(ls -1 $DATA/extensions/); do + cp $DATA/extensions/$extension -r debian + echo "debian/$extension @MOZ_ADDONDIR@/extensions/" >> debian/abrowser.install.in +done # Disable newtab "What is this" popup and config button cat << EOF >> browser/themes/linux/newtab/newTab.css