OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 This file contains the implementation of the Chrome extension | 6 * @fileoverview This file contains the implementation of the Chrome extension |
7 * tab APIs for the CEEE Firefox add-on. This file is loaded by the | 7 * tab APIs for the CEEE Firefox add-on. This file is loaded by the |
8 * overlay.xul file, and requires that overlay.js has already been loaded. | 8 * overlay.xul file, and requires that overlay.js has already been loaded. |
9 * | 9 * |
10 * @supported Firefox 3.x | 10 * @supported Firefox 3.x |
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
251 CEEE_globals.MAIN_BROWSER_ID); | 251 CEEE_globals.MAIN_BROWSER_ID); |
252 if (!mainBrowser) { | 252 if (!mainBrowser) { |
253 throw(new Error(CEEE_tabs_internal_.CMD_GET_SELECTED_TAB + | 253 throw(new Error(CEEE_tabs_internal_.CMD_GET_SELECTED_TAB + |
254 ': cannot find main browser win id=' + id)); | 254 ': cannot find main browser win id=' + id)); |
255 } | 255 } |
256 | 256 |
257 var tab = mainBrowser.selectedTab; | 257 var tab = mainBrowser.selectedTab; |
258 return this.buildTabValue(mainBrowser, tab); | 258 return this.buildTabValue(mainBrowser, tab); |
259 }; | 259 }; |
260 | 260 |
| 261 CEEE_tabs_internal_.CMD_GET_CURRENT_TAB = 'tabs.getCurrent'; |
| 262 CEEE_tabs_internal_.getCurrentTab_ = function(cmd, data) { |
| 263 // TODO(rogerta@chromium.org): Revisit this implementation. I'm not sure |
| 264 // it strictly obeys the chrome extension API spec. |
| 265 var cfTab = data.tab; |
| 266 if (cfTab) { |
| 267 var win = CEEE_mozilla_windows.findWindowFromCfSessionId(cfTab.id); |
| 268 if (win) { |
| 269 var mainBrowser = win.document.getElementById( |
| 270 CEEE_globals.MAIN_BROWSER_ID); |
| 271 var tab = mainBrowser.selectedTab; |
| 272 return this.buildTabValue(mainBrowser, tab); |
| 273 } |
| 274 } |
| 275 }; |
| 276 |
261 CEEE_tabs_internal_.CMD_GET_ALL_TABS_IN_WINDOW = 'tabs.getAllInWindow'; | 277 CEEE_tabs_internal_.CMD_GET_ALL_TABS_IN_WINDOW = 'tabs.getAllInWindow'; |
262 CEEE_tabs_internal_.getAllTabsInWindow_ = function(cmd, data) { | 278 CEEE_tabs_internal_.getAllTabsInWindow_ = function(cmd, data) { |
263 var args = CEEE_json.decode(data.args); | 279 var args = CEEE_json.decode(data.args); |
264 var id = args[0]; | 280 var id = args[0]; |
265 var win = CEEE_mozilla_windows.findWindow(id); | 281 var win = CEEE_mozilla_windows.findWindow(id); |
266 if (!win || !win.document) { | 282 if (!win || !win.document) { |
267 throw(new Error(CEEE_tabs_internal_.CMD_GET_ALL_TABS_IN_WINDOW + | 283 throw(new Error(CEEE_tabs_internal_.CMD_GET_ALL_TABS_IN_WINDOW + |
268 ': invalid window id=' + id)); | 284 ': invalid window id=' + id)); |
269 } | 285 } |
270 | 286 |
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
448 */ | 464 */ |
449 function CEEE_initialize_tabs(ceeeInstance) { | 465 function CEEE_initialize_tabs(ceeeInstance) { |
450 CEEE_tabs_internal_.ceeeInstance_ = ceeeInstance; | 466 CEEE_tabs_internal_.ceeeInstance_ = ceeeInstance; |
451 var tabs = CEEE_tabs_internal_; | 467 var tabs = CEEE_tabs_internal_; |
452 ceeeInstance.registerExtensionHandler(tabs.CMD_GET_TAB, | 468 ceeeInstance.registerExtensionHandler(tabs.CMD_GET_TAB, |
453 tabs, | 469 tabs, |
454 tabs.getTab_); | 470 tabs.getTab_); |
455 ceeeInstance.registerExtensionHandler(tabs.CMD_GET_SELECTED_TAB, | 471 ceeeInstance.registerExtensionHandler(tabs.CMD_GET_SELECTED_TAB, |
456 tabs, | 472 tabs, |
457 tabs.getSelectedTab_); | 473 tabs.getSelectedTab_); |
| 474 ceeeInstance.registerExtensionHandler(tabs.CMD_GET_CURRENT_TAB, |
| 475 tabs, |
| 476 tabs.getCurrentTab_); |
458 ceeeInstance.registerExtensionHandler(tabs.CMD_GET_ALL_TABS_IN_WINDOW, | 477 ceeeInstance.registerExtensionHandler(tabs.CMD_GET_ALL_TABS_IN_WINDOW, |
459 tabs, | 478 tabs, |
460 tabs.getAllTabsInWindow_); | 479 tabs.getAllTabsInWindow_); |
461 ceeeInstance.registerExtensionHandler(tabs.CMD_CREATE_TAB, | 480 ceeeInstance.registerExtensionHandler(tabs.CMD_CREATE_TAB, |
462 tabs, | 481 tabs, |
463 tabs.createTab_); | 482 tabs.createTab_); |
464 ceeeInstance.registerExtensionHandler(tabs.CMD_UPDATE_TAB, | 483 ceeeInstance.registerExtensionHandler(tabs.CMD_UPDATE_TAB, |
465 tabs, | 484 tabs, |
466 tabs.updateTab_); | 485 tabs.updateTab_); |
467 ceeeInstance.registerExtensionHandler(tabs.CMD_MOVE_TAB, | 486 ceeeInstance.registerExtensionHandler(tabs.CMD_MOVE_TAB, |
468 tabs, | 487 tabs, |
469 tabs.moveTab_); | 488 tabs.moveTab_); |
470 ceeeInstance.registerExtensionHandler(tabs.CMD_REMOVE_TAB, | 489 ceeeInstance.registerExtensionHandler(tabs.CMD_REMOVE_TAB, |
471 tabs, | 490 tabs, |
472 tabs.removeTab_); | 491 tabs.removeTab_); |
473 ceeeInstance.registerExtensionHandler(tabs.CMD_EXECUTE_SCRIPT, | 492 ceeeInstance.registerExtensionHandler(tabs.CMD_EXECUTE_SCRIPT, |
474 tabs, | 493 tabs, |
475 tabs.executeScript_); | 494 tabs.executeScript_); |
476 ceeeInstance.registerExtensionHandler(tabs.CMD_INSERT_CSS, | 495 ceeeInstance.registerExtensionHandler(tabs.CMD_INSERT_CSS, |
477 tabs, | 496 tabs, |
478 tabs.insertCss_); | 497 tabs.insertCss_); |
479 | 498 |
480 return tabs; | 499 return tabs; |
481 } | 500 } |
OLD | NEW |