diff --git a/chromium/pages/cancel/index.html b/chromium/pages/cancel/index.html index 3522301bc83b..9dbca111a94a 100644 --- a/chromium/pages/cancel/index.html +++ b/chromium/pages/cancel/index.html @@ -18,6 +18,7 @@

URL:

+
diff --git a/chromium/pages/cancel/style.css b/chromium/pages/cancel/style.css index 9b91ca3218ed..f28b21b4b0ab 100644 --- a/chromium/pages/cancel/style.css +++ b/chromium/pages/cancel/style.css @@ -20,7 +20,7 @@ h1 img { } #url-paragraph { - display: block; + display: inline-flex; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; @@ -33,7 +33,6 @@ button { color: #fff; cursor: pointer; padding: 0.5em 1em; - display: block; float: none; font-size: 12pt; margin: 8px 0; diff --git a/chromium/pages/cancel/ux.js b/chromium/pages/cancel/ux.js index 63ec8e4245da..f08595949384 100644 --- a/chromium/pages/cancel/ux.js +++ b/chromium/pages/cancel/ux.js @@ -45,6 +45,7 @@ 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; @@ -60,6 +61,61 @@ 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") + '?')) { sendMessage("disable_on_site_once", url.host, () => { diff --git a/src/chrome/locale/en/https-everywhere.dtd b/src/chrome/locale/en/https-everywhere.dtd index b93c702ca9ca..f69579a05df3 100644 --- a/src/chrome/locale/en/https-everywhere.dtd +++ b/src/chrome/locale/en/https-everywhere.dtd @@ -46,6 +46,8 @@ + +