summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoryoshiki@chromium.org <yoshiki@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-09 09:14:13 +0000
committeryoshiki@chromium.org <yoshiki@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-09 09:14:13 +0000
commit93fde2d6805d7b0a34207677abbf5cad04000f1a (patch)
treec88b20324a23d52650aa2201f64151a8e1c3ff17
parent03cb0809030fecf2a1b08aae6109df84d8f6f9da (diff)
downloadchromium_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.grd4
-rw-r--r--chrome/browser/resources/task_manager/includes.js63
-rw-r--r--chrome/browser/resources/task_manager/main.html47
-rw-r--r--chrome/browser/resources/task_manager/main.js54
-rw-r--r--chrome/browser/ui/webui/chrome_url_data_manager_backend.cc1
-rw-r--r--chrome/browser/ui/webui/task_manager_ui.cc2
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;