new TaskManager has unstable ordering when sorted by task |
||
Issue descriptionVersion: Google Chrome 49.0.2623.112 (Official Build) m (32-bit) Platform: Windows With the TaskManager configured to sort by task name in descending order, I noticed my TaskManager is oscillating between two different orderings (see the attached two screenshots) The change seems to be triggered by the gmail tab updating its title (which happens every few seconds), and I'd bet it has something to do with having multiple same-title "Tab: Facebook" rows that each share a process with other tabs.
,
May 31 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ed4c02aa36bc1c0cda34315d0f51f7b8aa7e794f commit ed4c02aa36bc1c0cda34315d0f51f7b8aa7e794f Author: nick <nick@chromium.org> Date: Tue May 31 21:36:42 2016 TableView: use a stable_sort instead of a sort, since the comparisons may not be totally ordered. BUG= 606985 Review-Url: https://codereview.chromium.org/2026793002 Cr-Commit-Position: refs/heads/master@{#396937} [modify] https://crrev.com/ed4c02aa36bc1c0cda34315d0f51f7b8aa7e794f/ui/views/controls/table/table_view.cc
,
Jun 22 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/0088a36baa443168daf851f3ccf95a2ad7090802 commit 0088a36baa443168daf851f3ccf95a2ad7090802 Author: nick <nick@chromium.org> Date: Wed Jun 22 17:25:56 2016 Make Task Manager sort more meaningful: - Model order is now more meaningful: - Browser process is always first. - Gpu process is always second. - More generally, sorting of non-subtasks is done by process type, followed by tab id, and finally task ID. - Using tab ID puts "Tab:" rows rows in tab creation order, and provides preserves the row's position in the list even when a tab navigates cross-process (though not across prerendering) - Sorting by process type places the browser process first, the gpu process second, etc, in a way that's predictable. (sorting by task ID or pid resulted in an unpredictable ordering). - Subtasks (i.e. subframes) appear right after their parents. - Using task_id as a tiebreaker within a group of related tasks gives a predictable ordering, since this is effectively task-creation order. - Groups are kept on consecutive rows, as before. Within a group, rows are ordered by the same sort comparator that is used to sort between groups. - To effect the above sorting changes, the following tweaks to the TaskManager private interfaces are needed: - Expose a GetParentTask() method on Task. - TaskGroup switches to using an unsorted vector of Tasks. - Expose a Task ctor that supports overriding the pid, for use in unittests. This does not fix the UI problem where there's no way for the user to get back to the model order after sorting by any of the columns. A follow-on CL will need to address that. BUG= 616897 , 54909 , 239611 , 606985 ,527455 TESTS=unit_tests, browser_tests Review-Url: https://codereview.chromium.org/2028753002 Cr-Commit-Position: refs/heads/master@{#401328} [modify] https://crrev.com/0088a36baa443168daf851f3ccf95a2ad7090802/chrome/browser/task_management/providers/task.cc [modify] https://crrev.com/0088a36baa443168daf851f3ccf95a2ad7090802/chrome/browser/task_management/providers/task.h [modify] https://crrev.com/0088a36baa443168daf851f3ccf95a2ad7090802/chrome/browser/task_management/providers/web_contents/subframe_task.cc [modify] https://crrev.com/0088a36baa443168daf851f3ccf95a2ad7090802/chrome/browser/task_management/providers/web_contents/subframe_task.h [modify] https://crrev.com/0088a36baa443168daf851f3ccf95a2ad7090802/chrome/browser/task_management/sampling/task_group.cc [modify] https://crrev.com/0088a36baa443168daf851f3ccf95a2ad7090802/chrome/browser/task_management/sampling/task_group.h [modify] https://crrev.com/0088a36baa443168daf851f3ccf95a2ad7090802/chrome/browser/task_management/sampling/task_manager_impl.cc [add] https://crrev.com/0088a36baa443168daf851f3ccf95a2ad7090802/chrome/browser/task_management/sampling/task_manager_impl_unittest.cc [modify] https://crrev.com/0088a36baa443168daf851f3ccf95a2ad7090802/chrome/browser/task_management/task_manager_browsertest.cc [modify] https://crrev.com/0088a36baa443168daf851f3ccf95a2ad7090802/chrome/browser/task_management/task_manager_interface.h [modify] https://crrev.com/0088a36baa443168daf851f3ccf95a2ad7090802/chrome/browser/task_management/task_manager_observer.h [modify] https://crrev.com/0088a36baa443168daf851f3ccf95a2ad7090802/chrome/chrome_tests_unit.gypi
,
Jul 13 2016
|
||
►
Sign in to add a comment |
||
Comment 1 by nick@chromium.org
, May 24 2016Status: Started (was: Available)