| OLD | NEW |
| 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 function loadWindowList() { | 9 function loadWindowList() { |
| 10 chromium.tabs.getWindows(undefined, function(windowList) { | 10 chromium.windows.getWindows(undefined, function(windowList) { |
| 11 tabs = {}; | 11 tabs = {}; |
| 12 tabIds = []; | 12 tabIds = []; |
| 13 for (var i = 0; i < windowList.length; i++) { | 13 for (var i = 0; i < windowList.length; i++) { |
| 14 for (var j = 0; j < windowList[i].tabs.length; j++) { | 14 for (var j = 0; j < windowList[i].tabs.length; j++) { |
| 15 tabIds[tabIds.length] = windowList[i].tabs[j].id; | 15 tabIds[tabIds.length] = windowList[i].tabs[j].id; |
| 16 tabs[windowList[i].tabs[j].id] = windowList[i].tabs[j]; | 16 tabs[windowList[i].tabs[j].id] = windowList[i].tabs[j]; |
| 17 } | 17 } |
| 18 } | 18 } |
| 19 | 19 |
| 20 var input = new JsExprContext(windowList); | 20 var input = new JsExprContext(windowList); |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 77 | 77 |
| 78 function appendToLog(logLine) { | 78 function appendToLog(logLine) { |
| 79 var log = document.getElementById('log'); | 79 var log = document.getElementById('log'); |
| 80 log.innerHTML = '<div> > ' + logLine + '</div>' + log.innerHTML; | 80 log.innerHTML = '<div> > ' + logLine + '</div>' + log.innerHTML; |
| 81 } | 81 } |
| 82 | 82 |
| 83 function clearLog() { | 83 function clearLog() { |
| 84 document.getElementById('log').innerHTML = ''; | 84 document.getElementById('log').innerHTML = ''; |
| 85 } | 85 } |
| 86 | 86 |
| 87 chromium.windows.onWindowCreated.addListener(function(windowId) { |
| 88 appendToLog('onWindowCreated -- window: ' + windowId); |
| 89 loadWindowList(); |
| 90 }); |
| 91 |
| 92 chromium.windows.onWindowRemoved.addListener(function(windowId) { |
| 93 appendToLog('onWindowRemoved -- window: ' + windowId); |
| 94 loadWindowList(); |
| 95 }); |
| 96 |
| 87 chromium.tabs.onTabCreated.addListener(function(data) { | 97 chromium.tabs.onTabCreated.addListener(function(data) { |
| 88 appendToLog('onTabCreated -- window: ' + data.windowId + ' tab: ' + data.tabId
+ ' index ' + data.index); | 98 appendToLog('onTabCreated -- window: ' + data.windowId + ' tab: ' + data.tabId
+ ' index ' + data.index); |
| 89 loadWindowList(); | 99 loadWindowList(); |
| 90 }); | 100 }); |
| 91 | 101 |
| 92 chromium.tabs.onTabAttached.addListener(function(data) { | 102 chromium.tabs.onTabAttached.addListener(function(data) { |
| 93 appendToLog('onTabAttached -- window: ' + data.windowId + ' tab: ' + data.tabI
d + ' index ' + data.index); | 103 appendToLog('onTabAttached -- window: ' + data.windowId + ' tab: ' + data.tabI
d + ' index ' + data.index); |
| 94 loadWindowList(); | 104 loadWindowList(); |
| 95 }); | 105 }); |
| 96 | 106 |
| 97 chromium.tabs.onTabMoved.addListener(function(data) { | 107 chromium.tabs.onTabMoved.addListener(function(data) { |
| 98 appendToLog('onTabMoved -- window: ' + data.windowId + ' tab: ' + data.tabId +
' from ' + data.fromIndex + ' to ' + data.toIndex); | 108 appendToLog('onTabMoved -- window: ' + data.windowId + ' tab: ' + data.tabId +
' from ' + data.fromIndex + ' to ' + data.toIndex); |
| 99 loadWindowList(); | 109 loadWindowList(); |
| 100 }); | 110 }); |
| 101 | 111 |
| 102 chromium.tabs.onTabDetached.addListener(function(data) { | 112 chromium.tabs.onTabDetached.addListener(function(data) { |
| 103 appendToLog('onTabDetached -- window: ' + data.windowId + ' tab: ' + data.tabI
d + ' index ' + data.index); | 113 appendToLog('onTabDetached -- window: ' + data.windowId + ' tab: ' + data.tabI
d + ' index ' + data.index); |
| 104 loadWindowList(); | 114 loadWindowList(); |
| 105 }); | 115 }); |
| 106 | 116 |
| 107 chromium.tabs.onTabSelectionChanged.addListener(function(data) { | 117 chromium.tabs.onTabSelectionChanged.addListener(function(data) { |
| 108 appendToLog('onTabSelectionChanged -- window: ' + data.windowId + ' tab: ' + d
ata.tabId + ' index ' + data.index); | 118 appendToLog('onTabSelectionChanged -- window: ' + data.windowId + ' tab: ' + d
ata.tabId + ' index ' + data.index); |
| 109 loadWindowList(); | 119 loadWindowList(); |
| 110 }); | 120 }); |
| 111 | 121 |
| 112 chromium.tabs.onTabRemoved.addListener(function(data) { | 122 chromium.tabs.onTabRemoved.addListener(function(tabId) { |
| 113 appendToLog('onTabRemoved -- window: ' + data.windowId + ' tab: ' + data.tabId
+ ' index ' + data.index); | 123 appendToLog('onTabRemoved -- tab: ' + tabId); |
| 114 loadWindowList(); | 124 loadWindowList(); |
| 115 }); | 125 }); |
| 116 | 126 |
| 117 function isInt(i) { | 127 function isInt(i) { |
| 118 return (typeof i == "number") && !(i % 1) && !isNaN(i); | 128 return (typeof i == "number") && !(i % 1) && !isNaN(i); |
| 119 } | 129 } |
| 120 | 130 |
| 121 function createWindow() { | 131 function createWindow() { |
| 122 var args = { | 132 var args = { |
| 123 'left': parseInt(document.getElementById('new_window_left').value), | 133 'left': parseInt(document.getElementById('new_window_left').value), |
| 124 'top': parseInt(document.getElementById('new_window_top').value), | 134 'top': parseInt(document.getElementById('new_window_top').value), |
| 125 'width': parseInt(document.getElementById('new_window_width').value), | 135 'width': parseInt(document.getElementById('new_window_width').value), |
| 126 'height': parseInt(document.getElementById('new_window_height').value), | 136 'height': parseInt(document.getElementById('new_window_height').value), |
| 127 'url': document.getElementById('new_window_url').value | 137 'url': document.getElementById('new_window_url').value |
| 128 } | 138 } |
| 129 | 139 |
| 130 if (!isInt(args.left)) | 140 if (!isInt(args.left)) |
| 131 delete args.left; | 141 delete args.left; |
| 132 if (!isInt(args.top)) | 142 if (!isInt(args.top)) |
| 133 delete args.top; | 143 delete args.top; |
| 134 if (!isInt(args.width)) | 144 if (!isInt(args.width)) |
| 135 delete args.width; | 145 delete args.width; |
| 136 if (!isInt(args.height)) | 146 if (!isInt(args.height)) |
| 137 delete args.height; | 147 delete args.height; |
| 138 if (!args.url) | 148 if (!args.url) |
| 139 delete args.url; | 149 delete args.url; |
| 140 | 150 |
| 141 chromium.tabs.createWindow(args); | 151 chromium.windows.createWindow(args); |
| 142 } | 152 } |
| 143 | 153 |
| 144 </script> | 154 </script> |
| 145 </head> | 155 </head> |
| 146 <body onload="loadWindowList();"> | 156 <body onload="loadWindowList();"> |
| 147 <div id="windowList"> | 157 <div id="windowList"> |
| 148 <div style="background-color: #AAEEEE; margin: 4px; padding: 8px; margin:
20px" jsselect="$this"> | 158 <div style="background-color: #AAEEEE; margin: 4px; padding: 8px; margin:
20px" jsselect="$this"> |
| 149 <div style="font-style: italic; width: 80px; display: inline-block"> | 159 <div style="font-style: italic; width: 80px; display: inline-block"> |
| 150 Window: <span jscontent="id"></span> | 160 Window: <span jscontent="id"></span> |
| 151 </div> | 161 </div> |
| (...skipping 22 matching lines...) Expand all Loading... |
| 174 <div> | 184 <div> |
| 175 <div style="width: 40px; display:inline-block">url:</div> | 185 <div style="width: 40px; display:inline-block">url:</div> |
| 176 <input style="width: 90%" type="text" jsvalues="value:url;id:'ur
l_' + id" /> | 186 <input style="width: 90%" type="text" jsvalues="value:url;id:'ur
l_' + id" /> |
| 177 </div> | 187 </div> |
| 178 <div><input type="checkbox" jsvalues="checked:selected; id:'select
ed_' + id" /> Selected</div> | 188 <div><input type="checkbox" jsvalues="checked:selected; id:'select
ed_' + id" /> Selected</div> |
| 179 </div> | 189 </div> |
| 180 <button onclick="updateTab(this.jstdata)" jsvalues=".jstdata:id">Upd
ate Tab</button> | 190 <button onclick="updateTab(this.jstdata)" jsvalues=".jstdata:id">Upd
ate Tab</button> |
| 181 <button onclick="chromium.tabs.removeTab(this.jstdata);" jsvalues=".
jstdata:id">Close Tab</button> | 191 <button onclick="chromium.tabs.removeTab(this.jstdata);" jsvalues=".
jstdata:id">Close Tab</button> |
| 182 </div> | 192 </div> |
| 183 </div> | 193 </div> |
| 194 <button onclick="chromium.windows.removeWindow(this.jstdata);" jsvalues=
".jstdata:id">Close Window</button> |
| 184 </div> | 195 </div> |
| 185 </div> | 196 </div> |
| 186 <div style="background-color: #EEEEBB; margin: 20px; padding: 8px"> | 197 <div style="background-color: #EEEEBB; margin: 20px; padding: 8px"> |
| 187 <h3 style="text-align: center; margin: 8px"> Create Window</h3> | 198 <h3 style="text-align: center; margin: 8px"> Create Window</h3> |
| 188 <div style="margin: 8px"> | 199 <div style="margin: 8px"> |
| 189 <div style="width: 300px; display: inline-block"> | 200 <div style="width: 300px; display: inline-block"> |
| 190 left: <input style="width: 20px" type="text" id="new_window_left" /> | 201 left: <input style="width: 20px" type="text" id="new_window_left" /> |
| 191 top: <input style="width: 20px" type="text" id="new_window_top" /> | 202 top: <input style="width: 20px" type="text" id="new_window_top" /> |
| 192 width: <input style="width: 20px" type="text" id="new_window_width" /> | 203 width: <input style="width: 20px" type="text" id="new_window_width" /> |
| 193 height: <input style="width: 20px" type="text" id="new_window_height"
/> | 204 height: <input style="width: 20px" type="text" id="new_window_height"
/> |
| (...skipping 27 matching lines...) Expand all Loading... |
| 221 </div> | 232 </div> |
| 222 <div><input type="checkbox" id="selected_new" /> Selected</div> | 233 <div><input type="checkbox" id="selected_new" /> Selected</div> |
| 223 </div> | 234 </div> |
| 224 <button onclick="createTab();">Create</button> | 235 <button onclick="createTab();">Create</button> |
| 225 </div> | 236 </div> |
| 226 <div style="margin: 20px;"> | 237 <div style="margin: 20px;"> |
| 227 <button onclick="loadWindowList();">Refresh</button> | 238 <button onclick="loadWindowList();">Refresh</button> |
| 228 <button onclick="updateAll();">Update All</button> | 239 <button onclick="updateAll();">Update All</button> |
| 229 <button onclick="moveAll();">Move All</button> | 240 <button onclick="moveAll();">Move All</button> |
| 230 <button onclick="clearLog();">-->Clear Log</button> | 241 <button onclick="clearLog();">-->Clear Log</button> |
| 231 <button onclick="chromium.tabs.createWindow();">New Window</button> | 242 <button onclick="chromium.windows.createWindow();">New Window</button> |
| 232 </div> | 243 </div> |
| 233 <div id="log" style="background-color: #EEAAEE; margin: 20px; padding: 8px"> | 244 <div id="log" style="background-color: #EEAAEE; margin: 20px; padding: 8px"> |
| 234 </div> | 245 </div> |
| 235 </body> | 246 </body> |
| 236 </html> | 247 </html> |
| 237 | 248 |
| OLD | NEW |