From b7acfbb2f96fc164c4ad5d858bc82be7984bd4c4 Mon Sep 17 00:00:00 2001 From: kkapsner Date: Tue, 18 Jul 2017 16:19:32 +0200 Subject: [PATCH] Page action refinements. --- pageAction/pageAction.css | 12 +++++++++++ pageAction/pageAction.js | 42 ++++++++++++++++++++++++++++++++------- 2 files changed, 47 insertions(+), 7 deletions(-) diff --git a/pageAction/pageAction.css b/pageAction/pageAction.css index cf62b45..f52c345 100644 --- a/pageAction/pageAction.css +++ b/pageAction/pageAction.css @@ -4,10 +4,22 @@ body { margin: 5px; + white-space: nowrap; } #prints { list-style: none; padding: 0; margin: 0; +} + +button.inspectImage { + display: none; +} +.imageAvailable button.inspectImage { + display: initial; +} + +img { + border: 1px solid black; } \ No newline at end of file diff --git a/pageAction/pageAction.js b/pageAction/pageAction.js index 9f7e6d2..46e5a7f 100644 --- a/pageAction/pageAction.js +++ b/pageAction/pageAction.js @@ -15,6 +15,25 @@ function modalPrompt(message, defaultValue){ }); } +function log(...args){ + function leftPad(str, char, pad){ + str = "" + str; + return char.repeat(pad - str.length) + str; + } + args.unshift("page action script:"); + var now = new Date(); + args.unshift( + now.getFullYear() + "-" + + leftPad(now.getMonth() + 1, "0", 2) + "-" + + leftPad(now.getDate(), "0", 2) + " " + + leftPad(now.getHours(), "0", 2) + ":" + + leftPad(now.getMinutes(), "0", 2) + ":" + + leftPad(now.getSeconds(), "0", 2) + "." + + leftPad(now.getMilliseconds(), "0", 3) + ); + console.log.apply(console, args); +} + Promise.all([ browser.tabs.query({active: true, currentWindow: true}), browser.storage.local.get().then(function(data){ @@ -42,6 +61,9 @@ Promise.all([ displayCallingStack: function({errorStack}){ alert(parseErrorStack(errorStack)); }, + inspectImage: function({dataURL}){ + document.body.innerHTML = ""; + }, ignorelistDomain: function({url}){ var domain = url.host; modalPrompt( @@ -86,8 +108,8 @@ Promise.all([ var tab = tabs[0]; browser.runtime.onMessage.addListener(function(data){ if (Array.isArray(data["canvasBlocker-notifications"])){ + log("got notifications", data); var ul = document.getElementById("prints"); - ul.innerHTML = ""; data["canvasBlocker-notifications"].forEach(function(notification){ console.log(notification); @@ -115,18 +137,19 @@ Promise.all([ var actions = document.createElement("span"); actions.className = "actions"; - var data = {url, errorStack: notification.errorStack, notification}; - Object.keys(actionsCallbacks).forEach(function(key){ + var data = {url, errorStack: notification.errorStack, notification, dataURL: notification.dataURL}; + Object.keys(actionsCallbacks).forEach(function(key, i){ var button = document.createElement("button"); + button.className = key; button.textContent = browser.i18n.getMessage(key); button.addEventListener("click", function(){actionsCallbacks[key](data);}); actions.appendChild(button); + if (i % 3 === 2){ + actions.appendChild(document.createElement("br")); + } }); if (notification.dataURL){ - var button = document.createElement("button"); - button.textContent = browser.i18n.getMessage("inspectImage"); - button.addEventListener("click", function(){document.body.innerHTML = "";}); - actions.appendChild(button); + actions.classList.add("imageAvailable"); } li.appendChild(actions); @@ -134,12 +157,17 @@ Promise.all([ }); } }); + log("clearing the display"); + var ul = document.getElementById("prints"); + ul.innerHTML = ""; + log("request notifications from tab", tab.id); browser.tabs.sendMessage( tab.id, { "canvasBlocker-sendNotifications": tab.id } ); + log("waiting for notifications"); }).catch(function(e){ console.error(e); }); \ No newline at end of file