| Index: chrome/browser/resources/task_manager/main.js
|
| diff --git a/chrome/browser/resources/task_manager/main.js b/chrome/browser/resources/task_manager/main.js
|
| index 9bc0d285d2e3478f64481fbb377b71870657e812..62eb4a4efd8105b2ed7934b057fec487cc275cd8 100644
|
| --- a/chrome/browser/resources/task_manager/main.js
|
| +++ b/chrome/browser/resources/task_manager/main.js
|
| @@ -542,18 +542,30 @@ TaskManager.prototype = {
|
| var length = task.length;
|
| var tasks = task.tasks;
|
|
|
| - // We have to store the selected indexes and restore them after
|
| + // We have to store the selected pids and restore them after
|
| // splice(), because it might replace some items but the replaced
|
| // items would lose the selection.
|
| var oldSelectedIndexes = sm.selectedIndexes;
|
|
|
| + // Create map of selected PIDs.
|
| + var selectedPids = {};
|
| + for (var i = 0; i < oldSelectedIndexes.length; i++) {
|
| + var item = dm.item(oldSelectedIndexes[i]);
|
| + if (item) selectedPids[item['processId'][0]] = true;
|
| + }
|
| +
|
| var args = tasks.slice();
|
| args.unshift(start, dm.length);
|
| dm.splice.apply(dm, args);
|
|
|
| - sm.selectedIndexes = oldSelectedIndexes.filter(function(index) {
|
| - return index < dm.length;
|
| - });
|
| + // Create new array of selected indexes from map of old PIDs.
|
| + var newSelectedIndexes = [];
|
| + for (var i = 0; i < dm.length; i++) {
|
| + if (selectedPids[dm.item(i)['processId'][0]])
|
| + newSelectedIndexes.push(i);
|
| + }
|
| +
|
| + sm.selectedIndexes = newSelectedIndexes;
|
|
|
| var pids = [];
|
| for (var i = 0; i < dm.length; i++) {
|
|
|