diff options
author | yoshiki@chromium.org <yoshiki@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-09 09:14:13 +0000 |
---|---|---|
committer | yoshiki@chromium.org <yoshiki@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-09 09:14:13 +0000 |
commit | 93fde2d6805d7b0a34207677abbf5cad04000f1a (patch) | |
tree | c88b20324a23d52650aa2201f64151a8e1c3ff17 | |
parent | 03cb0809030fecf2a1b08aae6109df84d8f6f9da (diff) | |
download | chromium_src-93fde2d6805d7b0a34207677abbf5cad04000f1a.zip chromium_src-93fde2d6805d7b0a34207677abbf5cad04000f1a.tar.gz chromium_src-93fde2d6805d7b0a34207677abbf5cad04000f1a.tar.bz2 |
Revert 113772 - WebUI TaskManager: Optimize initialization taskmanager and loading scripts.
BUG=104136
TEST=manual on linux
Review URL: http://codereview.chromium.org/8713016
TBR=yoshiki@chromium.org
Review URL: http://codereview.chromium.org/8873054
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@113776 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/browser_resources.grd | 4 | ||||
-rw-r--r-- | chrome/browser/resources/task_manager/includes.js | 63 | ||||
-rw-r--r-- | chrome/browser/resources/task_manager/main.html | 47 | ||||
-rw-r--r-- | chrome/browser/resources/task_manager/main.js | 54 | ||||
-rw-r--r-- | chrome/browser/ui/webui/chrome_url_data_manager_backend.cc | 1 | ||||
-rw-r--r-- | chrome/browser/ui/webui/task_manager_ui.cc | 2 |
6 files changed, 70 insertions, 101 deletions
diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd index a23f49a..34b3d19 100644 --- a/chrome/browser/browser_resources.grd +++ b/chrome/browser/browser_resources.grd @@ -111,7 +111,9 @@ <include name="IDR_SYNC_SETTING_UP_HTML" file="sync\resources\setting_up.html" flattenhtml="true" type="BINDATA" /> <include name="IDR_SYNC_SETUP_DONE_HTML" file="sync\resources\setup_done.html" flattenhtml="true" type="BINDATA" /> <include name="IDR_SYNC_SETUP_FLOW_HTML" file="sync\resources\setup_flow.html" flattenhtml="true" type="BINDATA" /> - <include name="IDR_TASK_MANAGER_HTML" file="resources\task_manager\main.html" flattenhtml="true" type="BINDATA" /> + <include name="IDR_TASK_MANAGER_HTML" file="resources\task_manager\main.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" /> + <include name="IDR_TASK_MANAGER_INCLUDES_JS" file="resources\task_manager\includes.js" type="BINDATA" /> + <include name="IDR_TASK_MANAGER_JS" file="resources\task_manager\main.js" type="BINDATA" /> <include name="IDR_TRACING_HTML" file="resources\tracing.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" /> <include name="IDR_TRACING_JS" file="resources\tracing.js" flattenhtml="true" type="BINDATA" /> <include name="IDR_TRANSLATE_JS" file="resources\translate.js" type="BINDATA" /> diff --git a/chrome/browser/resources/task_manager/includes.js b/chrome/browser/resources/task_manager/includes.js index 7deebfd..75708b1 100644 --- a/chrome/browser/resources/task_manager/includes.js +++ b/chrome/browser/resources/task_manager/includes.js @@ -2,9 +2,44 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// This script loads additional scripts after initialization of task manager. +// This script includes additional resources via document.write(). Hence, it +// must be a separate script file loaded before other scripts which would +// reference the resources. + +var css = [ + 'chrome_shared.css', + 'list.css', + 'table.css', + 'menu.css', + 'button.css', +]; var script = [ + 'local_strings.js', + 'i18n_template.js', + + 'util.js', + 'cr.js', + 'cr/ui.js', + 'cr/event_target.js', + 'cr/ui/array_data_model.js', + 'cr/ui/list_item.js', + 'cr/ui/list_selection_model.js', + 'cr/ui/list_single_selection_model.js', + 'cr/ui/list_selection_controller.js', + 'cr/ui/list.js', + + 'cr/ui/splitter.js', + 'cr/ui/table/table_splitter.js', + + 'cr/ui/table/table_column.js', + 'cr/ui/table/table_column_model.js', + 'cr/ui/table/table_header.js', + 'cr/ui/table/table_list.js', + 'cr/ui/table.js', + + 'cr/ui/grid.js', + 'cr/ui/command.js', 'cr/ui/position_util.js', 'cr/ui/menu_item.js', @@ -12,30 +47,20 @@ var script = [ 'cr/ui/context_menu_handler.js', ]; -/** - * Loads delayed scripts. - * This function is called by TaskManager::initalize() in main.js. - */ -function loadDelayedIncludes(taskmanager) { +(function() { // Switch to 'test harness' mode when loading from a file url. var isHarness = document.location.protocol == 'file:'; // In test harness mode we load resources from relative dirs. var prefix = isHarness ? './shared/' : 'chrome://resources/'; - // Number of remaining scripts to load. - var remain = script.length; + for (var i = 0; i < css.length; ++i) { + document.write('<link href="' + prefix + 'css/' + css[i] + + '" rel="stylesheet"></link>'); + } - // Waits for initialization of task manager. for (var i = 0; i < script.length; ++i) { - var s = document.createElement('script'); - s.onload = function(e) { - if (!--remain) - taskmanager.delayedInitialize(); - }; - s.type = 'text/javascript'; - s.src = prefix + 'js/' + script[i]; - s.defer = 'defer'; - document.body.appendChild(s); + document.write('<script src="' + prefix + 'js/' + script[i] + + '"><\/script>'); } -} +})(); diff --git a/chrome/browser/resources/task_manager/main.html b/chrome/browser/resources/task_manager/main.html index a8705ba..20bc62f 100644 --- a/chrome/browser/resources/task_manager/main.html +++ b/chrome/browser/resources/task_manager/main.html @@ -8,47 +8,10 @@ <head> <meta charset="utf-8"> <title i18n-content="title"></title> - - <link rel="stylesheet" href="../shared/css/chrome_shared.css"></link> - <link rel="stylesheet" href="../shared/css/list.css"></link> - <link rel="stylesheet" href="../shared/css/table.css"></link> - <link rel="stylesheet" href="../shared/css/menu.css"></link> - <link rel="stylesheet" href="../shared/css/button.css"></link> - <link rel="stylesheet" href="task_manager.css"></link> - - <!-- strings.js must be specified as full path, since it will be genereted - -- in chrome/browser/ui/webui/task_manager_ui.cc dynamically. - --> + <script src="chrome://tasks/includes.js"></script> + <script src="chrome://tasks/main.js"></script> <script src="chrome://tasks/strings.js"></script> - - <script src="../shared/js/local_strings.js"></script> - <script src="../shared/js/i18n_template.js"></script> - - <script src="../shared/js/util.js"></script> - <script src="../shared/js/cr.js"></script> - <script src="../shared/js/cr/ui.js"></script> - <script src="../shared/js/cr/event_target.js"></script> - <script src="../shared/js/cr/ui/array_data_model.js"></script> - <script src="../shared/js/cr/ui/list_item.js"></script> - <script src="../shared/js/cr/ui/list_selection_model.js"></script> - <script src="../shared/js/cr/ui/list_selection_controller.js"></script> - <script src="../shared/js/cr/ui/list.js"></script> - - <script src="../shared/js/cr/ui/splitter.js"></script> - <script src="../shared/js/cr/ui/table/table_splitter.js"></script> - - <script src="../shared/js/cr/ui/table/table_column.js"></script> - <script src="../shared/js/cr/ui/table/table_column_model.js"></script> - <script src="../shared/js/cr/ui/table/table_header.js"></script> - <script src="../shared/js/cr/ui/table/table_list.js"></script> - <script src="../shared/js/cr/ui/table.js"></script> - - <script src="main.js"></script> - - <!-- Loads the other scripts. --> - <script src="includes.js"></script> - - </head> + <link rel="stylesheet" href="task_manager.css"> </head> <body> <div class="dialog-title" i18n-content="title" @@ -69,6 +32,8 @@ visibleif='this.opt_.isShowCloseButton'></button> </div> </div> - <script src="../shared/js/i18n_process.js"></script> + <script src="chrome://resources/js/i18n_template.js"></script> + <script src="chrome://resources/js/i18n_process.js"></script> </body> </html> + diff --git a/chrome/browser/resources/task_manager/main.js b/chrome/browser/resources/task_manager/main.js index b1f1ed0e..a4827de 100644 --- a/chrome/browser/resources/task_manager/main.js +++ b/chrome/browser/resources/task_manager/main.js @@ -145,17 +145,16 @@ TaskManager.prototype = { this.opt_ = opt; + this.initialized_ = true; this.enableTaskManager(); this.dialogDom_ = dialogDom; this.document_ = dialogDom.ownerDocument; - 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; - } + $('close-window').addEventListener('click', this.close.bind(this)); + $('kill-process').addEventListener('click', this.killProcess.bind(this)); + $('about-memory-link').addEventListener('click', + this.openAboutMemory.bind(this)); this.is_column_shown_ = []; for (var i = 0; i < DEFAULT_COLUMNS.length; i++) { @@ -204,31 +203,17 @@ TaskManager.prototype = { dm.setCompareFunction(column_id, compare_func); } - this.initTable_(); - this.initialized_ = true; - - loadDelayedIncludes(this); - }, + 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; + } - /** - * Additional initialization of taskmanager. This function is called when - * the loading of delayed scripts finished. - * @public - */ - delayedInitialize: function () { - $('close-window').addEventListener('click', this.close.bind(this)); - $('kill-process').addEventListener('click', this.killProcess.bind(this)); - $('about-memory-link').addEventListener('click', - this.openAboutMemory.bind(this)); + this.initTable_(); this.initColumnMenu_(); this.initTableMenu_(); - - if (this.delayedInitLabels_) { - while (this.delayedInitLabels_.length > 0) - this.delayedInitLabels_.pop().call(); - } - - this.isFinishedInitDelayed_ = true; + this.table_.redraw(); }, initColumnModel_: function () { @@ -367,8 +352,6 @@ TaskManager.prototype = { }, renderColumn_: function(entry, columnId, table) { - this.delayedInitLabels_ = []; - var container = this.document_.createElement('div'); container.className = 'detail-container-' + columnId; @@ -387,15 +370,8 @@ TaskManager.prototype = { text.textContent = entry['title'][i]; label.appendChild(text); - var addContextMenu = function() { - cr.ui.contextMenuHandler.addContextMenuProperty(label); - label.contextMenu = this.tableContextMenu_; - }; - - if (this.isFinishedInitDelayed_) - addContextMenu.call(this); - else - this.delayedInitLabels_.push(addContextMenu.bind(this)); + cr.ui.contextMenuHandler.addContextMenuProperty(label); + label.contextMenu = this.tableContextMenu_; label.addEventListener('dblclick', (function(uniqueId) { this.activatePage(uniqueId); diff --git a/chrome/browser/ui/webui/chrome_url_data_manager_backend.cc b/chrome/browser/ui/webui/chrome_url_data_manager_backend.cc index 7066eb1..5c3295a 100644 --- a/chrome/browser/ui/webui/chrome_url_data_manager_backend.cc +++ b/chrome/browser/ui/webui/chrome_url_data_manager_backend.cc @@ -63,7 +63,6 @@ class ChromeURLContentSecurityPolicyExceptionSet insert(chrome::kChromeUIDialogHost); insert(chrome::kChromeUIInputWindowDialogHost); insert(chrome::kChromeUINewTabHost); - insert(chrome::kChromeUITaskManagerHost); #if defined(OS_CHROMEOS) insert(chrome::kChromeUIMobileSetupHost); insert(chrome::kChromeUIOobeHost); diff --git a/chrome/browser/ui/webui/task_manager_ui.cc b/chrome/browser/ui/webui/task_manager_ui.cc index fe94bb6..0359b69 100644 --- a/chrome/browser/ui/webui/task_manager_ui.cc +++ b/chrome/browser/ui/webui/task_manager_ui.cc @@ -60,6 +60,8 @@ ChromeWebUIDataSource* CreateTaskManagerUIHTMLSource() { source->AddLocalizedString("inspect", IDS_TASK_MANAGER_INSPECT); source->AddLocalizedString("activate", IDS_TASK_MANAGER_ACTIVATE); source->set_json_path("strings.js"); + source->add_resource_path("main.js", IDR_TASK_MANAGER_JS); + source->add_resource_path("includes.js", IDR_TASK_MANAGER_INCLUDES_JS); source->set_default_resource(IDR_TASK_MANAGER_HTML); return source; |