diff options
author | Ruben Rodriguez <ruben@trisquel.info> | 2022-09-08 20:18:54 -0400 |
---|---|---|
committer | Ruben Rodriguez <ruben@trisquel.info> | 2022-09-08 20:18:54 -0400 |
commit | 5da28b0f8771834ae208d61431d632875e9f8e7d (patch) | |
tree | 688ecaff26197bad8abde617b4947b11d617309e /data/extensions/https-everywhere@eff.org/pages | |
parent | 4a87716686104266a9cccc2d83cc249e312f3673 (diff) |
Updated extensions:
* Upgraded Privacy Redirect to 1.1.49 and configured to use the 10 most reliable invidious instances
* Removed ViewTube
* Added torproxy@icecat.gnu based on 'Proxy toggle' extension
* Added jShelter 0.11.1
* Upgraded LibreJS to 7.21.0
* Upgraded HTTPS Everywhere to 2021.7.13
* Upgraded SubmitMe to 1.9
Diffstat (limited to 'data/extensions/https-everywhere@eff.org/pages')
14 files changed, 390 insertions, 250 deletions
diff --git a/data/extensions/https-everywhere@eff.org/pages/base.css b/data/extensions/https-everywhere@eff.org/pages/base.css new file mode 100644 index 0000000..92adbf8 --- /dev/null +++ b/data/extensions/https-everywhere@eff.org/pages/base.css @@ -0,0 +1,46 @@ +:root { + --https-blue: #0a84ff; + --darker-blue: #0060df; + --text-main: #000; + --text-secondary: #464646; + --light-grey: #ececec; + --space: 5px; + --font: 'Lucida Grande', 'Segoe UI', Tahoma, 'DejaVu Sans', Arial, sans-serif; + --code-font: 'VeraMono'; +} + +/*-------------------------------------------------------------- +# Layout +--------------------------------------------------------------*/ +.grid { + display: grid; + grid-template-columns: 1fr 1fr 1fr; + row-gap: 16px; +} + +/*-------------------------------------------------------------- +# Typography +--------------------------------------------------------------*/ +.font { + font-family: var(--font); +} + +/*-------------------------------------------------------------- +# Elements +--------------------------------------------------------------*/ +.button { + border: var(--https-blue) solid 1px; + color: var(--text-main); + display: block; + font-size: 12px; + font-weight: bold; + margin: var(--space) auto; + padding: 10px; + text-align: center; + text-decoration: none; +} + +.button:hover { + background-color: var(--darker-blue); + color: #fff; +} diff --git a/data/extensions/https-everywhere@eff.org/pages/cancel/index.html b/data/extensions/https-everywhere@eff.org/pages/cancel/index.html index 3522301..ec25184 100644 --- a/data/extensions/https-everywhere@eff.org/pages/cancel/index.html +++ b/data/extensions/https-everywhere@eff.org/pages/cancel/index.html @@ -1,32 +1,32 @@ <!doctype html> <html> <head> + <!-- Required meta tags --> <meta charset="utf-8"> - <meta name="viewport" content="width=device-width, initial-scale=1"> + <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> + <title>⚠ HTTPS Everywhere ⚠</title> - <link rel="stylesheet" href="style.css"> + <link href="style.css" rel="stylesheet"> <link rel="icon" href="/images/icons/icon-blocking-38.png"> </head> <body> - <div class="content"> - <h1 id="https-everywhere"> + <div class="banner"> <img src="/images/banner-red.svg" alt="HTTPS Everywhere"> - </h1> - - <p data-i18n="cancel_he_blocking_explainer"></p> + </div> - <p id="url-paragraph"> - <span id="url-label">URL: </span><span id="url-value"></span> - </p> + <div class="explainer" data-i18n="cancel_he_blocking_explainer"></div> - <div class="actions"> - <button id="open-url-button" data-i18n="cancel_open_page"></button> - <button id="http-once-button" data-i18n="cancel_http_once"></button> + <div class="copy_block"> + <pre id="url-value"></pre> + <button id="copy-url" class="ease_button" data-i18n="cancel_copy_url"></button> </div> - <script src="../translation.js"></script> - <script src="../util.js"></script> - <script src="ux.js"></script> - </div> + <div class="button_options"> + <button id="http-once-button" class="ease_button" data-i18n="cancel_http_once"></button> + <button id="open-url-button" class="ease_button" data-i18n="cancel_open_page"></button> + </div> + <script src="/pages/translation.js"></script> + <script src="/pages/util.js"></script> + <script src="ux.js"></script> </body> </html> diff --git a/data/extensions/https-everywhere@eff.org/pages/cancel/style.css b/data/extensions/https-everywhere@eff.org/pages/cancel/style.css index 9b91ca3..aeba151 100644 --- a/data/extensions/https-everywhere@eff.org/pages/cancel/style.css +++ b/data/extensions/https-everywhere@eff.org/pages/cancel/style.css @@ -1,13 +1,33 @@ +@import "../main.css"; + body { - margin-top: 6em; + display: grid; + grid-template-columns: 1fr 1fr 1fr; + margin: 2% auto; font-size: 12pt; font-family: sans-serif; line-height: 150%; + row-gap: 16px; } -.content { - margin: auto; - max-width: 600px; +/*--------- +# GRID LAYOUT +---------*/ +.banner { + grid-column: 2; + grid-row: 1; +} +.explainer { + grid-column: 2; + grid-row: 2; +} +.copy_block { + grid-column: 2; + grid-row: 3; +} +.button_options { + grid-column: 2; + grid-row: 4; } h1 { @@ -20,37 +40,70 @@ h1 img { } #url-paragraph { - display: block; + display: inline-flex; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } -button { +.ease_button { background-color: #ec1e1e; border: 1px solid #ec1e1e; border-radius: 4px; color: #fff; cursor: pointer; padding: 0.5em 1em; - display: block; float: none; font-size: 12pt; + font-weight: normal; margin: 8px 0; line-height: 150%; } -button:hover { - background-color: #fff; - color: #ec1e1e; -} - button:last-child { margin: 0; } -@media screen and (max-width: 550px) { - button { +#url-value{ + float: left; + font-weight: bold; + margin: 2% 2% 0 0; +} +#copy-url, #open-url-button{ + background-color: var(--light-grey) !important; + border: 1px solid var(--text-secondary) !important; +} +#copy-url { + color: var(--text-secondary) !important; + font-size: 14px; +} +#open-url-button { + color: #666666 !important; +} +#copy-url:hover, #open-url-button:hover { + background-color: var(--text-secondary) !important; + border: 1px solid var(--text-secondary) !important; + color: var(--light-grey) !important; +} + +@media screen and (max-width: 800px) { + body { + grid-template-columns: 1fr; + margin: 5%; + } + .banner { + grid-row: 1; + } + .explainer { + grid-row: 2; + } + .copy_block { + grid-row: 3; + } + .button_options { + grid-row: 4; + } + .ease_button { width: 100%; margin: 8px 0; } @@ -66,11 +119,11 @@ button:last-child { color: #45a1ff; } - button { + .ease_button { color: #202023; } - button:hover { + .ease_button:hover { background-color: #202023; border-color: #ec1e1e; } diff --git a/data/extensions/https-everywhere@eff.org/pages/cancel/ux.js b/data/extensions/https-everywhere@eff.org/pages/cancel/ux.js index 7e6199a..259d602 100644 --- a/data/extensions/https-everywhere@eff.org/pages/cancel/ux.js +++ b/data/extensions/https-everywhere@eff.org/pages/cancel/ux.js @@ -6,7 +6,7 @@ let observer; document.addEventListener("DOMContentLoaded", () => { const explainer = document.querySelector("[data-i18n=cancel_he_blocking_explainer]"); observer = new MutationObserver(() => { - replaceLink(explainer) + replaceLink(explainer); }); if (explainer.innerText.length > 0) { replaceLink(explainer); @@ -45,13 +45,14 @@ function displayURL() { const originURLLink = document.getElementById('url-value'); const openURLButton = document.getElementById('open-url-button'); const openHttpOnce = document.getElementById('http-once-button'); + const copyButton = document.getElementById('copy-url'); const url = new URL(originURL); originURLLink.innerText = originURL; originURLLink.href = originURL; openURLButton.addEventListener("click", function() { - if (confirm(chrome.i18n.getMessage("chrome_disable_on_this_site") + '?')) { + if (confirm(chrome.i18n.getMessage("cancel_open_page") + '?')) { sendMessage("disable_on_site", url.host, () => { window.location = originURL; }); @@ -60,8 +61,63 @@ function displayURL() { return false; }); + // Copy URL Feature on EASE + + function copyLinkAlternate() { + let isSuccessful = false; + + const sel = window.getSelection(); + + try { + sel.removeAllRanges(); + + const range = document.createRange(); + range.selectNode(originURLLink); + + sel.addRange(range); + + isSuccessful = document.execCommand("copy"); + + sel.removeAllRanges(); + + return isSuccessful; + } catch (err) { + console.error(err); + + sel.removeAllRanges(); + + return false; + } + } + + async function copyLink() { + try { + await navigator.clipboard.writeText(originURL); + return true; + } catch (err) { + return copyLinkAlternate(); + } + } + + let restoreTimeout = null; + + copyButton.addEventListener("click", async () => { + if (await copyLink()) { + copyButton.innerText = chrome.i18n.getMessage("cancel_copied_url"); + + if (restoreTimeout !== null) { + clearTimeout(restoreTimeout); + } + + restoreTimeout = setTimeout(() => { + copyButton.innerText = chrome.i18n.getMessage("cancel_copy_url"); + restoreTimeout = null; + }, 1500); + } + }); + openHttpOnce.addEventListener("click", function() { - if (confirm(chrome.i18n.getMessage("chrome_disable_on_this_site") + '?')) { + if (confirm(chrome.i18n.getMessage("cancel_http_once") + '?')) { sendMessage("disable_on_site_once", url.host, () => { window.location = originURL; }); diff --git a/data/extensions/https-everywhere@eff.org/pages/debugging-rulesets/ux.js b/data/extensions/https-everywhere@eff.org/pages/debugging-rulesets/ux.js index 49b9c7e..0df93d8 100644 --- a/data/extensions/https-everywhere@eff.org/pages/debugging-rulesets/ux.js +++ b/data/extensions/https-everywhere@eff.org/pages/debugging-rulesets/ux.js @@ -35,7 +35,7 @@ document.getElementById("save-button").addEventListener("click", e => { sendMessage("set_option", { debugging_rulesets: cm.getValue() }, () => { savedTextElement.style.display = "block"; setTimeout(() => { - savedTextElement.style.display = "none" + savedTextElement.style.display = "none"; }, 1000); valueHasChanged = false; diff --git a/data/extensions/https-everywhere@eff.org/pages/main.css b/data/extensions/https-everywhere@eff.org/pages/main.css new file mode 100644 index 0000000..2772c46 --- /dev/null +++ b/data/extensions/https-everywhere@eff.org/pages/main.css @@ -0,0 +1,21 @@ +/*-------------------------------------------------------------- +>>> TABLE OF CONTENTS: +---------------------------------------------------------------- +# Base + - Layout + - Typography + - Elements + - Links +# Utilities + - Accessibility + +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# Base +--------------------------------------------------------------*/ +@import "base.css"; + +/* Utilities - TBA +--------------------------------------------- */ + diff --git a/data/extensions/https-everywhere@eff.org/pages/onboarding/style.css b/data/extensions/https-everywhere@eff.org/pages/onboarding/style.css deleted file mode 100644 index b270b2e..0000000 --- a/data/extensions/https-everywhere@eff.org/pages/onboarding/style.css +++ /dev/null @@ -1,42 +0,0 @@ -:root { - --https-blue: #0a84ff; - --darker-blue: #0060df; - --text-main: #000; - --text-secondary: #464646; - --light-grey: #ececec; -} - -body { - align-content: center; - background-color: var(--light-grey); - color: var(--text-main); - display: flex; - flex-direction: column; - flex-wrap: wrap; - font-family: 'Lucida Grande', 'Segoe UI', Tahoma, 'DejaVu Sans', Arial, sans-serif; - justify-content: center; -} - -img { - width: 100%; -} -img.footer_img { - width: 15%; -} - -h1.description { - text-align: center; -} - -.updates_header { - text-align: center; -} -.updates_details { - margin: 18px; - padding: 1%; -} - -footer { - margin: 18px 0; - text-align: center; -}
\ No newline at end of file diff --git a/data/extensions/https-everywhere@eff.org/pages/onboarding/updated.html b/data/extensions/https-everywhere@eff.org/pages/onboarding/updated.html deleted file mode 100644 index fc730a3..0000000 --- a/data/extensions/https-everywhere@eff.org/pages/onboarding/updated.html +++ /dev/null @@ -1,38 +0,0 @@ -<!doctype html> -<html class="no-js" lang=""> - -<head> - <meta charset="utf-8"> - <title>What's Updated</title> - <meta name="description" content="Updates"> - <meta name="viewport" content="width=device-width, initial-scale=1"> - <link rel="stylesheet" href="style.css"> - <link rel="icon" href="/images/icons/icon-active-38.png"> -</head> - -<body> - <header> - <img src="/images/onboarding/httpseverywhere-logo.png" alt="HTTPS Everywhere"> - </header> - <h1 class="description" data-i18n="onboarding_intro"></h1> - <section class="updates"> - <h1 class="updates_header" data-i18n="onboarding_header"></h1> - <hr> - <div class="updates_details"> - <h2 class="updates_details_list" data-i18n="onboarding_details_one"></h2> - <img src="https://raw.githubusercontent.com/EFForg/https-everywhere/master/chromium/images/onboarding/ease_badssl.gif" alt="EASE Mode GIF Demo" aria-hidden="true"/> - </div> - <div class="updates_details"> - <h2 class="updates_details_list" data-i18n="onboarding_details_two"></h2> - <img src="https://raw.githubusercontent.com/EFForg/https-everywhere/master/chromium/images/onboarding/add_disabled_site.gif" alt="Options GIF Demo" aria-hidden="true"/> - </div> - </section> - <footer> - <img class="footer_img" src="/images/eff-logo-monogram-red.png" alt="EFF Logo" aria-hidden="true"/> - <p data-i18n="onboarding_footer"></p> - </footer> - - <script src="../translation.js"></script> -</body> - -</html> diff --git a/data/extensions/https-everywhere@eff.org/pages/options/index.html b/data/extensions/https-everywhere@eff.org/pages/options/index.html index 6d82a18..b6bdc33 100644 --- a/data/extensions/https-everywhere@eff.org/pages/options/index.html +++ b/data/extensions/https-everywhere@eff.org/pages/options/index.html @@ -2,15 +2,16 @@ <html> <head> <meta charset="utf-8"> - <meta name="viewport" content="width=device-width, initial-scale=.8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> <title></title> <link href="style.css" rel="stylesheet"> </head> - <body> - <span class="section-header-span active" data-show="general-settings-wrapper" data-i18n="options_generalSettings"></span> - <span class="section-header-span inactive" data-show="advanced-settings-wrapper" data-i18n="options_advancedSettings"></span> - <span class="section-header-span inactive" data-show="update-channels-wrapper" data-i18n="options_updateChannels"></span> - + <body class="font"> + <section class="header-wrapper"> + <span class="button section-header-span active" data-show="general-settings-wrapper" data-i18n="options_generalSettings"></span> + <span class="button section-header-span inactive" data-show="advanced-settings-wrapper" data-i18n="options_advancedSettings"></span> + <span class="button section-header-span inactive" data-show="update-channels-wrapper" data-i18n="options_updateChannels"></span> + </section> <div class="section-wrapper" id="general-settings-wrapper"> <div id="update-wrapper" class="settings-wrapper"> <input type="checkbox" id="autoUpdateRulesets"> @@ -22,9 +23,10 @@ <div id="disabled-rules-wrapper"> <p class="disabled-rules-wrapper-header" data-i18n="options_disabledUrlsListed"></p> <div id="add-disabled-site-wrapper"> - <button id="add-disabled-site" data-i18n="options_addDisabledSite"></button> + <button class="button" id="add-disabled-site" data-i18n="options_addDisabledSite"></button> <input type="text" id="disabled-site" /> </div> + <div id="add-disabled-site-invalid-host" data-i18n="options_hostNotFormattedCorrectly"></div> </div> </div> @@ -49,7 +51,7 @@ <div class="clearer"></div> <div id="update-channels-list"></div> <div id="add-update-channel-wrapper"> - <button id="add-update-channel" data-i18n="options_addUpdateChannel"></button> + <button class="button" id="add-update-channel" data-i18n="options_addUpdateChannel"></button> <input type="text" id="update-channel-name" /> </div> </div> diff --git a/data/extensions/https-everywhere@eff.org/pages/options/style.css b/data/extensions/https-everywhere@eff.org/pages/options/style.css index d0f4324..032a7ba 100644 --- a/data/extensions/https-everywhere@eff.org/pages/options/style.css +++ b/data/extensions/https-everywhere@eff.org/pages/options/style.css @@ -1,35 +1,30 @@ +@import "../main.css"; + body{ - min-width: 500px; - min-height: 250px; - display: block; + display: grid; + grid-template-columns: 1fr 1fr 1fr; } -@media (prefers-color-scheme: dark) { - body { - background-color: #202023; - color: #f9f9fa; - } - - .section-header-span, div#update-channels-warning { - color: #000; - } - - textarea, input[type=text] { - background-color: #202023; - color: #f9f9fa; - } +/*--------- +# GRID LAYOUT +---------*/ +.header-wrapper, .section-wrapper { + margin: auto; } - -a.settings{ - background-color: #1c87c9; - border: none; - color: white; - padding: 20px 34px; - text-align: center; - text-decoration: none; - display: inline-block; - font-size: 20px; - margin: 4px 2px; +.header-wrapper { + display: inline-flex; + grid-column: 2; + grid-row: 1; +} +.section-wrapper { + grid-column: 2; + grid-row: 2; +} +#add-disabled-site-wrapper { + float: left; +} +#add-update-channel-wrapper { + display: inline-block; } .settings-wrapper{ @@ -63,6 +58,11 @@ a.settings{ } /** Disabled Sites Option**/ +#add-disabled-site-invalid-host { + font-weight: bold; + color: red; + display: none; +} .disabled-rules-wrapper-header { font-weight: bold; padding-left: 5px; @@ -71,7 +71,7 @@ img.remove{ cursor: pointer; float: right; height: 15px; - margin: 10px 0 0 8%; + margin-top: -34px; width: 15px; } .disabled-rule-list-item:last-of-type { @@ -79,12 +79,11 @@ img.remove{ } .disabled-rule-list-item { border-bottom: 1px solid #ccc; - display: inline-flex; - margin-left: 5%; - width: 80%; + clear: both; } .disabled-rule-list-item p { - width: 100%; + width: 80%; + word-wrap: anywhere; } .section-header{ @@ -101,28 +100,30 @@ img.remove{ } .section-header-span{ - font-size: 15px; - border: 0px; - border-radius: 13px; + cursor: pointer; padding: 8px; - margin-right: 10px; + margin-left: 0 !important; + margin-right: var(--space) !important; display: inline-block; } .section-header-span.active{ - background-color: #66ccff; + background-color: var(--darker-blue); + color: #FFF; } - .section-header-span.inactive{ - background-color: #ddd; + background-color: var(--light-grey); +} +.section-header-span.inactive:hover { + background-color: var(--darker-blue); } .update-channel{ - margin-top: 30px; - margin-bottom: 30px; border: 1px solid grey; border-radius: 20px; - width: 498px; + margin-top: 30px; + margin-bottom: 30px; + padding: 6px; } .update-channel-name{ @@ -146,8 +147,9 @@ img.remove{ } textarea.update-channel-jwk { - width: 380px; + width: 367px; height: 250px; + resize: vertical; } input.update-channel-path-prefix, input.update-channel-scope { @@ -166,8 +168,9 @@ div.update-channel-row-scope { button#add-update-channel, button#add-disabled-site { float: right; + height: 30px; margin: 0px 10px 10px 10px; - border-radius: 7px; + padding: 6px; } input#update-channel-name, input#disabled-site { @@ -218,8 +221,8 @@ div#update-channels-last-checked { font-size: 10px; } -#update-channels-wrapper{ - width: 500px; +#update-channels-list { + display: inline-block; } @keyframes flash { @@ -243,3 +246,19 @@ div#update-channels-last-checked { .flash { animation: flash 1s ease-out; } + +@media (prefers-color-scheme: dark) { + body { + background-color: #202023; + color: #f9f9fa; + } + + .section-header-span, div#update-channels-warning { + color: #000; + } + + textarea, input[type=text] { + background-color: #202023; + color: #f9f9fa; + } +} diff --git a/data/extensions/https-everywhere@eff.org/pages/options/ux.js b/data/extensions/https-everywhere@eff.org/pages/options/ux.js index fbfc113..02ad39d 100644 --- a/data/extensions/https-everywhere@eff.org/pages/options/ux.js +++ b/data/extensions/https-everywhere@eff.org/pages/options/ux.js @@ -1,47 +1,33 @@ /* global sendMessage */ /* global getOption_ */ /* global e */ -/* global hide */ +/* global show, hide */ "use strict"; -if (navigator.userAgent.includes("Android")) { - const url = new URL(window.location.href); - if (!url.searchParams.get('redirected')) { - url.searchParams.set('redirected', true); - document.body.innerText = ""; - let link = document.createElement("a"); - link.href = url.href; - link.target = "_blank"; - link.className = "settings"; - link.innerText = chrome.i18n.getMessage("options_settings"); - document.body.appendChild(link); - } -} - document.addEventListener("DOMContentLoaded", () => { - const secretArea = document.getElementById('secretArea') + const secretArea = document.getElementById('secretArea'); const onKeyDownHandler = evt => { if (evt.ctrlKey && evt.key === 'z') { - secretArea.classList.remove('hidden') - secretArea.classList.add('flash') + secretArea.classList.remove('hidden'); + secretArea.classList.add('flash'); - sendMessage('set_option', { developerMode: true }) + sendMessage('set_option', { developerMode: true }); - document.removeEventListener('keydown', onKeyDownHandler) + document.removeEventListener('keydown', onKeyDownHandler); - evt.preventDefault() + evt.preventDefault(); } - } + }; sendMessage('get_option', { developerMode: false }, item => { if (item.developerMode) { - secretArea.classList.remove('hidden') + secretArea.classList.remove('hidden'); } else { - document.addEventListener('keydown', onKeyDownHandler) + document.addEventListener('keydown', onKeyDownHandler); } - }) + }); const autoUpdateRulesets = document.getElementById("autoUpdateRulesets"); const enableMixedRulesets = document.getElementById("enableMixedRulesets"); @@ -91,7 +77,7 @@ document.addEventListener("DOMContentLoaded", () => { }); }); - function create_update_channel_element(update_channel, last_updated, pinned) { + function create_update_channel_element(update_channel, last_updated, locked) { let ruleset_version_string; if(last_updated) { @@ -113,6 +99,33 @@ document.addEventListener("DOMContentLoaded", () => { update_channel_last_updated.innerText = chrome.i18n.getMessage("options_storedRulesetsVersion") + ruleset_version_string; update_channel_name.appendChild(update_channel_last_updated); + const update_channel_row_format = document.createElement('div'); + update_channel_row_format.className = "update-channel-row-format"; + update_channel_div.appendChild(update_channel_row_format); + const update_channel_format_column_left = document.createElement('div'); + update_channel_format_column_left.className = "update-channel-column-left"; + update_channel_format_column_left.innerText = "Format:"; + update_channel_row_format.appendChild(update_channel_format_column_left); + const update_channel_format_column_right = document.createElement('div'); + update_channel_format_column_right.className = "update-channel-column-right"; + update_channel_row_format.appendChild(update_channel_format_column_right); + const update_channel_format = document.createElement('select'); + update_channel_format.className = "update-channel-format"; + update_channel_format.setAttribute("data-name", update_channel.name); + update_channel_format.disabled = locked; + update_channel_format_column_right.appendChild(update_channel_format); + const update_channel_format_option_ruleset = document.createElement('option'); + update_channel_format_option_ruleset.value = "ruleset"; + update_channel_format_option_ruleset.innerText = "ruleset"; + update_channel_format_option_ruleset.defaultSelected = true; + update_channel_format_option_ruleset.selected = (update_channel.format == "ruleset"); + update_channel_format.appendChild(update_channel_format_option_ruleset); + const update_channel_format_option_bloom = document.createElement('option'); + update_channel_format_option_bloom.value = "bloom"; + update_channel_format_option_bloom.innerText = "bloom"; + update_channel_format_option_bloom.selected = (update_channel.format == "bloom"); + update_channel_format.appendChild(update_channel_format_option_bloom); + const update_channel_row_jwk = document.createElement('div'); update_channel_row_jwk.className = "update-channel-row-jwk"; update_channel_div.appendChild(update_channel_row_jwk); @@ -126,7 +139,7 @@ document.addEventListener("DOMContentLoaded", () => { const update_channel_jwk = document.createElement('textarea'); update_channel_jwk.className = "update-channel-jwk"; update_channel_jwk.setAttribute("data-name", update_channel.name); - update_channel_jwk.disabled = pinned; + update_channel_jwk.disabled = locked; update_channel_jwk.innerText = JSON.stringify(update_channel.jwk); update_channel_jwk_column_right.appendChild(update_channel_jwk); @@ -144,7 +157,7 @@ document.addEventListener("DOMContentLoaded", () => { update_channel_path_prefix.setAttribute("type", "text"); update_channel_path_prefix.className = "update-channel-path-prefix"; update_channel_path_prefix.setAttribute("data-name", update_channel.name); - update_channel_path_prefix.disabled = pinned; + update_channel_path_prefix.disabled = locked; update_channel_path_prefix.value = update_channel.update_path_prefix; update_channel_path_prefix_column_right.appendChild(update_channel_path_prefix); @@ -153,6 +166,9 @@ document.addEventListener("DOMContentLoaded", () => { update_channel_div.appendChild(clearer); const update_channel_row_scope = document.createElement('div'); + if(update_channel.format == "bloom") { + update_channel_row_scope.style.display = "none"; + } update_channel_row_scope.className = "update-channel-row-scope"; update_channel_div.appendChild(update_channel_row_scope); const update_channel_scope_column_left = document.createElement('div'); @@ -166,7 +182,7 @@ document.addEventListener("DOMContentLoaded", () => { update_channel_scope.setAttribute("type", "text"); update_channel_scope.className = "update-channel-scope"; update_channel_scope.setAttribute("data-name", update_channel.name); - update_channel_scope.disabled = pinned; + update_channel_scope.disabled = locked; update_channel_scope.value = update_channel.scope; update_channel_scope_column_right.appendChild(update_channel_scope); @@ -183,13 +199,13 @@ document.addEventListener("DOMContentLoaded", () => { const update_channel_update = document.createElement('button'); update_channel_update.className = "update-channel-update"; update_channel_update.setAttribute("data-name", update_channel.name); - update_channel_update.disabled = pinned; + update_channel_update.disabled = locked; update_channel_update.innerText = chrome.i18n.getMessage("options_update"); update_channel_controls_column_right.appendChild(update_channel_update); const update_channel_delete = document.createElement('button'); update_channel_delete.className = "update-channel-update"; update_channel_delete.setAttribute("data-name", update_channel.name); - update_channel_delete.disabled = pinned; + update_channel_delete.disabled = locked; update_channel_delete.innerText = chrome.i18n.getMessage("options_delete"); update_channel_controls_column_right.appendChild(update_channel_delete); @@ -197,6 +213,13 @@ document.addEventListener("DOMContentLoaded", () => { clearer.className = "clearer"; update_channel_div.appendChild(clearer); + update_channel_format.addEventListener("change", () => { + if(update_channel_format.value == "bloom") { + update_channel_row_scope.style.display = "none"; + } else { + update_channel_row_scope.style.display = "block"; + } + }); update_channel_delete.addEventListener("click", () => { sendMessage("delete_update_channel", update_channel.name, () => { render_update_channels(); @@ -206,6 +229,7 @@ document.addEventListener("DOMContentLoaded", () => { update_channel_update.addEventListener("click", () => { sendMessage("update_update_channel", { name: update_channel.name, + format: update_channel_format.value, jwk: JSON.parse(update_channel_jwk.value), update_path_prefix: update_channel_path_prefix.value, scope: update_channel_scope.value @@ -229,7 +253,7 @@ document.addEventListener("DOMContentLoaded", () => { create_update_channel_element( update_channel, item.last_updated[update_channel.name], - true + true, ) ); @@ -242,7 +266,7 @@ document.addEventListener("DOMContentLoaded", () => { create_update_channel_element( update_channel, item.last_updated[update_channel.name], - false + update_channel.locked === true, ) ); } @@ -295,7 +319,7 @@ document.addEventListener("DOMContentLoaded", () => { sendMessage("remove_rule", { ruleset: userRule, src: 'options' }); }); } - }) + }); // HTTPS Everywhere Sites Disabled section in General Settings module getOption_("disabledList", [], function(item) { @@ -329,14 +353,29 @@ document.addEventListener("DOMContentLoaded", () => { const add_disabled_site = document.getElementById("add-disabled-site"); const disabled_site_input = document.getElementById("disabled-site"); + const add_disabled_site_invalid_host = document.getElementById('add-disabled-site-invalid-host'); disabled_site_input.setAttribute("placeholder", chrome.i18n.getMessage("options_enterDisabledSite")); - + function isValidHost(host) { + try { + new URL(`http://${host}/`); + return true; + } catch { + return false; + } + } add_disabled_site.addEventListener("click", function() { - sendMessage("disable_on_site", disabled_site_input.value, okay => { - if (okay) { - chrome.tabs.reload(); - } - }); + const host = disabled_site_input.value; + + if (isValidHost(host)) { + hide(add_disabled_site_invalid_host); + sendMessage("disable_on_site", disabled_site_input.value, okay => { + if (okay) { + chrome.tabs.reload(); + } + }); + } else { + show(add_disabled_site_invalid_host); + } }); add_update_channel.addEventListener("click", () => { diff --git a/data/extensions/https-everywhere@eff.org/pages/popup/index.html b/data/extensions/https-everywhere@eff.org/pages/popup/index.html index 9116280..d9441f2 100644 --- a/data/extensions/https-everywhere@eff.org/pages/popup/index.html +++ b/data/extensions/https-everywhere@eff.org/pages/popup/index.html @@ -88,12 +88,11 @@ <h3 data-i18n="chrome_experimental_rules"></h3> <h2 class="description" data-i18n="chrome_experimental_rules_description"></h2> </section> - - <section id="resetButton" class="options"> - <a href="javascript:void 0" id="reset-to-defaults" class="button" data-i18n="prefs_reset_defaults"></a> - </section> </div> + </section> + <section id="resetButton" class="options"> + <a href="javascript:void 0" id="reset-to-defaults" class="button" data-i18n="prefs_reset_defaults"></a> </section> <footer> diff --git a/data/extensions/https-everywhere@eff.org/pages/popup/style.css b/data/extensions/https-everywhere@eff.org/pages/popup/style.css index 38a35ac..304f2f8 100644 --- a/data/extensions/https-everywhere@eff.org/pages/popup/style.css +++ b/data/extensions/https-everywhere@eff.org/pages/popup/style.css @@ -1,18 +1,11 @@ -:root { - --https-blue: #0a84ff; - --darker-blue: #0060df; - --text-main: #000; - --text-secondary: #464646; - --light-grey: #ececec; - --space: 5px; -} +@import "../main.css"; body { color: var(--text-secondary); font-family: 'Lucida Grande', 'Segoe UI', Tahoma, 'DejaVu Sans', Arial, sans-serif; margin: 0; max-width: 400px; - min-width: 380px; + min-width: 360px; } header { @@ -80,23 +73,6 @@ footer a.button { border-bottom: var(--light-grey) solid 1px; } -.button { - border: var(--https-blue) solid 1px; - color: var(--text-main); - display: block; - font-size: 12px; - font-weight: bold; - margin: var(--space) auto; - padding: 10px; - text-align: center; - text-decoration: none; -} - -.button:hover { - background-color: var(--darker-blue); - color: #fff -} - .see_more__prompt { color: var(--text-main); cursor: pointer; @@ -306,6 +282,15 @@ input:checked+label:after { display: block; } +#resetButton { + display: inline-flex; + margin: 10px; + width: 95%; +} +#reset-to-defaults { + width: 100%; +} + /* Initially hide section (until rules get added). */ section.rules { display: none; diff --git a/data/extensions/https-everywhere@eff.org/pages/popup/ux.js b/data/extensions/https-everywhere@eff.org/pages/popup/ux.js index 48de5b1..f38f225 100644 --- a/data/extensions/https-everywhere@eff.org/pages/popup/ux.js +++ b/data/extensions/https-everywhere@eff.org/pages/popup/ux.js @@ -153,7 +153,7 @@ function updateEnabledDisabledUI() { e('disableButton').style.visibility = "visible"; // Hide or show the rules sections if (item.globalEnabled) { - document.body.className = "" + document.body.className = ""; e('onoffswitch_label').innerText = chrome.i18n.getMessage("menu_globalEnable"); showHttpNowhereUI(); } else { @@ -172,7 +172,7 @@ function toggleEnabledDisabled() { chrome.tabs.reload(); window.close(); }, 1500); - } + }; getOption_('globalEnabled', true, function(item) { setOption_('globalEnabled', !item.globalEnabled, extension_toggle_effect); @@ -253,9 +253,9 @@ document.addEventListener("DOMContentLoaded", function () { timestamp_span.className = "rulesets-version"; timestamp_span.innerText = `${chrome.i18n.getMessage("about_rulesets_version")} ${update_channel_name}: ${ruleset_version_string}`; this.appendChild(timestamp_span); - } + }; - sendMessage("get_ruleset_timestamps", null, timestamps => { + sendMessage("get_update_channel_timestamps", null, timestamps => { let replaces = timestamps.some(([update_channel, timestamp]) => update_channel.replaces_default_rulesets && timestamp > 0 ); @@ -408,10 +408,10 @@ function getTab(callback) { // to open in regular tab even if the popup is opened in incognito mode. document.addEventListener('click', e => { - const { target } = e + const { target } = e; if (target.matches('a[target="_blank"]')) { - chrome.tabs.create({ url: target.href }) - e.preventDefault() + chrome.tabs.create({ url: target.href }); + e.preventDefault(); } -}) +}); |