Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(207)

Side by Side Diff: chrome/browser/resources/cryptotoken/webrequestsender.js

Issue 2939273002: DO NOT SUBMIT: what chrome/browser/resources/ could eventually look like with clang-format (Closed)
Patch Set: Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** 5 /**
6 * @fileoverview Provides a representation of a web request sender, and 6 * @fileoverview Provides a representation of a web request sender, and
7 * utility functions for creating them. 7 * utility functions for creating them.
8 */ 8 */
9 'use strict'; 9 'use strict';
10 10
(...skipping 11 matching lines...) Expand all
22 * tab. 22 * tab.
23 * @param {MessageSender} messageSender The message sender. 23 * @param {MessageSender} messageSender The message sender.
24 * @return {?WebRequestSender} The sender's origin and tab, or null if the 24 * @return {?WebRequestSender} The sender's origin and tab, or null if the
25 * sender is invalid. 25 * sender is invalid.
26 */ 26 */
27 function createSenderFromMessageSender(messageSender) { 27 function createSenderFromMessageSender(messageSender) {
28 var origin = getOriginFromUrl(/** @type {string} */ (messageSender.url)); 28 var origin = getOriginFromUrl(/** @type {string} */ (messageSender.url));
29 if (!origin) { 29 if (!origin) {
30 return null; 30 return null;
31 } 31 }
32 var sender = { 32 var sender = {origin: origin};
33 origin: origin
34 };
35 if (messageSender.tlsChannelId) { 33 if (messageSender.tlsChannelId) {
36 sender.tlsChannelId = messageSender.tlsChannelId; 34 sender.tlsChannelId = messageSender.tlsChannelId;
37 } 35 }
38 if (messageSender.tab) { 36 if (messageSender.tab) {
39 sender.tabId = messageSender.tab.id; 37 sender.tabId = messageSender.tab.id;
40 } 38 }
41 return sender; 39 return sender;
42 } 40 }
43 41
44 /** 42 /**
(...skipping 23 matching lines...) Expand all
68 function getTabIdWhenPossible(sender) { 66 function getTabIdWhenPossible(sender) {
69 if (sender.tabId) { 67 if (sender.tabId) {
70 // Already got it? Done. 68 // Already got it? Done.
71 return Promise.resolve(true); 69 return Promise.resolve(true);
72 } else if (!chrome.tabs) { 70 } else if (!chrome.tabs) {
73 // Can't get it? Done. (This happens to packaged apps, which can't access 71 // Can't get it? Done. (This happens to packaged apps, which can't access
74 // chrome.tabs.) 72 // chrome.tabs.)
75 return Promise.resolve(true); 73 return Promise.resolve(true);
76 } else { 74 } else {
77 return new Promise(function(resolve, reject) { 75 return new Promise(function(resolve, reject) {
78 chrome.tabs.query({active: true, lastFocusedWindow: true}, 76 chrome.tabs.query(
79 function(tabs) { 77 {active: true, lastFocusedWindow: true}, function(tabs) {
80 if (!tabs.length) { 78 if (!tabs.length) {
81 // Safety check. 79 // Safety check.
82 reject(false); 80 reject(false);
83 return; 81 return;
84 } 82 }
85 var tab = tabs[0]; 83 var tab = tabs[0];
86 tabMatchesOrigin(tab, sender.origin).then(function(tabId) { 84 tabMatchesOrigin(tab, sender.origin)
87 sender.tabId = tabId; 85 .then(
88 resolve(true); 86 function(tabId) {
89 }, function() { 87 sender.tabId = tabId;
90 // Didn't match? Check if the debugger is open. 88 resolve(true);
91 if (tab.url.indexOf('chrome-devtools://') != 0) { 89 },
92 reject(false); 90 function() {
93 return; 91 // Didn't match? Check if the debugger is open.
94 } 92 if (tab.url.indexOf('chrome-devtools://') != 0) {
95 // Debugger active: find first tab with the sender's origin. 93 reject(false);
96 chrome.tabs.query({active: true}, function(tabs) { 94 return;
97 if (!tabs.length) { 95 }
98 // Safety check. 96 // Debugger active: find first tab with the sender's
99 reject(false); 97 // origin.
100 return; 98 chrome.tabs.query({active: true}, function(tabs) {
101 } 99 if (!tabs.length) {
102 var numRejected = 0; 100 // Safety check.
103 for (var i = 0; i < tabs.length; i++) { 101 reject(false);
104 tab = tabs[i]; 102 return;
105 tabMatchesOrigin(tab, sender.origin).then(function(tabId) { 103 }
106 sender.tabId = tabId; 104 var numRejected = 0;
107 resolve(true); 105 for (var i = 0; i < tabs.length; i++) {
108 }, function() { 106 tab = tabs[i];
109 if (++numRejected >= tabs.length) { 107 tabMatchesOrigin(tab, sender.origin)
110 // None matches: reject. 108 .then(
111 reject(false); 109 function(tabId) {
112 } 110 sender.tabId = tabId;
113 }); 111 resolve(true);
114 } 112 },
115 }); 113 function() {
116 }); 114 if (++numRejected >= tabs.length) {
115 // None matches: reject.
116 reject(false);
117 }
118 });
119 }
120 });
121 });
117 }); 122 });
118 }); 123 });
119 } 124 }
120 } 125 }
121 126
122 /** 127 /**
123 * Checks whether the given tab is in the foreground, i.e. is the active tab 128 * Checks whether the given tab is in the foreground, i.e. is the active tab
124 * of the focused window. 129 * of the focused window.
125 * @param {number} tabId The tab id to check. 130 * @param {number} tabId The tab id to check.
126 * @return {Promise<boolean>} A promise for the result of the check. 131 * @return {Promise<boolean>} A promise for the result of the check.
127 */ 132 */
128 function tabInForeground(tabId) { 133 function tabInForeground(tabId) {
129 return new Promise(function(resolve, reject) { 134 return new Promise(function(resolve, reject) {
130 if (!chrome.tabs || !chrome.tabs.get) { 135 if (!chrome.tabs || !chrome.tabs.get) {
131 reject(); 136 reject();
137 return;
138 }
139 if (!chrome.windows || !chrome.windows.get) {
140 reject();
141 return;
142 }
143 chrome.tabs.get(tabId, function(tab) {
144 if (chrome.runtime.lastError) {
145 resolve(false);
132 return; 146 return;
133 } 147 }
134 if (!chrome.windows || !chrome.windows.get) { 148 if (!tab.active) {
135 reject(); 149 resolve(false);
136 return; 150 return;
137 } 151 }
138 chrome.tabs.get(tabId, function(tab) { 152 chrome.windows.get(tab.windowId, function(aWindow) {
139 if (chrome.runtime.lastError) { 153 resolve(aWindow && aWindow.focused);
140 resolve(false); 154 });
141 return; 155 });
142 }
143 if (!tab.active) {
144 resolve(false);
145 return;
146 }
147 chrome.windows.get(tab.windowId, function(aWindow) {
148 resolve(aWindow && aWindow.focused);
149 });
150 });
151 }); 156 });
152 } 157 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698