Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(357)

Issue 2637463002: Add an idle task to periodically sweep canceled delayed tasks (Closed)

Created:
3 years, 11 months ago by alex clarke (OOO till 29th)
Modified:
3 years, 11 months ago
Reviewers:
haraken, Sami
CC:
rmcilroy, chromium-reviews, blink-reviews, kinuko+watch, dglazkov+blink, scheduler-bugs_chromium.org, blink-reviews-api_chromium.org
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Add an idle task to periodically sweep canceled delayed tasks It turns out canceled delayed tasks can really pile up for some pages where they repeatedly post dom timers with long delays and cancel them. This patch adds an idle task which every 30s sweeps away all canceled delayed tasks. We also add the concept of PostDelayedIdleTask to do so. PostDelayedIdleTask posts a task which is eligible to run after the next time an idle period starts. I.e. this has after wakeup semantics, i.e. unless something else wakes the CPU up, it won't run. BUG=680815 Review-Url: https://codereview.chromium.org/2637463002 Cr-Commit-Position: refs/heads/master@{#443877} Committed: https://chromium.googlesource.com/chromium/src/+/fd870526d2ed5a6b3577b46aa9f01532b15bc6d5

Patch Set 1 #

Patch Set 2 : Rebased #

Patch Set 3 : Add missing file #

Patch Set 4 : Clarify test #

Total comments: 4

Patch Set 5 : Address Sami's comments #

Patch Set 6 : Fix issue with tracked_objects::Location spotted by asan #

Unified diffs Side-by-side diffs Delta from patch set Stats (+416 lines, -2 lines) Patch
M third_party/WebKit/Source/platform/BUILD.gn View 1 2 chunks +3 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/scheduler/base/task_queue_impl.h View 1 chunk +3 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/scheduler/base/task_queue_impl.cc View 1 2 3 4 1 chunk +22 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/scheduler/base/task_queue_manager.h View 1 chunk +3 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/scheduler/base/task_queue_manager.cc View 1 chunk +10 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/scheduler/base/task_queue_manager_unittest.cc View 1 chunk +38 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/scheduler/child/compositor_worker_scheduler.cc View 1 chunk +4 lines, -0 lines 0 comments Download
A third_party/WebKit/Source/platform/scheduler/child/idle_canceled_delayed_task_sweeper.h View 1 chunk +39 lines, -0 lines 0 comments Download
A third_party/WebKit/Source/platform/scheduler/child/idle_canceled_delayed_task_sweeper.cc View 1 2 3 4 1 chunk +42 lines, -0 lines 0 comments Download
A third_party/WebKit/Source/platform/scheduler/child/idle_canceled_delayed_task_sweeper_unittest.cc View 1 2 3 4 1 chunk +137 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/scheduler/child/idle_helper.h View 2 chunks +3 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/scheduler/child/idle_helper.cc View 2 chunks +7 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/scheduler/child/idle_helper_unittest.cc View 3 chunks +39 lines, -1 line 0 comments Download
M third_party/WebKit/Source/platform/scheduler/child/scheduler_helper.h View 1 chunk +3 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/scheduler/child/scheduler_helper.cc View 1 chunk +6 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/scheduler/child/single_thread_idle_task_runner.cc View 2 chunks +25 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/scheduler/child/worker_scheduler_impl.h View 2 chunks +2 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/scheduler/child/worker_scheduler_impl.cc View 1 chunk +4 lines, -1 line 0 comments Download
M third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.h View 2 chunks +2 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc View 1 chunk +3 lines, -0 lines 0 comments Download
M third_party/WebKit/public/platform/scheduler/child/compositor_worker_scheduler.h View 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/public/platform/scheduler/child/single_thread_idle_task_runner.h View 1 2 3 4 5 5 chunks +20 lines, -0 lines 0 comments Download

Messages

Total messages: 34 (25 generated)
alex clarke (OOO till 29th)
3 years, 11 months ago (2017-01-13 17:52:09 UTC) #4
alex clarke (OOO till 29th)
PTAL
3 years, 11 months ago (2017-01-13 17:52:37 UTC) #5
Sami
Great, lgtm with a couple of nits. https://codereview.chromium.org/2637463002/diff/60001/third_party/WebKit/Source/platform/scheduler/base/task_queue_impl.cc File third_party/WebKit/Source/platform/scheduler/base/task_queue_impl.cc (right): https://codereview.chromium.org/2637463002/diff/60001/third_party/WebKit/Source/platform/scheduler/base/task_queue_impl.cc#newcode826 third_party/WebKit/Source/platform/scheduler/base/task_queue_impl.cc:826: std::priority_queue<Task> swept; ...
3 years, 11 months ago (2017-01-13 19:00:31 UTC) #18
alex clarke (OOO till 29th)
https://codereview.chromium.org/2637463002/diff/60001/third_party/WebKit/Source/platform/scheduler/base/task_queue_impl.cc File third_party/WebKit/Source/platform/scheduler/base/task_queue_impl.cc (right): https://codereview.chromium.org/2637463002/diff/60001/third_party/WebKit/Source/platform/scheduler/base/task_queue_impl.cc#newcode826 third_party/WebKit/Source/platform/scheduler/base/task_queue_impl.cc:826: std::priority_queue<Task> swept; On 2017/01/13 19:00:30, Sami wrote: > nit: ...
3 years, 11 months ago (2017-01-13 19:04:40 UTC) #20
alex clarke (OOO till 29th)
haraken@ Can you please stamp for the extra files? Thanks!
3 years, 11 months ago (2017-01-13 19:05:16 UTC) #22
haraken
LGTM
3 years, 11 months ago (2017-01-15 23:40:24 UTC) #25
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2637463002/80001
3 years, 11 months ago (2017-01-16 10:14:41 UTC) #28
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2637463002/100001
3 years, 11 months ago (2017-01-16 11:23:53 UTC) #31
commit-bot: I haz the power
3 years, 11 months ago (2017-01-16 12:47:33 UTC) #34
Message was sent while issue was closed.
Committed patchset #6 (id:100001) as
https://chromium.googlesource.com/chromium/src/+/fd870526d2ed5a6b3577b46aa9f0...

Powered by Google App Engine
This is Rietveld 408576698