Remove shortcuts and adapt extension to activeTab permission
diff --git a/src/js/popup.js b/src/js/popup.js
index 2319055..5eeb471 100644
--- a/src/js/popup.js
+++ b/src/js/popup.js
@@ -72,80 +72,98 @@
document.body.style.minWidth = "140px";
var isScriptLoad = false;
- chrome.tabs.getSelected(null, function(tab) {
+ chrome.tabs.query({
+ active: true,
+ }, function(tabs) {
+ if (tabs.length < 1) {
+ console.error('Expected 1 tab');
+ return;
+ }
+ var tab = tabs[0];
if (tab.url.indexOf('chrome') == 0 || tab.url.indexOf('about') == 0) {
i18nReplace('tip', 'special');
return;
- } else {
- $('tip').style.display = 'none';
- $('captureSpecialPageItem').style.display = 'block';
- showOption();
}
- chrome.tabs.sendMessage(tab.id, {msg: 'is_page_capturable'},
- function(response) {
- isScriptLoad = true;
- if (response.msg == 'capturable') {
- $('tip').style.display = 'none';
- $('captureSpecialPageItem').style.display = 'none';
- $('captureWindowItem').style.display = 'block';
- $('captureAreaItem').style.display = 'block';
- $('captureWebpageItem').style.display = 'block';
- var textWidth = $('captureWindowText')['scrollWidth'];
- resizeDivWidth('captureWindowText', textWidth);
- resizeDivWidth('captureAreaText', textWidth);
- resizeDivWidth('captureWebpageText', textWidth);
- var bg = chrome.extension.getBackgroundPage();
- if (bg.screenshot.isThisPlatform('mac')) {
- $('captureAreaShortcut').innerText = '\u2325\u2318R';
- $('captureWindowShortcut').innerText = '\u2325\u2318V';
- $('captureWebpageShortcut').innerText = '\u2325\u2318H';
- }
- } else if (response.msg == 'uncapturable') {
- i18nReplace('tip', 'special');
- $('tip').style.display = 'block';
- } else {
- i18nReplace('tip', 'loading');
- }
- });
- });
- chrome.tabs.executeScript(null, {file: 'js/isLoad.js'});
- var insertScript = function() {
- if (isScriptLoad == false) {
- chrome.tabs.getSelected(null, function(tab) {
- if (tab.url.indexOf('chrome') == 0 ||
- tab.url.indexOf('about') == 0) {
- i18nReplace('tip', 'special');
- } else {
- $('tip').style.display = 'none';
- $('captureSpecialPageItem').style.display = 'block';
- showOption();
- }
- });
- }
- var captureItems = document.querySelectorAll('li.menuI');
- var showSeparator = false;
- for (var i = 0; i < captureItems.length; i++) {
- if (window.getComputedStyle(captureItems[i]).display != 'none') {
- showSeparator = true;
- break;
- }
- }
- $('separatorItem').style.display = showSeparator ? 'block' : 'none';
- }
- setTimeout(insertScript, 500);
+ chrome.tabs.executeScript({ file: 'js/page.js' }, _ => {
+ chrome.tabs.executeScript(null, {file: 'js/isLoad.js'}, _ => {
+ $('tip').style.display = 'none';
+ $('captureSpecialPageItem').style.display = 'block';
+ showOption();
- // Update hot key.
- $('captureSpecialPageItem').addEventListener('click', function(e) {
- toDo('capture_special_page');
- });
- $('captureAreaItem').addEventListener('click', function(e) {
- toDo('capture_area');
- });
- $('captureWindowItem').addEventListener('click', function(e) {
- toDo('capture_window');
- });
- $('captureWebpageItem').addEventListener('click', function(e) {
- toDo('capture_webpage');
+ chrome.tabs.sendMessage(tab.id, {msg: 'is_page_capturable'},
+ response => {
+ isScriptLoad = true;
+ if (response.msg == 'capturable') {
+ $('tip').style.display = 'none';
+ $('captureSpecialPageItem').style.display = 'none';
+ $('captureWindowItem').style.display = 'block';
+ $('captureAreaItem').style.display = 'block';
+ $('captureWebpageItem').style.display = 'block';
+ var textWidth = $('captureWindowText')['scrollWidth'];
+ resizeDivWidth('captureWindowText', textWidth);
+ resizeDivWidth('captureAreaText', textWidth);
+ resizeDivWidth('captureWebpageText', textWidth);
+ var bg = chrome.extension.getBackgroundPage();
+ if (bg.screenshot.isThisPlatform('mac')) {
+ $('captureAreaShortcut').innerText = '\u2325\u2318R';
+ $('captureWindowShortcut').innerText = '\u2325\u2318V';
+ $('captureWebpageShortcut').innerText = '\u2325\u2318H';
+ }
+ } else if (response.msg == 'uncapturable') {
+ i18nReplace('tip', 'special');
+ $('tip').style.display = 'block';
+ } else {
+ i18nReplace('tip', 'loading');
+ }
+ });
+
+ var insertScript = function() {
+ if (isScriptLoad == false) {
+ chrome.tabs.query({
+ active: true,
+ }, function(tabs) {
+ if (tabs.length < 1) {
+ console.error('Expected 1 tab.');
+ return;
+ }
+ var tab = tabs[0];
+ if (tab.url.indexOf('chrome') == 0 ||
+ tab.url.indexOf('about') == 0) {
+ i18nReplace('tip', 'special');
+ } else {
+ $('tip').style.display = 'none';
+ $('captureSpecialPageItem').style.display = 'block';
+ showOption();
+ }
+ });
+ }
+ var captureItems = document.querySelectorAll('li.menuI');
+ var showSeparator = false;
+ for (var i = 0; i < captureItems.length; i++) {
+ if (window.getComputedStyle(captureItems[i]).display != 'none') {
+ showSeparator = true;
+ break;
+ }
+ }
+ $('separatorItem').style.display = showSeparator ? 'block' : 'none';
+ }
+ setTimeout(insertScript, 500);
+
+ // Update hot key.
+ $('captureSpecialPageItem').addEventListener('click', function(e) {
+ toDo('capture_special_page');
+ });
+ $('captureAreaItem').addEventListener('click', function(e) {
+ toDo('capture_area');
+ });
+ $('captureWindowItem').addEventListener('click', function(e) {
+ toDo('capture_window');
+ });
+ $('captureWebpageItem').addEventListener('click', function(e) {
+ toDo('capture_webpage');
+ });
+ });
+ });
});
}