| Index: chrome/browser/resources/cryptotoken/webrequestsender.js
|
| diff --git a/chrome/browser/resources/cryptotoken/webrequestsender.js b/chrome/browser/resources/cryptotoken/webrequestsender.js
|
| index 329a6ab4074ff499970fd86f5a88f9c54e1c6f90..69767762822a181e5dcc265e6ac86f86cc3abdb9 100644
|
| --- a/chrome/browser/resources/cryptotoken/webrequestsender.js
|
| +++ b/chrome/browser/resources/cryptotoken/webrequestsender.js
|
| @@ -29,9 +29,7 @@ function createSenderFromMessageSender(messageSender) {
|
| if (!origin) {
|
| return null;
|
| }
|
| - var sender = {
|
| - origin: origin
|
| - };
|
| + var sender = {origin: origin};
|
| if (messageSender.tlsChannelId) {
|
| sender.tlsChannelId = messageSender.tlsChannelId;
|
| }
|
| @@ -75,45 +73,52 @@ function getTabIdWhenPossible(sender) {
|
| return Promise.resolve(true);
|
| } else {
|
| return new Promise(function(resolve, reject) {
|
| - chrome.tabs.query({active: true, lastFocusedWindow: true},
|
| - function(tabs) {
|
| + chrome.tabs.query(
|
| + {active: true, lastFocusedWindow: true}, function(tabs) {
|
| if (!tabs.length) {
|
| // Safety check.
|
| reject(false);
|
| return;
|
| }
|
| var tab = tabs[0];
|
| - tabMatchesOrigin(tab, sender.origin).then(function(tabId) {
|
| - sender.tabId = tabId;
|
| - resolve(true);
|
| - }, function() {
|
| - // Didn't match? Check if the debugger is open.
|
| - if (tab.url.indexOf('chrome-devtools://') != 0) {
|
| - reject(false);
|
| - return;
|
| - }
|
| - // Debugger active: find first tab with the sender's origin.
|
| - chrome.tabs.query({active: true}, function(tabs) {
|
| - if (!tabs.length) {
|
| - // Safety check.
|
| - reject(false);
|
| - return;
|
| - }
|
| - var numRejected = 0;
|
| - for (var i = 0; i < tabs.length; i++) {
|
| - tab = tabs[i];
|
| - tabMatchesOrigin(tab, sender.origin).then(function(tabId) {
|
| - sender.tabId = tabId;
|
| - resolve(true);
|
| - }, function() {
|
| - if (++numRejected >= tabs.length) {
|
| - // None matches: reject.
|
| - reject(false);
|
| - }
|
| - });
|
| - }
|
| - });
|
| - });
|
| + tabMatchesOrigin(tab, sender.origin)
|
| + .then(
|
| + function(tabId) {
|
| + sender.tabId = tabId;
|
| + resolve(true);
|
| + },
|
| + function() {
|
| + // Didn't match? Check if the debugger is open.
|
| + if (tab.url.indexOf('chrome-devtools://') != 0) {
|
| + reject(false);
|
| + return;
|
| + }
|
| + // Debugger active: find first tab with the sender's
|
| + // origin.
|
| + chrome.tabs.query({active: true}, function(tabs) {
|
| + if (!tabs.length) {
|
| + // Safety check.
|
| + reject(false);
|
| + return;
|
| + }
|
| + var numRejected = 0;
|
| + for (var i = 0; i < tabs.length; i++) {
|
| + tab = tabs[i];
|
| + tabMatchesOrigin(tab, sender.origin)
|
| + .then(
|
| + function(tabId) {
|
| + sender.tabId = tabId;
|
| + resolve(true);
|
| + },
|
| + function() {
|
| + if (++numRejected >= tabs.length) {
|
| + // None matches: reject.
|
| + reject(false);
|
| + }
|
| + });
|
| + }
|
| + });
|
| + });
|
| });
|
| });
|
| }
|
| @@ -127,26 +132,26 @@ function getTabIdWhenPossible(sender) {
|
| */
|
| function tabInForeground(tabId) {
|
| return new Promise(function(resolve, reject) {
|
| - if (!chrome.tabs || !chrome.tabs.get) {
|
| - reject();
|
| + if (!chrome.tabs || !chrome.tabs.get) {
|
| + reject();
|
| + return;
|
| + }
|
| + if (!chrome.windows || !chrome.windows.get) {
|
| + reject();
|
| + return;
|
| + }
|
| + chrome.tabs.get(tabId, function(tab) {
|
| + if (chrome.runtime.lastError) {
|
| + resolve(false);
|
| return;
|
| }
|
| - if (!chrome.windows || !chrome.windows.get) {
|
| - reject();
|
| + if (!tab.active) {
|
| + resolve(false);
|
| return;
|
| }
|
| - chrome.tabs.get(tabId, function(tab) {
|
| - if (chrome.runtime.lastError) {
|
| - resolve(false);
|
| - return;
|
| - }
|
| - if (!tab.active) {
|
| - resolve(false);
|
| - return;
|
| - }
|
| - chrome.windows.get(tab.windowId, function(aWindow) {
|
| - resolve(aWindow && aWindow.focused);
|
| - });
|
| - });
|
| + chrome.windows.get(tab.windowId, function(aWindow) {
|
| + resolve(aWindow && aWindow.focused);
|
| + });
|
| + });
|
| });
|
| }
|
|
|