Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 /** @constructor */ | 5 /** @constructor */ |
| 6 function TaskManager() { } | 6 function TaskManager() { } |
| 7 | 7 |
| 8 cr.addSingletonGetter(TaskManager); | 8 cr.addSingletonGetter(TaskManager); |
| 9 | 9 |
| 10 /* | 10 /* |
| (...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 144 /** | 144 /** |
| 145 * Initializes taskmanager. | 145 * Initializes taskmanager. |
| 146 * @public | 146 * @public |
| 147 */ | 147 */ |
| 148 initialize: function (dialogDom, opt) { | 148 initialize: function (dialogDom, opt) { |
| 149 if (!dialogDom) { | 149 if (!dialogDom) { |
| 150 console.log('ERROR: dialogDom is not defined.'); | 150 console.log('ERROR: dialogDom is not defined.'); |
| 151 return; | 151 return; |
| 152 } | 152 } |
| 153 | 153 |
| 154 metrics.startInterval('Load.DOM'); | |
| 155 | |
| 154 this.opt_ = opt; | 156 this.opt_ = opt; |
| 155 | 157 |
| 156 this.initialized_ = true; | 158 this.initialized_ = true; |
| 157 this.enableTaskManager(); | 159 this.enableTaskManager(); |
| 158 | 160 |
| 159 this.dialogDom_ = dialogDom; | 161 this.dialogDom_ = dialogDom; |
| 160 this.document_ = dialogDom.ownerDocument; | 162 this.document_ = dialogDom.ownerDocument; |
| 161 | 163 |
| 162 $('close-window').addEventListener('click', this.close.bind(this)); | 164 var ary = this.dialogDom_.querySelectorAll('[visibleif]'); |
| 163 $('kill-process').addEventListener('click', | 165 for (var i = 0; i < ary.length; i++) { |
| 164 this.killSelectedProcesses.bind(this)); | 166 var expr = ary[i].getAttribute('visibleif'); |
| 165 $('about-memory-link').addEventListener('click', | 167 if (!eval(expr)) |
|
arv (Not doing code reviews)
2011/12/19 22:57:14
eval should be prevented if possible. What is its
yoshiki
2011/12/20 15:18:25
Done.
| |
| 166 this.openAboutMemory.bind(this)); | 168 ary[i].hidden = true; |
| 169 } | |
| 167 | 170 |
| 168 this.is_column_shown_ = []; | 171 this.is_column_shown_ = []; |
| 169 for (var i = 0; i < DEFAULT_COLUMNS.length; i++) { | 172 for (var i = 0; i < DEFAULT_COLUMNS.length; i++) { |
| 170 this.is_column_shown_[i] = DEFAULT_COLUMNS[i][3]; | 173 this.is_column_shown_[i] = DEFAULT_COLUMNS[i][3]; |
| 171 } | 174 } |
| 172 | 175 |
| 173 this.localized_column_ = []; | 176 this.localized_column_ = []; |
| 174 for (var i = 0; i < DEFAULT_COLUMNS.length; i++) { | 177 for (var i = 0; i < DEFAULT_COLUMNS.length; i++) { |
| 175 var column_label_id = DEFAULT_COLUMNS[i][1]; | 178 var column_label_id = DEFAULT_COLUMNS[i][1]; |
| 176 var localized_label = localStrings.getString(column_label_id); | 179 var localized_label = localStrings.getString(column_label_id); |
| (...skipping 28 matching lines...) Expand all Loading... | |
| 205 var aValues = a[value_id]; | 208 var aValues = a[value_id]; |
| 206 var bValues = b[value_id]; | 209 var bValues = b[value_id]; |
| 207 var aValue = aValues && aValues[0] || 0; | 210 var aValue = aValues && aValues[0] || 0; |
| 208 var bvalue = bValues && bValues[0] || 0; | 211 var bvalue = bValues && bValues[0] || 0; |
| 209 return dm.defaultValuesCompareFunction(aValue, bvalue); | 212 return dm.defaultValuesCompareFunction(aValue, bvalue); |
| 210 }; | 213 }; |
| 211 }(); | 214 }(); |
| 212 dm.setCompareFunction(column_id, compare_func); | 215 dm.setCompareFunction(column_id, compare_func); |
| 213 } | 216 } |
| 214 | 217 |
| 215 var ary = this.dialogDom_.querySelectorAll('[visibleif]'); | 218 this.initTable_(); |
| 216 for (var i = 0; i < ary.length; i++) { | 219 |
| 217 var expr = ary[i].getAttribute('visibleif'); | 220 // Populate the static localized strings. |
| 218 if (!eval(expr)) | 221 i18nTemplate.process(this.document_, templateData); |
| 219 ary[i].hidden = true; | 222 |
| 223 metrics.recordInterval('Load.DOM'); | |
| 224 metrics.recordInterval('Load.Total'); | |
| 225 | |
| 226 loadDelayedIncludes(this); | |
| 227 }, | |
| 228 | |
| 229 /** | |
| 230 * Additional initialization of taskmanager. This function is called when | |
| 231 * the loading of delayed scripts finished. | |
| 232 * @public | |
|
James Hawkins
2011/12/19 18:35:56
In general we don't specify @public since it's imp
yoshiki
2011/12/20 15:18:25
Done.
| |
| 233 */ | |
| 234 delayedInitialize: function () { | |
| 235 $('close-window').addEventListener('click', this.close.bind(this)); | |
| 236 $('kill-process').addEventListener('click', | |
| 237 this.killSelectedProcesses.bind(this)); | |
| 238 $('about-memory-link').addEventListener('click', | |
| 239 this.openAboutMemory.bind(this)); | |
| 240 this.initColumnMenu_(); | |
| 241 this.initTableMenu_(); | |
| 242 | |
| 243 if (this.delayedInitLabels_) { | |
| 244 while (this.delayedInitLabels_.length > 0) | |
| 245 this.delayedInitLabels_.pop().call(); | |
| 220 } | 246 } |
| 221 | 247 |
| 222 this.initTable_(); | 248 this.isFinishedInitDelayed_ = true; |
| 223 this.initColumnMenu_(); | |
| 224 this.initTableMenu_(); | |
| 225 this.table_.redraw(); | 249 this.table_.redraw(); |
| 226 }, | 250 }, |
| 227 | 251 |
| 228 initColumnModel_: function () { | 252 initColumnModel_: function () { |
| 229 var table_columns = new Array(); | 253 var table_columns = new Array(); |
| 230 for (var i = 0; i < DEFAULT_COLUMNS.length; i++) { | 254 for (var i = 0; i < DEFAULT_COLUMNS.length; i++) { |
| 231 if (!this.is_column_shown_[i]) | 255 if (!this.is_column_shown_[i]) |
| 232 continue; | 256 continue; |
| 233 | 257 |
| 234 var column = DEFAULT_COLUMNS[i]; | 258 var column = DEFAULT_COLUMNS[i]; |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 354 cm.getRenderFunction(i).call(null, dataItem, cm.getId(i), table)); | 378 cm.getRenderFunction(i).call(null, dataItem, cm.getId(i), table)); |
| 355 | 379 |
| 356 listItem.appendChild(cell); | 380 listItem.appendChild(cell); |
| 357 } | 381 } |
| 358 listItem.data = dataItem; | 382 listItem.data = dataItem; |
| 359 | 383 |
| 360 return listItem; | 384 return listItem; |
| 361 }, | 385 }, |
| 362 | 386 |
| 363 renderColumn_: function(entry, columnId, table) { | 387 renderColumn_: function(entry, columnId, table) { |
| 388 this.delayedInitLabels_ = []; | |
| 389 | |
| 364 var container = this.document_.createElement('div'); | 390 var container = this.document_.createElement('div'); |
| 365 container.className = 'detail-container-' + columnId; | 391 container.className = 'detail-container-' + columnId; |
| 366 | 392 |
| 367 if (entry && entry[columnId]) { | 393 if (entry && entry[columnId]) { |
| 368 container.id = 'detail-container-' + columnId + '-pid' + entry.processId; | 394 container.id = 'detail-container-' + columnId + '-pid' + entry.processId; |
| 369 | 395 |
| 370 for (var i = 0; i < entry[columnId].length; i++) { | 396 for (var i = 0; i < entry[columnId].length; i++) { |
| 371 var label = document.createElement('div'); | 397 var label = document.createElement('div'); |
| 372 if (columnId == 'title') { | 398 if (columnId == 'title') { |
| 373 var image = this.document_.createElement('img'); | 399 var image = this.document_.createElement('img'); |
| 374 image.className = 'detail-title-image'; | 400 image.className = 'detail-title-image'; |
| 375 image.src = entry['icon'][i]; | 401 image.src = entry['icon'][i]; |
| 376 label.appendChild(image); | 402 label.appendChild(image); |
| 377 var text = this.document_.createElement('div'); | 403 var text = this.document_.createElement('div'); |
| 378 text.className = 'detail-title-text'; | 404 text.className = 'detail-title-text'; |
| 379 text.textContent = entry['title'][i]; | 405 text.textContent = entry['title'][i]; |
| 380 label.appendChild(text); | 406 label.appendChild(text); |
| 381 | 407 |
| 382 cr.ui.contextMenuHandler.addContextMenuProperty(label); | 408 var addContextMenu = function() { |
|
arv (Not doing code reviews)
2011/12/19 22:57:14
This will not work correctly. label changes as you
yoshiki
2011/12/20 15:18:25
Done.
| |
| 383 label.contextMenu = this.tableContextMenu_; | 409 cr.ui.contextMenuHandler.addContextMenuProperty(label); |
| 410 label.contextMenu = this.tableContextMenu_; | |
| 411 }; | |
| 412 | |
| 413 if (this.isFinishedInitDelayed_) | |
| 414 addContextMenu.call(this); | |
| 415 else | |
| 416 this.delayedInitLabels_.push(addContextMenu.bind(this)); | |
| 384 | 417 |
| 385 label.addEventListener('dblclick', (function(uniqueId) { | 418 label.addEventListener('dblclick', (function(uniqueId) { |
| 386 this.activatePage(uniqueId); | 419 this.activatePage(uniqueId); |
| 387 }).bind(this, entry['uniqueId'][i])); | 420 }).bind(this, entry['uniqueId'][i])); |
| 388 | 421 |
| 389 label.data = entry; | 422 label.data = entry; |
| 390 label.index_in_group = i; | 423 label.index_in_group = i; |
| 391 } else { | 424 } else { |
| 392 label.textContent = entry[columnId][i]; | 425 label.textContent = entry[columnId][i]; |
| 393 } | 426 } |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 470 | 503 |
| 471 onCommandCanExecute_: function(event) { | 504 onCommandCanExecute_: function(event) { |
| 472 event.canExecute = true; | 505 event.canExecute = true; |
| 473 }, | 506 }, |
| 474 | 507 |
| 475 /** | 508 /** |
| 476 * Store resourceIndex of target resource of context menu, because resource | 509 * Store resourceIndex of target resource of context menu, because resource |
| 477 * will be replaced when it is refleshed. | 510 * will be replaced when it is refleshed. |
| 478 */ | 511 */ |
| 479 onTableContextMenuOpened_: function (e) { | 512 onTableContextMenuOpened_: function (e) { |
| 513 if (!this.isFinishedInitDelayed_) | |
| 514 return; | |
| 515 | |
| 480 var mc = this.table_menu_commands_; | 516 var mc = this.table_menu_commands_; |
| 481 var inspect_menuitem = | 517 var inspect_menuitem = |
| 482 mc[COMMAND_CONTEXTMENU_TABLE_PREFIX + '-inspect'].menuitem; | 518 mc[COMMAND_CONTEXTMENU_TABLE_PREFIX + '-inspect'].menuitem; |
| 483 var activate_menuitem = | 519 var activate_menuitem = |
| 484 mc[COMMAND_CONTEXTMENU_TABLE_PREFIX + '-activate'].menuitem; | 520 mc[COMMAND_CONTEXTMENU_TABLE_PREFIX + '-activate'].menuitem; |
| 485 | 521 |
| 486 // Disabled by default. | 522 // Disabled by default. |
| 487 inspect_menuitem.disabled = true; | 523 inspect_menuitem.disabled = true; |
| 488 activate_menuitem.disabled = true; | 524 activate_menuitem.disabled = true; |
| 489 | 525 |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 578 taskmanager.onTaskChange(start, length, tasks); | 614 taskmanager.onTaskChange(start, length, tasks); |
| 579 } | 615 } |
| 580 | 616 |
| 581 function taskRemoved(start, length) { | 617 function taskRemoved(start, length) { |
| 582 // Sometimes this can get called too early. | 618 // Sometimes this can get called too early. |
| 583 if (!taskmanager) | 619 if (!taskmanager) |
| 584 return; | 620 return; |
| 585 taskmanager.onTaskRemove(start, length); | 621 taskmanager.onTaskRemove(start, length); |
| 586 } | 622 } |
| 587 | 623 |
| OLD | NEW |