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

Side by Side Diff: chrome/test/data/extensions/samples/tabs/tabs_api.html

Issue 115337: TBR Revert "Revert "implemented extensions api windows.update()."" (Closed)
Patch Set: Created 11 years, 7 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
« no previous file with comments | « chrome/renderer/resources/extension_process_bindings.js ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 <html> 1 <html>
2 <head> 2 <head>
3 <script src="jstemplate_compiled.js" type="text/javascript"></script> 3 <script src="jstemplate_compiled.js" type="text/javascript"></script>
4 <script> 4 <script>
5 5
6 tabs = {}; 6 tabs = {};
7 tabIds = []; 7 tabIds = [];
8 8
9 focusedWindowId = undefined; 9 focusedWindowId = undefined;
10 currentWindowId = undefined; 10 currentWindowId = undefined;
11 11
12 function bootStrap() { 12 function bootStrap() {
13 chrome.windows.getCurrent(function(currentWindow) { 13 chrome.windows.getCurrent(function(currentWindow) {
14 currentWindowId = currentWindow.id; 14 currentWindowId = currentWindow.id;
15 chrome.windows.getLastFocused(function(focusedWindow) { 15 chrome.windows.getLastFocused(function(focusedWindow) {
16 focusedWindowId = focusedWindow.id; 16 focusedWindowId = focusedWindow.id;
17 loadWindowList(); 17 loadWindowList();
18 }); 18 });
19 }); 19 });
20 } 20 }
21 21
22 function isInt(i) {
23 return (typeof i == "number") && !(i % 1) && !isNaN(i);
24 }
25
22 function loadWindowList() { 26 function loadWindowList() {
23 chrome.windows.getAll(true, function(windowList) { 27 chrome.windows.getAll(true, function(windowList) {
24 tabs = {}; 28 tabs = {};
25 tabIds = []; 29 tabIds = [];
26 for (var i = 0; i < windowList.length; i++) { 30 for (var i = 0; i < windowList.length; i++) {
27 windowList[i].current = (windowList[i].id == currentWindowId); 31 windowList[i].current = (windowList[i].id == currentWindowId);
28 windowList[i].focused = (windowList[i].id == focusedWindowId); 32 windowList[i].focused = (windowList[i].id == focusedWindowId);
29 33
30 for (var j = 0; j < windowList[i].tabs.length; j++) { 34 for (var j = 0; j < windowList[i].tabs.length; j++) {
31 tabIds[tabIds.length] = windowList[i].tabs[j].id; 35 tabIds[tabIds.length] = windowList[i].tabs[j].id;
(...skipping 15 matching lines...) Expand all
47 51
48 return retval; 52 return retval;
49 } 53 }
50 54
51 function updateTab(id){ 55 function updateTab(id){
52 try { 56 try {
53 chrome.tabs.update(id, updateTabData(id)); 57 chrome.tabs.update(id, updateTabData(id));
54 } catch (e) { 58 } catch (e) {
55 alert(e); 59 alert(e);
56 } 60 }
57 } 61 }
58
59 62
60 function moveTabData(id) { 63 function moveTabData(id) {
61 return { 64 return {
62 'index': parseInt(document.getElementById('index_' + id).value), 65 'index': parseInt(document.getElementById('index_' + id).value),
63 'windowId': parseInt(document.getElementById('windowId_' + id).value) 66 'windowId': parseInt(document.getElementById('windowId_' + id).value)
64 } 67 }
65 } 68 }
66 function moveTab(id) { 69 function moveTab(id) {
67 try { 70 try {
68 chrome.tabs.move(id, moveTabData(id)); 71 chrome.tabs.move(id, moveTabData(id));
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 chrome.tabs.onSelectionChanged.addListener(function(tabId, props) { 178 chrome.tabs.onSelectionChanged.addListener(function(tabId, props) {
176 appendToLog('tabs.onSelectionChanged -- window: ' + props.windowId + ' tab: ' + tabId); 179 appendToLog('tabs.onSelectionChanged -- window: ' + props.windowId + ' tab: ' + tabId);
177 loadWindowList(); 180 loadWindowList();
178 }); 181 });
179 182
180 chrome.tabs.onRemoved.addListener(function(tabId) { 183 chrome.tabs.onRemoved.addListener(function(tabId) {
181 appendToLog('tabs.onRemoved -- tab: ' + tabId); 184 appendToLog('tabs.onRemoved -- tab: ' + tabId);
182 loadWindowList(); 185 loadWindowList();
183 }); 186 });
184 187
185 function isInt(i) {
186 return (typeof i == "number") && !(i % 1) && !isNaN(i);
187 }
188
189 function createWindow() { 188 function createWindow() {
190 var args = { 189 var args = {
191 'left': parseInt(document.getElementById('new_window_left').value), 190 'left': parseInt(document.getElementById('new_window_left').value),
192 'top': parseInt(document.getElementById('new_window_top').value), 191 'top': parseInt(document.getElementById('new_window_top').value),
193 'width': parseInt(document.getElementById('new_window_width').value), 192 'width': parseInt(document.getElementById('new_window_width').value),
194 'height': parseInt(document.getElementById('new_window_height').value), 193 'height': parseInt(document.getElementById('new_window_height').value),
195 'url': document.getElementById('new_window_url').value 194 'url': document.getElementById('new_window_url').value
196 } 195 }
197 196
198 if (!isInt(args.left)) 197 if (!isInt(args.left))
(...skipping 20 matching lines...) Expand all
219 window.tabs = tabList; 218 window.tabs = tabList;
220 var input = new JsExprContext(window); 219 var input = new JsExprContext(window);
221 var output = document.getElementById('window_' + window.id); 220 var output = document.getElementById('window_' + window.id);
222 jstProcess(input, output); 221 jstProcess(input, output);
223 222
224 appendToLog('window refreshed -- windowId: ' + window.id + ' tab count:' + window.tabs.length); 223 appendToLog('window refreshed -- windowId: ' + window.id + ' tab count:' + window.tabs.length);
225 }); 224 });
226 }); 225 });
227 } 226 }
228 227
228 function updateWindowData(id) {
229 var retval = {
230 left: parseInt(document.getElementById('left_' + id).value),
231 top: parseInt(document.getElementById('top_' + id).value),
232 width: parseInt(document.getElementById('width_' + id).value),
233 height: parseInt(document.getElementById('height_' + id).value)
234 }
235
236 if (!isInt(retval.left))
237 delete retval.left;
238 if (!isInt(retval.top))
239 delete retval.top;
240 if (!isInt(retval.width))
241 delete retval.width;
242 if (!isInt(retval.height))
243 delete retval.height;
244
245 return retval;
246 }
247
248 function updateWindow(id){
249 try {
250 chrome.windows.update(id, updateWindowData(id));
251 } catch (e) {
252 alert(e);
253 }
254 }
255
229 function removeWindow(windowId) { 256 function removeWindow(windowId) {
230 try { 257 try {
231 chrome.windows.remove(windowId, function() { 258 chrome.windows.remove(windowId, function() {
232 appendToLog('window: ' + windowId + ' removed.'); 259 appendToLog('window: ' + windowId + ' removed.');
233 }); 260 });
234 } catch (e) { 261 } catch (e) {
235 alert(e); 262 alert(e);
236 } 263 }
237 } 264 }
238 265
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 <div style="width: 40px; display:inline-block">url:</div> 320 <div style="width: 40px; display:inline-block">url:</div>
294 <input style="width: 90%" type="text" jsvalues="value:url;id:' url_' + id" /> 321 <input style="width: 90%" type="text" jsvalues="value:url;id:' url_' + id" />
295 </div> 322 </div>
296 <div><input type="checkbox" jsvalues="checked:selected; id:'sele cted_' + id" /> Selected</div> 323 <div><input type="checkbox" jsvalues="checked:selected; id:'sele cted_' + id" /> Selected</div>
297 </div> 324 </div>
298 <button onclick="updateTab(this.jstdata)" jsvalues=".jstdata:id">U pdate Tab</button> 325 <button onclick="updateTab(this.jstdata)" jsvalues=".jstdata:id">U pdate Tab</button>
299 <button onclick="removeTab(this.jstdata);" jsvalues=".jstdata:id"> Close Tab</button> 326 <button onclick="removeTab(this.jstdata);" jsvalues=".jstdata:id"> Close Tab</button>
300 </div> 327 </div>
301 </div> 328 </div>
302 </div> 329 </div>
330 <button onclick="updateWindow(this.jstdata);" jsvalues=".jstdata:id">Upd ate Window</button>
303 <button onclick="removeWindow(this.jstdata);" jsvalues=".jstdata:id">Clo se Window</button> 331 <button onclick="removeWindow(this.jstdata);" jsvalues=".jstdata:id">Clo se Window</button>
304 <button onclick="refreshSelectedTab(this.jstdata);" jsvalues=".jstdata:i d">Refresh Selected Tab</button> 332 <button onclick="refreshSelectedTab(this.jstdata);" jsvalues=".jstdata:i d">Refresh Selected Tab</button>
305 </div> 333 </div>
306 </div> 334 </div>
307 <div style="background-color: #EEEEBB; margin: 20px; padding: 8px"> 335 <div style="background-color: #EEEEBB; margin: 20px; padding: 8px">
308 <h3 style="text-align: center; margin: 8px"> Create Window</h3> 336 <h3 style="text-align: center; margin: 8px"> Create Window</h3>
309 <div style="margin: 8px"> 337 <div style="margin: 8px">
310 <div style="width: 300px; display: inline-block"> 338 <div style="width: 300px; display: inline-block">
311 left: <input style="width: 20px" type="text" id="new_window_left" /> 339 left: <input style="width: 20px" type="text" id="new_window_left" />
312 top: <input style="width: 20px" type="text" id="new_window_top" /> 340 top: <input style="width: 20px" type="text" id="new_window_top" />
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
348 <button onclick="loadWindowList();">Refresh</button> 376 <button onclick="loadWindowList();">Refresh</button>
349 <button onclick="updateAll();">Update All</button> 377 <button onclick="updateAll();">Update All</button>
350 <button onclick="moveAll();">Move All</button> 378 <button onclick="moveAll();">Move All</button>
351 <button onclick="clearLog();">-->Clear Log</button> 379 <button onclick="clearLog();">-->Clear Log</button>
352 <button onclick="chrome.windows.create();">New Window</button> 380 <button onclick="chrome.windows.create();">New Window</button>
353 </div> 381 </div>
354 <div id="log" style="background-color: #EEAAEE; margin: 20px; padding: 8px"> 382 <div id="log" style="background-color: #EEAAEE; margin: 20px; padding: 8px">
355 </div> 383 </div>
356 </body> 384 </body>
357 </html> 385 </html>
OLDNEW
« no previous file with comments | « chrome/renderer/resources/extension_process_bindings.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698