| Index: chrome/browser/resources/task_manager/preload.js
|
| diff --git a/chrome/browser/resources/task_manager/preload.js b/chrome/browser/resources/task_manager/preload.js
|
| index d5e9952a28ade796597ad431d5fbba1170f1765e..db49586394ecebbb97f21b18e0e9bb4ab31d121a 100644
|
| --- a/chrome/browser/resources/task_manager/preload.js
|
| +++ b/chrome/browser/resources/task_manager/preload.js
|
| @@ -15,11 +15,54 @@ function taskChanged(start, length, tasks) {
|
| if (taskmanager) taskmanager.processTaskChange(task);
|
| }
|
|
|
| +// Cached list of enabled columns to prevent frequent access to localStorage.
|
| +var cachedEnabledColumns;
|
| +
|
| +/**
|
| + * Returns the dictionary which contains the list of columns and whether each
|
| + * column is enabled or not.
|
| + */
|
| +function getEnabledColumns() {
|
| + // Use the cache after the second time since access to localStorage is slow.
|
| + if (cachedEnabledColumns)
|
| + return cachedEnabledColumns;
|
| +
|
| + var json = window.localStorage.getItem(ENABLED_COLUMNS_KEY);
|
| + try {
|
| + cachedEnabledColumns = JSON.parse(json) || {};
|
| + } catch (e) {
|
| + cachedEnabledColumns = {};
|
| + }
|
| + for (var i = 0; i < DEFAULT_COLUMNS.length; i++) {
|
| + if (typeof(cachedEnabledColumns[DEFAULT_COLUMNS[i][0]]) == 'undefined')
|
| + cachedEnabledColumns[DEFAULT_COLUMNS[i][0]] = DEFAULT_COLUMNS[i][3];
|
| + }
|
| + return cachedEnabledColumns;
|
| +}
|
| +
|
| +/**
|
| + * Returns whether the given column (at |columnId|) is enabled or not.
|
| + */
|
| +function isColumnEnabled(columnId) {
|
| + return (getEnabledColumns())[columnId];
|
| +}
|
| +
|
| +/**
|
| + * Sets whether the given column is enabled or not.
|
| + */
|
| +function setColumnEnabled(columnId, newChecked) {
|
| + commands.setUpdateColumn(columnId, newChecked);
|
| + cachedEnabledColumns[columnId] = newChecked;
|
| + var json = JSON.stringify(cachedEnabledColumns);
|
| + window.localStorage.setItem(ENABLED_COLUMNS_KEY, json);
|
| +}
|
| +
|
| // Enable the taskmanager model before the loading of scripts.
|
| (function () {
|
| for (var i = 0; i < DEFAULT_COLUMNS.length; i++) {
|
| - if (DEFAULT_COLUMNS[i][3])
|
| - commands.setUpdateColumn(DEFAULT_COLUMNS[i][0], true);
|
| + var columnId = DEFAULT_COLUMNS[i][0];
|
| + if (isColumnEnabled(columnId))
|
| + commands.setUpdateColumn(columnId, true);
|
| }
|
| commands.enableTaskManager();
|
| commands.setUpdateColumn('canInspect', true);
|
|
|