diff --git a/helpers/DATA/firefox/abouthome/aboutHome.css b/helpers/DATA/firefox/abouthome/aboutHome.css new file mode 100644 index 0000000..8635239 --- /dev/null +++ b/helpers/DATA/firefox/abouthome/aboutHome.css @@ -0,0 +1,429 @@ +%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; + font-size: 100%; + background-color: hsl(0,0%,95%); + color: #000; + height: 100%; +} + +body { + margin: 0; + display: -moz-box; + -moz-box-orient: vertical; + width: 100%; + height: 100%; +} + +input, +button { + font-size: inherit; + font-family: inherit; +} + +a { + color: -moz-nativehyperlinktext; + text-decoration: none; +} + +.spacer { + -moz-box-flex: 1; +} + +#topSection { + text-align: center; +} + +#brandLogo { + height: 420px; + width: 150px; + margin: 22px auto 31px; + background-image: url("chrome://branding/content/about-logo.png"); + background-size: 420px 150px; + background-position: center center; + background-repeat: no-repeat; +} + +#searchForm, +#snippets { + width: 470px; +} + +#searchForm { + display: -moz-box; +} + +#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; +} + +#searchText { + -moz-box-flex: 1; + padding: 6px 8px; + background: hsla(0,0%,100%,.9) padding-box; + border: 1px solid; + 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; +} + +#searchText:-moz-dir(rtl) { + border-radius: 0 2.5px 2.5px 0; +} + +#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; + 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; + 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; +} + +#searchSubmit:-moz-dir(rtl) { + border-radius: 2.5px 0 0 2.5px; +} + +#searchText:focus + #searchSubmit, +#searchText + #searchSubmit:hover, +#searchText[autofocus] + #searchSubmit { + border-color: #59b5fc #45a3e7 #3294d5; + color: white; +} + +#searchText:focus + #searchSubmit, +#searchText[autofocus] + #searchSubmit { + background-image: linear-gradient(#4cb1ff, #1793e5); + 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); + 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), + 0 0 4px hsla(206,100%,20%,.2); +} + +#searchText + #searchSubmit:hover:active { + box-shadow: 0 1px 1px hsla(211,79%,6%,.1) inset, + 0 0 1px hsla(211,79%,6%,.2) inset; + transition-duration: 0ms; +} + +#defaultSnippet1, +#defaultSnippet2, +#rightsSnippet { + display: block; + min-height: 38px; + background: 30px center no-repeat; + padding: 6px 0; + -moz-padding-start: 79px; +} + +#rightsSnippet[hidden] { + display: none; +} + +#defaultSnippet1:-moz-dir(rtl), +#defaultSnippet2:-moz-dir(rtl), +#rightsSnippet:-moz-dir(rtl) { + background-position: right 30px center; +} + +#defaultSnippet1 { + background-image: url("chrome://browser/content/abouthome/snippet1.png"); +} + +#defaultSnippet2 { + background-image: url("chrome://browser/content/abouthome/snippet2.png"); +} + +#snippets { + display: inline-block; + text-align: start; + margin: 12px 0; + color: #3c3c3c; + font-size: 75%; + /* 12px is the computed font size, 15px the computed line height of the snippets + with Segoe UI on a default Windows 7 setup. The 15/12 multiplier approximately + converts em from units of font-size to units of line-height. The goal is to + preset the height of a three-line snippet to avoid visual moving/flickering as + the snippets load. */ + min-height: calc(15/12 * 3em); +} + +#launcher { + 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%,.02) inset, + 0 -1px 0 hsla(0,0%,100%,.25); +} + +#launcher:not([session]), +body[narrow] #launcher[session] { + display: block; /* display separator and restore button on separate lines */ + text-align: center; + white-space: nowrap; /* prevent navigational buttons from wrapping */ +} + +.launchButton { + display: -moz-box; + -moz-box-orient: vertical; + margin: 16px 1px; + padding: 14px 6px; + min-width: 88px; + max-width: 176px; + max-height: 85px; + vertical-align: top; + white-space: normal; + background: transparent padding-box; + border: 1px solid transparent; + border-radius: 2.5px; + color: #525c66; + font-size: 75%; + cursor: pointer; + transition-property: background-color, border-color, box-shadow; + transition-duration: 150ms; +} + +body[narrow] #launcher[session] > .launchButton { + margin: 4px 1px; +} + +.launchButton:hover { + background-color: hsla(211,79%,6%,.03); + border-color: hsla(210,54%,20%,.15) hsla(210,54%,20%,.17) hsla(210,54%,20%,.2); +} + +.launchButton:hover:active { + background-image: linear-gradient(hsla(211,79%,6%,.02), hsla(211,79%,6%,.05)); + border-color: hsla(210,54%,20%,.2) hsla(210,54%,20%,.23) hsla(210,54%,20%,.25); + box-shadow: 0 1px 1px hsla(211,79%,6%,.05) inset, + 0 0 1px hsla(211,79%,6%,.1) inset; + transition-duration: 0ms; +} + +.launchButton[hidden], +#launcher:not([session]) > #restorePreviousSessionSeparator, +#launcher:not([session]) > #restorePreviousSession { + display: none; +} + +#restorePreviousSessionSeparator { + width: 3px; + height: 116px; + margin: 0 10px; + background-image: linear-gradient(hsla(0,0%,100%,0), hsla(0,0%,100%,.35), hsla(0,0%,100%,0)), + linear-gradient(hsla(211,79%,6%,0), hsla(211,79%,6%,.2), hsla(211,79%,6%,0)), + linear-gradient(hsla(0,0%,100%,0), hsla(0,0%,100%,.35), hsla(0,0%,100%,0)); + background-position: left top, center, right bottom; + background-size: 1px auto; + background-repeat: no-repeat; +} + +body[narrow] #restorePreviousSessionSeparator { + margin: 0 auto; + width: 512px; + height: 3px; + background-image: linear-gradient(to right, hsla(0,0%,100%,0), hsla(0,0%,100%,.35), hsla(0,0%,100%,0)), + linear-gradient(to right, hsla(211,79%,6%,0), hsla(211,79%,6%,.2), hsla(211,79%,6%,0)), + linear-gradient(to right, hsla(0,0%,100%,0), hsla(0,0%,100%,.35), hsla(0,0%,100%,0)); + background-size: auto 1px; +} + +#restorePreviousSession { + max-width: none; + font-size: 90%; +} + +body[narrow] #restorePreviousSession { + font-size: 80%; +} + +.launchButton::before { + display: block; + width: 32px; + height: 32px; + margin: 0 auto 6px; + line-height: 0; /* remove extra vertical space due to non-zero font-size */ +} + +#downloads::before { + content: url("chrome://browser/content/abouthome/downloads.png"); +} + +#bookmarks::before { + content: url("chrome://browser/content/abouthome/bookmarks.png"); +} + +#history::before { + 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"); +} + +#sync::before { + content: url("chrome://browser/content/abouthome/sync.png"); +} + +#settings::before { + content: url("chrome://browser/content/abouthome/settings.png"); +} + +#restorePreviousSession::before { + content: url("chrome://browser/content/abouthome/restore-large.png"); + height: 48px; + width: 48px; + display: inline-block; /* display on same line as text label */ + vertical-align: middle; + margin-bottom: 0; + -moz-margin-end: 8px; +} + +#restorePreviousSession:-moz-dir(rtl)::before { + transform: scaleX(-1); +} + +body[narrow] #restorePreviousSession::before { + content: url("chrome://browser/content/abouthome/restore.png"); + height: 32px; + width: 32px; +} + +#aboutMozilla { + display: block; + position: relative; /* pin wordmark to edge of document, not of viewport */ + -moz-box-ordinal-group: 0; + opacity: .5; + transition: opacity 150ms; +} + +#aboutMozilla:hover { + opacity: 1; +} + +#aboutMozilla::before { + content: url("chrome://browser/content/abouthome/mozilla.png"); + display: block; + position: absolute; + top: 12px; + right: 12px; + width: 69px; + height: 19px; +} + +/* [HiDPI] + * At resolutions above 1dppx, prefer downscaling the 2x Retina graphics + * 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, + #rightsSnippet { + background-size: 40px; + } + + #defaultSnippet1 { + background-image: url("chrome://browser/content/abouthome/snippet1@2x.png"); + } + + #defaultSnippet2 { + background-image: url("chrome://browser/content/abouthome/snippet2@2x.png"); + } + + .launchButton::before, + #aboutMozilla::before { + transform: scale(.5); + transform-origin: 0 0; + } + + #downloads::before { + content: url("chrome://browser/content/abouthome/downloads@2x.png"); + } + + #bookmarks::before { + content: url("chrome://browser/content/abouthome/bookmarks@2x.png"); + } + + #history::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"); + } + + #sync::before { + content: url("chrome://browser/content/abouthome/sync@2x.png"); + } + + #settings::before { + content: url("chrome://browser/content/abouthome/settings@2x.png"); + } + + #restorePreviousSession::before { + content: url("chrome://browser/content/abouthome/restore-large@2x.png"); + } + + body[narrow] #restorePreviousSession::before { + content: url("chrome://browser/content/abouthome/restore@2x.png"); + } + + #aboutMozilla::before { + content: url("chrome://browser/content/abouthome/mozilla@2x.png"); + } +} + diff --git a/helpers/DATA/firefox/abouthome/aboutHome.js b/helpers/DATA/firefox/abouthome/aboutHome.js new file mode 100644 index 0000000..d3b4aa9 --- /dev/null +++ b/helpers/DATA/firefox/abouthome/aboutHome.js @@ -0,0 +1,502 @@ +/* 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/. */ + +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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" + } +}; + +// The process of adding a new default snippet involves: +// * add a new entity to aboutHome.dtd +// * add a for it in aboutHome.xhtml +// * add an entry here in the proper ordering (based on spans) +// The part of the snippet will be linked to the corresponding url. +const DEFAULT_SNIPPETS_URLS = [ "" ]; + +const SNIPPETS_UPDATE_INTERVAL_MS = 86400000; // 1 Day. + +// IndexedDB storage constants. +const DATABASE_NAME = "abouthome"; +const DATABASE_VERSION = 1; +const SNIPPETS_OBJECTSTORE_NAME = "snippets"; + +// This global tracks if the page has been set up before, to prevent double inits +let gInitialized = false; +let gObserver = new MutationObserver(function (mutations) { + for (let mutation of mutations) { + if (mutation.attributeName == "searchEngineName") { + setupSearchEngine(); + if (!gInitialized) { +// ensureSnippetsMapThen(loadSnippets); + gInitialized = true; + } + return; + } + } +}); + +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 }); + fitToWidth(); + window.addEventListener("resize", fitToWidth); + + // Ask chrome to update snippets. + var event = new CustomEvent("AboutHomeLoad", {bubbles:true}); + document.dispatchEvent(event); +}); + +window.addEventListener("pagehide", function() { + window.gObserver.disconnect(); + window.removeEventListener("resize", fitToWidth); +}); + +// 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 = []; + +/** + * Ensure the snippets map is properly initialized. + * + * @param aCallback + * Invoked once the map has been initialized, gets the map as argument. + * @note Snippets should never directly manage the underlying storage, since + * it may change inadvertently. + */ +function ensureSnippetsMapThen(aCallback) +{ +return; + if (gSnippetsMap) { + aCallback(gSnippetsMap); + return; + } + + // Handle multiple requests during the async initialization. + gSnippetsMapCallbacks.push(aCallback); + if (gSnippetsMapCallbacks.length > 1) { + // We are already updating, the callbacks will be invoked when done. + return; + } + + let invokeCallbacks = function () { + if (!gSnippetsMap) { + gSnippetsMap = Object.freeze(new Map()); + } + + for (let callback of gSnippetsMapCallbacks) { + callback(gSnippetsMap); + } + gSnippetsMapCallbacks.length = 0; + } + + let openRequest = indexedDB.open(DATABASE_NAME, DATABASE_VERSION); + + 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) { + let db = event.target.result; + if (!db.objectStoreNames.contains(SNIPPETS_OBJECTSTORE_NAME)) { + db.createObjectStore(SNIPPETS_OBJECTSTORE_NAME); + } + } + + openRequest.onsuccess = function (event) { + let db = event.target.result; + + db.onerror = function (event) { + invokeCallbacks(); + } + + db.onversionchange = function (event) { + event.target.close(); + invokeCallbacks(); + } + + let cache = new Map(); + let cursorRequest = db.transaction(SNIPPETS_OBJECTSTORE_NAME) + .objectStore(SNIPPETS_OBJECTSTORE_NAME).openCursor(); + cursorRequest.onerror = function (event) { + invokeCallbacks(); + } + + cursorRequest.onsuccess = function(event) { + let cursor = event.target.result; + + // Populate the cache from the persistent storage. + if (cursor) { + cache.set(cursor.key, cursor.value); + cursor.continue(); + return; + } + + // The cache has been filled up, create the snippets map. + gSnippetsMap = Object.freeze({ + get: function (aKey) cache.get(aKey), + set: function (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) { + db.transaction(SNIPPETS_OBJECTSTORE_NAME, "readwrite") + .objectStore(SNIPPETS_OBJECTSTORE_NAME).delete(aKey); + return cache.delete(aKey); + }, + clear: function () { + db.transaction(SNIPPETS_OBJECTSTORE_NAME, "readwrite") + .objectStore(SNIPPETS_OBJECTSTORE_NAME).clear(); + return cache.clear(); + }, + get size() cache.size + }); + + setTimeout(invokeCallbacks, 0); + } + } +} + +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 setupSearchEngine() +{ + // 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.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; + } + +} + +/** + * Inform the test harness that we're done loading the page. + */ +function loadSucceeded() +{ + var event = new CustomEvent("AboutHomeLoadSnippetsSucceeded", {bubbles:true}); + document.dispatchEvent(event); +} + +/** + * Update the local snippets from the remote storage, then show them through + * showSnippets. + */ +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}); + document.dispatchEvent(event); + + // Check cached snippets version. + let cachedVersion = gSnippetsMap.get("snippets-cached-version") || 0; + let currentVersion = document.documentElement.getAttribute("snippetsVersion"); + if (cachedVersion < currentVersion) { + // The cached snippets are old and unsupported, restart from scratch. + gSnippetsMap.clear(); + } + + // Check last snippets update. + let lastUpdate = gSnippetsMap.get("snippets-last-update"); + let updateURL = document.documentElement.getAttribute("snippetsURL"); + let shouldUpdate = !lastUpdate || + Date.now() - lastUpdate > SNIPPETS_UPDATE_INTERVAL_MS; + if (updateURL && shouldUpdate) { + // Try to update from network. + let xhr = new XMLHttpRequest(); + try { + xhr.open("GET", updateURL, true); + } catch (ex) { + showSnippets(); + loadSucceeded(); + return; + } + // 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) + { + if (xhr.status == 200) { + gSnippetsMap.set("snippets", xhr.responseText); + gSnippetsMap.set("snippets-cached-version", currentVersion); + } + showSnippets(); + loadSucceeded(); + }; + xhr.send(null); + } else { + showSnippets(); + loadSucceeded(); + } +} + +/** + * Shows locally cached remote snippets, or default ones when not available. + * + * @note: snippets should never invoke showSnippets(), or they may cause + * a "too much recursion" exception. + */ +let _snippetsShown = false; +function showSnippets() +{ +return; + let snippetsElt = document.getElementById("snippets"); + + // Show about:rights notification, if needed. + let showRights = document.documentElement.getAttribute("showKnowYourRights"); + if (showRights) { + let rightsElt = document.getElementById("rightsSnippet"); + let anchor = rightsElt.getElementsByTagName("a")[0]; + anchor.href = "about:rights"; + snippetsElt.appendChild(rightsElt); + rightsElt.removeAttribute("hidden"); + return; + } + + if (!gSnippetsMap) + throw new Error("Snippets map has not properly been initialized"); + if (_snippetsShown) { + // There's something wrong with the remote snippets, just in case fall back + // to the default snippets. + showDefaultSnippets(); + throw new Error("showSnippets should never be invoked multiple times"); + } + _snippetsShown = true; + + let snippets = gSnippetsMap.get("snippets"); + // If there are remotely fetched snippets, try to to show them. + if (snippets) { + // Injecting snippets can throw if they're invalid XML. + try { + 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.text = elt.text; + elt.parentNode.replaceChild(relocatedScript, elt); + }); + return; + } catch (ex) { + // Bad content, continue to show default snippets. + } + } + + showDefaultSnippets(); +} + +/** + * Clear snippets element contents and show default snippets. + */ +function showDefaultSnippets() +{ +return; + // Clear eventual contents... + let snippetsElt = document.getElementById("snippets"); + snippetsElt.innerHTML = ""; + + // ...then show default snippets. + let defaultSnippetsElt = document.getElementById("defaultSnippets"); + let entries = defaultSnippetsElt.querySelectorAll("span"); + // Choose a random snippet. Assume there is always at least one. + let randIndex = Math.floor(Math.random() * entries.length); + let entry = entries[randIndex]; + // Inject url in the eventual link. + if (DEFAULT_SNIPPETS_URLS[randIndex]) { + let links = entry.getElementsByTagName("a"); + // Default snippets can have only one link, otherwise something is messed + // up in the translation. + if (links.length == 1) { + links[0].href = DEFAULT_SNIPPETS_URLS[randIndex]; + } + } + // Move the default snippet to the snippets element. + snippetsElt.appendChild(entry); +} + +function fitToWidth() { + if (window.scrollMaxX) { + document.body.setAttribute("narrow", "true"); + } else if (document.body.hasAttribute("narrow")) { + document.body.removeAttribute("narrow"); + fitToWidth(); + } +} diff --git a/helpers/DATA/firefox/abouthome/aboutHome.xhtml b/helpers/DATA/firefox/abouthome/aboutHome.xhtml new file mode 100644 index 0000000..3115a48 --- /dev/null +++ b/helpers/DATA/firefox/abouthome/aboutHome.xhtml @@ -0,0 +1,80 @@ + + + + + + %htmlDTD; + + %globalDTD; + + %aboutHomeDTD; + + %browserDTD; +]> + + + + &abouthome.pageTitle; + + + + + + + + + +
+
+ + +
+
+ + +
+
+ +
+ +
+ +
+

Trisquel GNU/Linux:

+ +
+ + + diff --git a/helpers/DATA/firefox/abouthome/addons.png b/helpers/DATA/firefox/abouthome/addons.png new file mode 100644 index 0000000..41519ce Binary files /dev/null and b/helpers/DATA/firefox/abouthome/addons.png differ diff --git a/helpers/DATA/firefox/abouthome/addons@2x.png b/helpers/DATA/firefox/abouthome/addons@2x.png new file mode 100644 index 0000000..d4d04ee Binary files /dev/null and b/helpers/DATA/firefox/abouthome/addons@2x.png differ diff --git a/helpers/DATA/firefox/abouthome/apps.png b/helpers/DATA/firefox/abouthome/apps.png new file mode 100644 index 0000000..79fc95d Binary files /dev/null and b/helpers/DATA/firefox/abouthome/apps.png differ diff --git a/helpers/DATA/firefox/abouthome/apps@2x.png b/helpers/DATA/firefox/abouthome/apps@2x.png new file mode 100644 index 0000000..cbe7a6d Binary files /dev/null and b/helpers/DATA/firefox/abouthome/apps@2x.png differ diff --git a/helpers/DATA/firefox/abouthome/bookmarks.png b/helpers/DATA/firefox/abouthome/bookmarks.png new file mode 100644 index 0000000..5c7e194 Binary files /dev/null and b/helpers/DATA/firefox/abouthome/bookmarks.png differ diff --git a/helpers/DATA/firefox/abouthome/bookmarks@2x.png b/helpers/DATA/firefox/abouthome/bookmarks@2x.png new file mode 100644 index 0000000..7ede007 Binary files /dev/null and b/helpers/DATA/firefox/abouthome/bookmarks@2x.png differ diff --git a/helpers/DATA/firefox/abouthome/downloads.png b/helpers/DATA/firefox/abouthome/downloads.png new file mode 100644 index 0000000..3d4d10e Binary files /dev/null and b/helpers/DATA/firefox/abouthome/downloads.png differ diff --git a/helpers/DATA/firefox/abouthome/downloads@2x.png b/helpers/DATA/firefox/abouthome/downloads@2x.png new file mode 100644 index 0000000..d384a22 Binary files /dev/null and b/helpers/DATA/firefox/abouthome/downloads@2x.png differ diff --git a/helpers/DATA/firefox/abouthome/history.png b/helpers/DATA/firefox/abouthome/history.png new file mode 100644 index 0000000..ae742b1 Binary files /dev/null and b/helpers/DATA/firefox/abouthome/history.png differ diff --git a/helpers/DATA/firefox/abouthome/history@2x.png b/helpers/DATA/firefox/abouthome/history@2x.png new file mode 100644 index 0000000..696902e Binary files /dev/null and b/helpers/DATA/firefox/abouthome/history@2x.png differ diff --git a/helpers/DATA/firefox/abouthome/restore-large.png b/helpers/DATA/firefox/abouthome/restore-large.png new file mode 100644 index 0000000..ef593e6 Binary files /dev/null and b/helpers/DATA/firefox/abouthome/restore-large.png differ diff --git a/helpers/DATA/firefox/abouthome/restore-large@2x.png b/helpers/DATA/firefox/abouthome/restore-large@2x.png new file mode 100644 index 0000000..d5c71d0 Binary files /dev/null and b/helpers/DATA/firefox/abouthome/restore-large@2x.png differ diff --git a/helpers/DATA/firefox/abouthome/restore.png b/helpers/DATA/firefox/abouthome/restore.png new file mode 100644 index 0000000..5c3d6f4 Binary files /dev/null and b/helpers/DATA/firefox/abouthome/restore.png differ diff --git a/helpers/DATA/firefox/abouthome/restore@2x.png b/helpers/DATA/firefox/abouthome/restore@2x.png new file mode 100644 index 0000000..5acb630 Binary files /dev/null and b/helpers/DATA/firefox/abouthome/restore@2x.png differ diff --git a/helpers/DATA/firefox/abouthome/settings.png b/helpers/DATA/firefox/abouthome/settings.png new file mode 100644 index 0000000..4b0c309 Binary files /dev/null and b/helpers/DATA/firefox/abouthome/settings.png differ diff --git a/helpers/DATA/firefox/abouthome/settings@2x.png b/helpers/DATA/firefox/abouthome/settings@2x.png new file mode 100644 index 0000000..c77cb9a Binary files /dev/null and b/helpers/DATA/firefox/abouthome/settings@2x.png differ diff --git a/helpers/DATA/firefox/abouthome/snippet1.png b/helpers/DATA/firefox/abouthome/snippet1.png new file mode 100644 index 0000000..ce2ec55 Binary files /dev/null and b/helpers/DATA/firefox/abouthome/snippet1.png differ diff --git a/helpers/DATA/firefox/abouthome/snippet1@2x.png b/helpers/DATA/firefox/abouthome/snippet1@2x.png new file mode 100644 index 0000000..f57cd0a Binary files /dev/null and b/helpers/DATA/firefox/abouthome/snippet1@2x.png differ diff --git a/helpers/DATA/firefox/abouthome/snippet2.png b/helpers/DATA/firefox/abouthome/snippet2.png new file mode 100644 index 0000000..e0724fb Binary files /dev/null and b/helpers/DATA/firefox/abouthome/snippet2.png differ diff --git a/helpers/DATA/firefox/abouthome/snippet2@2x.png b/helpers/DATA/firefox/abouthome/snippet2@2x.png new file mode 100644 index 0000000..40577f5 Binary files /dev/null and b/helpers/DATA/firefox/abouthome/snippet2@2x.png differ diff --git a/helpers/DATA/firefox/abouthome/sync.png b/helpers/DATA/firefox/abouthome/sync.png new file mode 100644 index 0000000..11e40cc Binary files /dev/null and b/helpers/DATA/firefox/abouthome/sync.png differ diff --git a/helpers/DATA/firefox/abouthome/sync@2x.png b/helpers/DATA/firefox/abouthome/sync@2x.png new file mode 100644 index 0000000..6354f5b Binary files /dev/null and b/helpers/DATA/firefox/abouthome/sync@2x.png differ diff --git a/helpers/DATA/firefox/bookmarks.html.in b/helpers/DATA/firefox/bookmarks.html.in index 98fff6f..9767e59 100644 --- a/helpers/DATA/firefox/bookmarks.html.in +++ b/helpers/DATA/firefox/bookmarks.html.in @@ -15,7 +15,6 @@
Wiki
Donate
Store -
@identi.ca
GNU's not UNIX!
GNU Planet diff --git a/helpers/DATA/firefox/branding/LICENSE b/helpers/DATA/firefox/branding/LICENSE new file mode 100644 index 0000000..32d55b9 --- /dev/null +++ b/helpers/DATA/firefox/branding/LICENSE @@ -0,0 +1,10 @@ +These files are under the MPL 2, as below. However, please note that you +are not granted any trademark rights or licenses to the trademarks of the +Mozilla Foundation or any party, including without limitation the +Firefox name or logo. + +For more information, see: http://www.mozilla.org/foundation/licensing.html + +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/. diff --git a/helpers/DATA/firefox/branding/Makefile.in b/helpers/DATA/firefox/branding/Makefile.in index 25578dc..0d21270 100644 --- a/helpers/DATA/firefox/branding/Makefile.in +++ b/helpers/DATA/firefox/branding/Makefile.in @@ -2,12 +2,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/. -DEPTH = @DEPTH@ -topsrcdir = @top_srcdir@ -srcdir = @srcdir@ -VPATH = @srcdir@ - -include $(DEPTH)/config/autoconf.mk include $(topsrcdir)/config/config.mk PREF_JS_EXPORTS = $(srcdir)/pref/abrowser-branding.js @@ -44,7 +38,7 @@ BRANDING_FILES := \ $(NULL) endif -ifeq ($(MOZ_WIDGET_TOOLKIT),gtk2) +ifdef MOZ_WIDGET_GTK BRANDING_FILES := \ default16.png \ default32.png \ @@ -70,5 +64,3 @@ VISUALMANIFEST_FLAGS := -Fsubstitution -DMOZ_APP_DISPLAYNAME=${MOZ_APP_DISPLAYNA VISUALMANIFEST_PATH := $(DIST)/bin PP_TARGETS += VISUALMANIFEST endif - -include $(topsrcdir)/config/rules.mk diff --git a/helpers/DATA/firefox/branding/VisualElementsManifest.xml b/helpers/DATA/firefox/branding/VisualElementsManifest.xml index 5e97c80..f763409 100644 --- a/helpers/DATA/firefox/branding/VisualElementsManifest.xml +++ b/helpers/DATA/firefox/branding/VisualElementsManifest.xml @@ -5,7 +5,7 @@ Logo="tileresources\VisualElements_logo.png" SmallLogo="tileresources\VisualElements_smalllogo.png" ForegroundText="light" - BackgroundColor="#001226"> + BackgroundColor="#0a1833"> +image/svg+xml + + + +Abrowser + + \ No newline at end of file diff --git a/helpers/DATA/firefox/branding/content/aboutDialog.css b/helpers/DATA/firefox/branding/content/aboutDialog.css index 1113fd1..4c2a7b6 100644 --- a/helpers/DATA/firefox/branding/content/aboutDialog.css +++ b/helpers/DATA/firefox/branding/content/aboutDialog.css @@ -11,6 +11,7 @@ .text-link { color: #fff !important; + text-decoration: underline; } #rightBox { diff --git a/helpers/DATA/firefox/branding/content/icon48.png b/helpers/DATA/firefox/branding/content/icon48.png index c648f72..5fc7861 100644 Binary files a/helpers/DATA/firefox/branding/content/icon48.png and b/helpers/DATA/firefox/branding/content/icon48.png differ diff --git a/helpers/DATA/firefox/branding/content/icon64.png b/helpers/DATA/firefox/branding/content/icon64.png index ad1dd7f..83f7016 100644 Binary files a/helpers/DATA/firefox/branding/content/icon64.png and b/helpers/DATA/firefox/branding/content/icon64.png differ diff --git a/helpers/DATA/firefox/branding/content/identity-icons-brand.png b/helpers/DATA/firefox/branding/content/identity-icons-brand.png new file mode 100644 index 0000000..feba160 Binary files /dev/null and b/helpers/DATA/firefox/branding/content/identity-icons-brand.png differ diff --git a/helpers/DATA/firefox/branding/content/identity-icons-brand@2x.png b/helpers/DATA/firefox/branding/content/identity-icons-brand@2x.png new file mode 100644 index 0000000..9b2d6bc Binary files /dev/null and b/helpers/DATA/firefox/branding/content/identity-icons-brand@2x.png differ diff --git a/helpers/DATA/firefox/branding/content/jar.mn b/helpers/DATA/firefox/branding/content/jar.mn index abe651b..dc07b3d 100644 --- a/helpers/DATA/firefox/branding/content/jar.mn +++ b/helpers/DATA/firefox/branding/content/jar.mn @@ -7,9 +7,21 @@ browser.jar: content/branding/about.png (about.png) content/branding/about-background.png (about-background.png) content/branding/about-logo.png (about-logo.png) - content/branding/about-wordmark.png (about-wordmark.png) + content/branding/about-logo@2x.png (about-logo@2x.png) + content/branding/about-wordmark.svg (about-wordmark.svg) content/branding/icon48.png (icon48.png) content/branding/icon64.png (icon64.png) content/branding/icon16.png (../default16.png) content/branding/icon32.png (../default32.png) + content/branding/icon128.png (../mozicon128.png) + content/branding/identity-icons-brand.png (identity-icons-brand.png) + content/branding/identity-icons-brand@2x.png (identity-icons-brand@2x.png) content/branding/aboutDialog.css (aboutDialog.css) +#ifdef MOZ_METRO + content/branding/metro-about.css (metro-about.css) + content/branding/metro-about-footer.png (metro-about-footer.png) + content/branding/metro-about-wordmark.png (metro-about-wordmark.png) + content/branding/metro_firstrun_logo.png (metro_firstrun_logo.png) + content/branding/metro_firstrun_logo@1.4x.png (metro_firstrun_logo@1.4x.png) + content/branding/metro_firstrun_logo@1.8x.png (metro_firstrun_logo@1.8x.png) +#endif diff --git a/helpers/DATA/firefox/branding/content/metro-about-footer.png b/helpers/DATA/firefox/branding/content/metro-about-footer.png new file mode 100644 index 0000000..8e507f1 Binary files /dev/null and b/helpers/DATA/firefox/branding/content/metro-about-footer.png differ diff --git a/helpers/DATA/firefox/branding/content/metro-about-wordmark.png b/helpers/DATA/firefox/branding/content/metro-about-wordmark.png new file mode 100644 index 0000000..8b51896 Binary files /dev/null and b/helpers/DATA/firefox/branding/content/metro-about-wordmark.png differ diff --git a/helpers/DATA/firefox/branding/content/metro-about.css b/helpers/DATA/firefox/branding/content/metro-about.css new file mode 100644 index 0000000..ae59ca7 --- /dev/null +++ b/helpers/DATA/firefox/branding/content/metro-about.css @@ -0,0 +1,14 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#about-flyoutpanel { + background-color: #002147; + color: white; +} + +#about-policy-label:hover, +#about-policy-label:active { + background: #0a111c; +} + diff --git a/helpers/DATA/firefox/branding/content/metro_firstrun_logo.png b/helpers/DATA/firefox/branding/content/metro_firstrun_logo.png new file mode 100644 index 0000000..d54fb00 Binary files /dev/null and b/helpers/DATA/firefox/branding/content/metro_firstrun_logo.png differ diff --git a/helpers/DATA/firefox/branding/content/metro_firstrun_logo@1.4x.png b/helpers/DATA/firefox/branding/content/metro_firstrun_logo@1.4x.png new file mode 100644 index 0000000..d2a2fff Binary files /dev/null and b/helpers/DATA/firefox/branding/content/metro_firstrun_logo@1.4x.png differ diff --git a/helpers/DATA/firefox/branding/content/metro_firstrun_logo@1.8x.png b/helpers/DATA/firefox/branding/content/metro_firstrun_logo@1.8x.png new file mode 100644 index 0000000..2d5297f Binary files /dev/null and b/helpers/DATA/firefox/branding/content/metro_firstrun_logo@1.8x.png differ diff --git a/helpers/DATA/firefox/branding/content/moz.build b/helpers/DATA/firefox/branding/content/moz.build index 58ce5e2..c97072b 100644 --- a/helpers/DATA/firefox/branding/content/moz.build +++ b/helpers/DATA/firefox/branding/content/moz.build @@ -1,5 +1,7 @@ +# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*- # vim: set filetype=python: # 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/. +JAR_MANIFESTS += ['jar.mn'] \ No newline at end of file diff --git a/helpers/DATA/firefox/branding/default128.png b/helpers/DATA/firefox/branding/default128.png deleted file mode 100644 index 0954708..0000000 Binary files a/helpers/DATA/firefox/branding/default128.png and /dev/null differ diff --git a/helpers/DATA/firefox/branding/default22.png b/helpers/DATA/firefox/branding/default22.png deleted file mode 100644 index b1ee5e3..0000000 Binary files a/helpers/DATA/firefox/branding/default22.png and /dev/null differ diff --git a/helpers/DATA/firefox/branding/default24.png b/helpers/DATA/firefox/branding/default24.png deleted file mode 100644 index 6082f17..0000000 Binary files a/helpers/DATA/firefox/branding/default24.png and /dev/null differ diff --git a/helpers/DATA/firefox/branding/default256.png b/helpers/DATA/firefox/branding/default256.png deleted file mode 100644 index 4dbec8c..0000000 Binary files a/helpers/DATA/firefox/branding/default256.png and /dev/null differ diff --git a/helpers/DATA/firefox/branding/disk.icns b/helpers/DATA/firefox/branding/disk.icns index e97e490..718f1a3 100644 Binary files a/helpers/DATA/firefox/branding/disk.icns and b/helpers/DATA/firefox/branding/disk.icns differ diff --git a/helpers/DATA/firefox/branding/document.icns b/helpers/DATA/firefox/branding/document.icns index f5af7a7..ff419f2 100644 Binary files a/helpers/DATA/firefox/branding/document.icns and b/helpers/DATA/firefox/branding/document.icns differ diff --git a/helpers/DATA/firefox/branding/document.ico b/helpers/DATA/firefox/branding/document.ico index 3111163..584a0a1 100644 Binary files a/helpers/DATA/firefox/branding/document.ico and b/helpers/DATA/firefox/branding/document.ico differ diff --git a/helpers/DATA/firefox/branding/document.png b/helpers/DATA/firefox/branding/document.png deleted file mode 100644 index be4a022..0000000 Binary files a/helpers/DATA/firefox/branding/document.png and /dev/null differ diff --git a/helpers/DATA/firefox/branding/dsstore b/helpers/DATA/firefox/branding/dsstore index bbba9ec..2d11482 100644 Binary files a/helpers/DATA/firefox/branding/dsstore and b/helpers/DATA/firefox/branding/dsstore differ diff --git a/helpers/DATA/firefox/branding/locales/Makefile.in b/helpers/DATA/firefox/branding/locales/Makefile.in index d199ba2..82f614e 100644 --- a/helpers/DATA/firefox/branding/locales/Makefile.in +++ b/helpers/DATA/firefox/branding/locales/Makefile.in @@ -2,14 +2,4 @@ # 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/. -DEPTH = @DEPTH@ -topsrcdir = @top_srcdir@ -srcdir = @srcdir@ -VPATH = @srcdir@ -relativesrcdir = @relativesrcdir@ - -include $(DEPTH)/config/autoconf.mk - -DEFINES += -DAB_CD=$(AB_CD) -DMOZ_DISTRIBUTION_ID_UNQUOTED=$(MOZ_DISTRIBUTION_ID) - -include $(topsrcdir)/config/rules.mk +DEFINES += -DAB_CD=$(AB_CD) diff --git a/helpers/DATA/firefox/branding/locales/browserconfig.properties b/helpers/DATA/firefox/branding/locales/browserconfig.properties index 2cfd1ea..06cefec 100644 --- a/helpers/DATA/firefox/branding/locales/browserconfig.properties +++ b/helpers/DATA/firefox/branding/locales/browserconfig.properties @@ -3,4 +3,4 @@ # file, You can obtain one at http://mozilla.org/MPL/2.0/. # Do NOT localize or otherwise change these values -browser.startup.homepage=http://trisquel.info +browser.startup.homepage=about:home diff --git a/helpers/DATA/firefox/branding/locales/en-US/brand.dtd b/helpers/DATA/firefox/branding/locales/en-US/brand.dtd index c2e72f4..b1b0eb7 100644 --- a/helpers/DATA/firefox/branding/locales/en-US/brand.dtd +++ b/helpers/DATA/firefox/branding/locales/en-US/brand.dtd @@ -5,4 +5,4 @@ - + diff --git a/helpers/DATA/firefox/branding/locales/en-US/brand.properties b/helpers/DATA/firefox/branding/locales/en-US/brand.properties index 7f82b88..a24cc63 100644 --- a/helpers/DATA/firefox/branding/locales/en-US/brand.properties +++ b/helpers/DATA/firefox/branding/locales/en-US/brand.properties @@ -6,4 +6,10 @@ brandShortName=Abrowser brandFullName=Abrowser vendorShortName=Trisquel +homePageSingleStartMain=Abrowser Start, a fast home page with built-in search +homePageImport=Import your home page from %S + +homePageMigrationPageTitle=Home Page Selection +homePageMigrationDescription=Please select the home page you wish to use: + syncBrandShortName=Sync diff --git a/helpers/DATA/firefox/branding/locales/moz.build b/helpers/DATA/firefox/branding/locales/moz.build index 58ce5e2..3a54c0c 100644 --- a/helpers/DATA/firefox/branding/locales/moz.build +++ b/helpers/DATA/firefox/branding/locales/moz.build @@ -1,5 +1,9 @@ +# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*- # vim: set filetype=python: # 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/. +DEFINES['MOZ_DISTRIBUTION_ID_UNQUOTED'] = CONFIG['MOZ_DISTRIBUTION_ID'] + +JAR_MANIFESTS += ['jar.mn'] \ No newline at end of file diff --git a/helpers/DATA/firefox/branding/moz.build b/helpers/DATA/firefox/branding/moz.build index f179404..3e2f88f 100644 --- a/helpers/DATA/firefox/branding/moz.build +++ b/helpers/DATA/firefox/branding/moz.build @@ -1,3 +1,4 @@ +# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*- # vim: set filetype=python: # 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 @@ -5,3 +6,5 @@ DIRS += ['content', 'locales'] +DIST_SUBDIR = 'browser' +export('DIST_SUBDIR') diff --git a/helpers/DATA/firefox/branding/particles.bmp b/helpers/DATA/firefox/branding/particles.bmp index 12578c6..ab74ce0 100644 Binary files a/helpers/DATA/firefox/branding/particles.bmp and b/helpers/DATA/firefox/branding/particles.bmp differ diff --git a/helpers/DATA/firefox/branding/pencil-rtl.bmp b/helpers/DATA/firefox/branding/pencil-rtl.bmp index 2920511..e50d92d 100644 Binary files a/helpers/DATA/firefox/branding/pencil-rtl.bmp and b/helpers/DATA/firefox/branding/pencil-rtl.bmp differ diff --git a/helpers/DATA/firefox/branding/pencil.bmp b/helpers/DATA/firefox/branding/pencil.bmp index ef65392..252c10f 100644 Binary files a/helpers/DATA/firefox/branding/pencil.bmp and b/helpers/DATA/firefox/branding/pencil.bmp differ diff --git a/helpers/DATA/firefox/branding/splash.bmp b/helpers/DATA/firefox/branding/splash.bmp deleted file mode 100644 index d2afefd..0000000 Binary files a/helpers/DATA/firefox/branding/splash.bmp and /dev/null differ diff --git a/helpers/DATA/firefox/branding/wizHeader.bmp b/helpers/DATA/firefox/branding/wizHeader.bmp index 0800023..f67b452 100644 Binary files a/helpers/DATA/firefox/branding/wizHeader.bmp and b/helpers/DATA/firefox/branding/wizHeader.bmp differ diff --git a/helpers/DATA/firefox/branding/wizHeaderRTL.bmp b/helpers/DATA/firefox/branding/wizHeaderRTL.bmp index 03d984f..7c57e46 100644 Binary files a/helpers/DATA/firefox/branding/wizHeaderRTL.bmp and b/helpers/DATA/firefox/branding/wizHeaderRTL.bmp differ diff --git a/helpers/DATA/firefox/branding/wizWatermark.bmp b/helpers/DATA/firefox/branding/wizWatermark.bmp index c54ee6a..05f0e7f 100644 Binary files a/helpers/DATA/firefox/branding/wizWatermark.bmp and b/helpers/DATA/firefox/branding/wizWatermark.bmp differ diff --git a/helpers/DATA/firefox/enable-js-options.patch b/helpers/DATA/firefox/enable-js-options.patch new file mode 100644 index 0000000..9cca7a9 --- /dev/null +++ b/helpers/DATA/firefox/enable-js-options.patch @@ -0,0 +1,310 @@ +# HG changeset patch +# User Gijs Kruitbosch +# Date 1365155574 -7200 +# Node ID 444b9baa31d6065d37edbd61a2dcb892c989e0e2 +# Parent 99121d529b47ec285d61f64988335e60ac120cf7 +Bug 851702 - Remove JS load and advanced preferences from the UI + +diff --git a/browser/components/preferences/advanced-scripts.xul b/browser/components/preferences/advanced-scripts.xul +deleted file mode 100644 +--- a/browser/components/preferences/advanced-scripts.xul ++++ /dev/null +@@ -1,46 +0,0 @@ +- +- +- +- +- +- +- +- +- +- +- +-