Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(37)

Side by Side Diff: chrome/browser/resources/task_manager/main.js

Issue 8993007: WebUI TaskManager: Delay scripts loading. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698