|
|
@ -69,11 +69,22 @@ vAPI.tabs.registerListeners = function() { |
|
|
|
/******************************************************************************/ |
|
|
|
|
|
|
|
vAPI.tabs.get = function(tabId, callback) { |
|
|
|
var onTabReady = function(tab) { |
|
|
|
// https://code.google.com/p/chromium/issues/detail?id=410868#c8
|
|
|
|
if ( chrome.runtime.lastError ) { |
|
|
|
return; |
|
|
|
} |
|
|
|
callback(tab); |
|
|
|
} |
|
|
|
if ( tabId !== null ) { |
|
|
|
chrome.tabs.get(tabId, callback); |
|
|
|
chrome.tabs.get(tabId, onTabReady); |
|
|
|
return; |
|
|
|
} |
|
|
|
var onTabReceived = function(tabs) { |
|
|
|
// https://code.google.com/p/chromium/issues/detail?id=410868#c8
|
|
|
|
if ( chrome.runtime.lastError ) { |
|
|
|
return; |
|
|
|
} |
|
|
|
callback(tabs[0]); |
|
|
|
}; |
|
|
|
chrome.tabs.query({ active: true, currentWindow: true }, onTabReceived); |
|
|
@ -181,8 +192,7 @@ vAPI.tabs.remove = function(tabId) { |
|
|
|
|
|
|
|
vAPI.tabs.injectScript = function(tabId, details, callback) { |
|
|
|
var onScriptExecuted = function() { |
|
|
|
// Must check `lastError` or else this may happen in the console:
|
|
|
|
// Unchecked runtime.lastError while running tabs.executeScript: The tab was closed.
|
|
|
|
// https://code.google.com/p/chromium/issues/detail?id=410868#c8
|
|
|
|
if ( chrome.runtime.lastError ) { |
|
|
|
} |
|
|
|
if ( typeof callback === 'function' ) { |
|
|
|