Index: chrome/common/extensions/docs/examples/api/windows/merge_windows/background.js |
diff --git a/chrome/common/extensions/docs/examples/api/windows/merge_windows/background.js b/chrome/common/extensions/docs/examples/api/windows/merge_windows/background.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..e9789210d1f6d62c69aaa38468a311e0ee04a2bc |
--- /dev/null |
+++ b/chrome/common/extensions/docs/examples/api/windows/merge_windows/background.js |
@@ -0,0 +1,45 @@ |
+// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+var targetWindow = null; |
+var tabCount = 0; |
+ |
+function start(tab) { |
+ chrome.windows.getCurrent(getWindows); |
+} |
+ |
+function getWindows(win) { |
+ targetWindow = win; |
+ chrome.tabs.getAllInWindow(targetWindow.id, getTabs); |
+} |
+ |
+function getTabs(tabs) { |
+ tabCount = tabs.length; |
+ // We require all the tab information to be populated. |
+ chrome.windows.getAll({"populate" : true}, moveTabs); |
+} |
+ |
+function moveTabs(windows) { |
+ var numWindows = windows.length; |
+ var tabPosition = tabCount; |
+ |
+ for (var i = 0; i < numWindows; i++) { |
+ var win = windows[i]; |
+ |
+ if (targetWindow.id != win.id) { |
+ var numTabs = win.tabs.length; |
+ |
+ for (var j = 0; j < numTabs; j++) { |
+ var tab = win.tabs[j]; |
+ // Move the tab into the window that triggered the browser action. |
+ chrome.tabs.move(tab.id, |
+ {"windowId": targetWindow.id, "index": tabPosition}); |
+ tabPosition++; |
+ } |
+ } |
+ } |
+} |
+ |
+// Set up a click handler so that we can merge all the windows. |
+chrome.browserAction.onClicked.addListener(start); |