Chromium Code Reviews| Index: chrome/browser/resources/task_manager/main.js |
| diff --git a/chrome/browser/resources/task_manager/main.js b/chrome/browser/resources/task_manager/main.js |
| index 5c04529407d4988b041b23e1ded772ffee393f7a..a5500e2941fe5ee737f19ca367e91bdf58df4017 100644 |
| --- a/chrome/browser/resources/task_manager/main.js |
| +++ b/chrome/browser/resources/task_manager/main.js |
| @@ -37,7 +37,6 @@ var localStrings = new LocalStrings(); |
| TaskManager.prototype = { |
| /** |
| * Handle window close. |
| - * @public |
| */ |
| onClose: function () { |
| if (!this.disabled_) { |
| @@ -50,7 +49,6 @@ TaskManager.prototype = { |
| * Handle selection change. |
| * This is also called when data of tasks are refleshed, even if selection |
| * has not been changed. |
| - * @public |
| */ |
| onSelectionChange: function () { |
| var sm = this.selectionModel_; |
| @@ -78,7 +76,6 @@ TaskManager.prototype = { |
| /** |
| * Closes taskmanager dialog. |
| * After this function is called, onClose() will be called. |
| - * @public |
| */ |
| close: function () { |
| window.close(); |
| @@ -86,7 +83,6 @@ TaskManager.prototype = { |
| /** |
| * Sends commands to kill selected processes. |
| - * @public |
| */ |
| killSelectedProcesses: function () { |
| var selectedIndexes = this.selectionModel_.selectedIndexes; |
| @@ -103,7 +99,6 @@ TaskManager.prototype = { |
| /** |
| * Sends command to initiate resource inspection. |
| - * @public |
| */ |
| inspect: function (uniqueId) { |
| chrome.send('inspect', [uniqueId]); |
| @@ -111,7 +106,6 @@ TaskManager.prototype = { |
| /** |
| * Sends command to kill a process. |
| - * @public |
| */ |
| openAboutMemory: function () { |
| chrome.send('openAboutMemory'); |
| @@ -119,7 +113,6 @@ TaskManager.prototype = { |
| /** |
| * Sends command to disable taskmanager model. |
| - * @public |
| */ |
| disableTaskManager: function () { |
| chrome.send('disableTaskManager'); |
| @@ -127,7 +120,6 @@ TaskManager.prototype = { |
| /** |
| * Sends command to enable taskmanager model. |
| - * @public |
| */ |
| enableTaskManager: function () { |
| chrome.send('enableTaskManager'); |
| @@ -135,7 +127,6 @@ TaskManager.prototype = { |
| /** |
| * Sends command to activate a page. |
| - * @public |
| */ |
| activatePage: function (uniqueId) { |
| chrome.send('activatePage', [uniqueId]); |
| @@ -143,7 +134,6 @@ TaskManager.prototype = { |
| /** |
| * Initializes taskmanager. |
| - * @public |
| */ |
| initialize: function (dialogDom, opt) { |
| if (!dialogDom) { |
| @@ -151,6 +141,8 @@ TaskManager.prototype = { |
| return; |
| } |
| + measuretime.startInterval('Load.DOM'); |
| + |
| this.opt_ = opt; |
| this.initialized_ = true; |
| @@ -159,12 +151,6 @@ TaskManager.prototype = { |
| this.dialogDom_ = dialogDom; |
| this.document_ = dialogDom.ownerDocument; |
| - $('close-window').addEventListener('click', this.close.bind(this)); |
| - $('kill-process').addEventListener('click', |
| - this.killSelectedProcesses.bind(this)); |
| - $('about-memory-link').addEventListener('click', |
| - this.openAboutMemory.bind(this)); |
| - |
| this.is_column_shown_ = []; |
| for (var i = 0; i < DEFAULT_COLUMNS.length; i++) { |
| this.is_column_shown_[i] = DEFAULT_COLUMNS[i][3]; |
| @@ -181,6 +167,7 @@ TaskManager.prototype = { |
| this.localized_column_[i] = localized_label; |
| } |
| + this.initElements_(); |
| this.initColumnModel_(); |
| this.selectionModel_ = new cr.ui.ListSelectionModel(); |
| this.dataModel_ = new cr.ui.ArrayDataModel([]); |
| @@ -212,16 +199,63 @@ TaskManager.prototype = { |
| dm.setCompareFunction(column_id, compare_func); |
| } |
| - var ary = this.dialogDom_.querySelectorAll('[visibleif]'); |
| - for (var i = 0; i < ary.length; i++) { |
| - var expr = ary[i].getAttribute('visibleif'); |
| - if (!eval(expr)) |
| - ary[i].hidden = true; |
| - } |
| - |
| this.initTable_(); |
| + |
| + // Populate the static localized strings. |
| + i18nTemplate.process(this.document_, templateData); |
| + |
| + measuretime.recordInterval('Load.DOM'); |
| + measuretime.recordInterval('Load.Total'); |
| + |
| + loadDelayedIncludes(this); |
| + }, |
| + |
| + /** |
| + * Initializes the visibilities and handlers of the elements. |
| + * This method is called by initialize(). |
| + */ |
| + initElements_: function() { |
| + // <if expr="pp_ifdef('chromeos')"> |
|
arv (Not doing code reviews)
2011/12/21 20:19:43
Can this be removed? The pre-processor does all of
yoshiki
2011/12/22 08:50:31
In case of development using mock, these comment s
|
| + // The elements 'dialog-title' and 'close-window' exist only on ChromeOS. |
| + // This <if ... /if> section is removed while flattening HTML if chrome is |
| + // built as Desktop Chrome. |
| + if (this.opt_['isShowTitle']) |
| + $('dialog-title').style.display = 'none'; |
| + if (this.opt_['isShowCloseButton']) |
| + $('close-window').style.display = 'none'; |
| + $('close-window').addEventListener('click', this.close.bind(this)); |
| + // </if> |
| + |
| + $('kill-process').addEventListener('click', |
| + this.killSelectedProcesses.bind(this)); |
| + $('about-memory-link').addEventListener('click', |
| + this.openAboutMemory.bind(this)); |
| + }, |
| + |
| + /** |
| + * Additional initialization of taskmanager. This function is called when |
| + * the loading of delayed scripts finished. |
| + */ |
| + delayedInitialize: function() { |
| this.initColumnMenu_(); |
| this.initTableMenu_(); |
| + |
| + var dm = this.dataModel_; |
| + for (var i = 0; i < dm.length; i++) { |
| + for (var j = 0; j < DEFAULT_COLUMNS.length; j++) { |
| + var columnId = DEFAULT_COLUMNS[j][0]; |
| + var row = dm.item(i)[columnId]; |
| + for (var k = 0; k < row.length; k++) { |
| + var processId = dm.item(i)['processId'][0]; |
| + var labelId = 'detail-' + columnId + '-pid' + processId + '-' + k; |
| + var label = $(labelId); |
| + if (label && label.setContextMenu) |
| + label.setContextMenu(this.tableContextMenu_); |
| + } |
| + } |
| + } |
| + |
| + this.isFinishedInitDelayed_ = true; |
| this.table_.redraw(); |
| }, |
| @@ -379,8 +413,15 @@ TaskManager.prototype = { |
| text.textContent = entry['title'][i]; |
| label.appendChild(text); |
| - cr.ui.contextMenuHandler.addContextMenuProperty(label); |
| - label.contextMenu = this.tableContextMenu_; |
| + label.setContextMenu = function(contextMenuElement) { |
|
arv (Not doing code reviews)
2011/12/21 20:19:43
I still think this is wrong.
Can you at least add
yoshiki
2011/12/22 08:50:31
Done. I added a comment.
|
| + if (!this.contextMenu) { |
| + cr.ui.contextMenuHandler.addContextMenuProperty(this); |
| + this.contextMenu = contextMenuElement; |
| + } |
| + }; |
| + |
| + if (this.isFinishedInitDelayed_) |
| + label.setContextMenu(this.tableContextMenu_); |
| label.addEventListener('dblclick', (function(uniqueId) { |
| this.activatePage(uniqueId); |
| @@ -477,6 +518,9 @@ TaskManager.prototype = { |
| * will be replaced when it is refleshed. |
| */ |
| onTableContextMenuOpened_: function (e) { |
| + if (!this.isFinishedInitDelayed_) |
| + return; |
| + |
| var mc = this.table_menu_commands_; |
| var inspect_menuitem = |
| mc[COMMAND_CONTEXTMENU_TABLE_PREFIX + '-inspect'].menuitem; |
| @@ -584,4 +628,3 @@ function taskRemoved(start, length) { |
| return; |
| taskmanager.onTaskRemove(start, length); |
| } |
| - |