New issue
Advanced search Search tips

Issue 624696 link

Starred by 2 users

Issue metadata

Status: Started
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Task

Blocked on:
issue 667310

Blocking:
issue 624689



Sign in to add a comment

Move all postTasks to WebFrameScheduler

Project Member Reported by haraken@chromium.org, Jun 30 2016

Issue description

We should move almost all postTasks from WebThread to WebFrameScheduler. As a result, we should remove MainThreadTaskRunner.

 
Blocking: 624689
Components: Blink>Scheduling
Project Member

Comment 3 by bugdroid1@chromium.org, Jul 11 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/31b559c09d324ae0c8b8c12399dd95b0bbc4dd9d

commit 31b559c09d324ae0c8b8c12399dd95b0bbc4dd9d
Author: haraken <haraken@chromium.org>
Date: Mon Jul 11 05:33:00 2016

Introduce Document::unthrottledTaskRunner()

This CL introduces Document::unthrottledTaskRunner() and move one task in
HTMLCanvasElement to the unthrottled task runner. We'll move more tasks to
the unthrottled task runner.

BUG=624696

Review-Url: https://codereview.chromium.org/2133623002
Cr-Commit-Position: refs/heads/master@{#404598}

[modify] https://crrev.com/31b559c09d324ae0c8b8c12399dd95b0bbc4dd9d/third_party/WebKit/Source/core/dom/Document.cpp
[modify] https://crrev.com/31b559c09d324ae0c8b8c12399dd95b0bbc4dd9d/third_party/WebKit/Source/core/dom/Document.h
[modify] https://crrev.com/31b559c09d324ae0c8b8c12399dd95b0bbc4dd9d/third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp

Project Member

Comment 5 by bugdroid1@chromium.org, Jul 26 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cce066dfc6c0825999730afcaba4d8b9c0beaa37

commit cce066dfc6c0825999730afcaba4d8b9c0beaa37
Author: tzik <tzik@chromium.org>
Date: Tue Jul 26 06:03:04 2016

Add ExecutionContext and ScriptState support to blink::TaskRunnerHelper

Many of users of TaskRunnerHelper have ExecutionContext or ScriptState
rather than Document or Frame, which are a few step away from EC or SS.
This CL add overloads of TaskRunnerHelper::getUnthrottledTaskRunner for
EC and SS for shorthand.

BUG=624696

Review-Url: https://codereview.chromium.org/2178263002
Cr-Commit-Position: refs/heads/master@{#407721}

[modify] https://crrev.com/cce066dfc6c0825999730afcaba4d8b9c0beaa37/third_party/WebKit/Source/core/dom/TaskRunnerHelper.cpp
[modify] https://crrev.com/cce066dfc6c0825999730afcaba4d8b9c0beaa37/third_party/WebKit/Source/core/dom/TaskRunnerHelper.h

Project Member

Comment 6 by bugdroid1@chromium.org, Jul 27 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ee30ec4e77a15b515e58ed8123c78c2d0692c613

commit ee30ec4e77a15b515e58ed8123c78c2d0692c613
Author: tzik <tzik@chromium.org>
Date: Wed Jul 27 07:14:17 2016

Return unique_ptr<WebDataConsumerHandle::Reader> directly from obtainReader

WebDataConsumerHandle::obtainReader was split into obtainReader and
obtainReaderInternal just to hide WTF::OwnPtr in public/platform.
Since all WTF::OwnPtr is replaced with std::unique_ptr, there's no reason
to have them separately.

BUG=624696

Review-Url: https://codereview.chromium.org/2172183003
Cr-Commit-Position: refs/heads/master@{#408070}

[modify] https://crrev.com/ee30ec4e77a15b515e58ed8123c78c2d0692c613/content/child/shared_memory_data_consumer_handle.cc
[modify] https://crrev.com/ee30ec4e77a15b515e58ed8123c78c2d0692c613/content/child/shared_memory_data_consumer_handle.h
[modify] https://crrev.com/ee30ec4e77a15b515e58ed8123c78c2d0692c613/content/child/shared_memory_data_consumer_handle_unittest.cc
[modify] https://crrev.com/ee30ec4e77a15b515e58ed8123c78c2d0692c613/content/child/web_data_consumer_handle_impl.cc
[modify] https://crrev.com/ee30ec4e77a15b515e58ed8123c78c2d0692c613/content/child/web_data_consumer_handle_impl.h
[modify] https://crrev.com/ee30ec4e77a15b515e58ed8123c78c2d0692c613/content/child/web_data_consumer_handle_impl_unittest.cc
[modify] https://crrev.com/ee30ec4e77a15b515e58ed8123c78c2d0692c613/third_party/WebKit/Source/core/loader/DocumentThreadableLoader.cpp
[modify] https://crrev.com/ee30ec4e77a15b515e58ed8123c78c2d0692c613/third_party/WebKit/Source/modules/fetch/BodyStreamBuffer.cpp
[modify] https://crrev.com/ee30ec4e77a15b515e58ed8123c78c2d0692c613/third_party/WebKit/Source/modules/fetch/BodyStreamBufferTest.cpp
[modify] https://crrev.com/ee30ec4e77a15b515e58ed8123c78c2d0692c613/third_party/WebKit/Source/modules/fetch/CompositeDataConsumerHandle.cpp
[modify] https://crrev.com/ee30ec4e77a15b515e58ed8123c78c2d0692c613/third_party/WebKit/Source/modules/fetch/CompositeDataConsumerHandle.h
[modify] https://crrev.com/ee30ec4e77a15b515e58ed8123c78c2d0692c613/third_party/WebKit/Source/modules/fetch/CompositeDataConsumerHandleTest.cpp
[modify] https://crrev.com/ee30ec4e77a15b515e58ed8123c78c2d0692c613/third_party/WebKit/Source/modules/fetch/DataConsumerHandleTestUtil.cpp
[modify] https://crrev.com/ee30ec4e77a15b515e58ed8123c78c2d0692c613/third_party/WebKit/Source/modules/fetch/DataConsumerHandleTestUtil.h
[modify] https://crrev.com/ee30ec4e77a15b515e58ed8123c78c2d0692c613/third_party/WebKit/Source/modules/fetch/DataConsumerHandleUtil.cpp
[modify] https://crrev.com/ee30ec4e77a15b515e58ed8123c78c2d0692c613/third_party/WebKit/Source/modules/fetch/DataConsumerTee.cpp
[modify] https://crrev.com/ee30ec4e77a15b515e58ed8123c78c2d0692c613/third_party/WebKit/Source/modules/fetch/DataConsumerTeeTest.cpp
[modify] https://crrev.com/ee30ec4e77a15b515e58ed8123c78c2d0692c613/third_party/WebKit/Source/modules/fetch/FetchBlobDataConsumerHandle.cpp
[modify] https://crrev.com/ee30ec4e77a15b515e58ed8123c78c2d0692c613/third_party/WebKit/Source/modules/fetch/FetchBlobDataConsumerHandle.h
[modify] https://crrev.com/ee30ec4e77a15b515e58ed8123c78c2d0692c613/third_party/WebKit/Source/modules/fetch/FetchBlobDataConsumerHandleTest.cpp
[add] https://crrev.com/ee30ec4e77a15b515e58ed8123c78c2d0692c613/third_party/WebKit/Source/modules/fetch/FetchDataConsumerHandle.cpp
[modify] https://crrev.com/ee30ec4e77a15b515e58ed8123c78c2d0692c613/third_party/WebKit/Source/modules/fetch/FetchDataConsumerHandle.h
[modify] https://crrev.com/ee30ec4e77a15b515e58ed8123c78c2d0692c613/third_party/WebKit/Source/modules/fetch/FetchDataLoader.cpp
[modify] https://crrev.com/ee30ec4e77a15b515e58ed8123c78c2d0692c613/third_party/WebKit/Source/modules/fetch/FetchDataLoaderTest.cpp
[modify] https://crrev.com/ee30ec4e77a15b515e58ed8123c78c2d0692c613/third_party/WebKit/Source/modules/fetch/FetchFormDataConsumerHandle.cpp
[modify] https://crrev.com/ee30ec4e77a15b515e58ed8123c78c2d0692c613/third_party/WebKit/Source/modules/fetch/FetchFormDataConsumerHandle.h
[modify] https://crrev.com/ee30ec4e77a15b515e58ed8123c78c2d0692c613/third_party/WebKit/Source/modules/fetch/FetchFormDataConsumerHandleTest.cpp
[modify] https://crrev.com/ee30ec4e77a15b515e58ed8123c78c2d0692c613/third_party/WebKit/Source/modules/fetch/ReadableStreamDataConsumerHandle.cpp
[modify] https://crrev.com/ee30ec4e77a15b515e58ed8123c78c2d0692c613/third_party/WebKit/Source/modules/fetch/ReadableStreamDataConsumerHandle.h
[modify] https://crrev.com/ee30ec4e77a15b515e58ed8123c78c2d0692c613/third_party/WebKit/Source/modules/fetch/ReadableStreamDataConsumerHandleTest.cpp
[modify] https://crrev.com/ee30ec4e77a15b515e58ed8123c78c2d0692c613/third_party/WebKit/Source/modules/modules.gypi
[modify] https://crrev.com/ee30ec4e77a15b515e58ed8123c78c2d0692c613/third_party/WebKit/Source/platform/exported/WebDataConsumerHandle.cpp
[modify] https://crrev.com/ee30ec4e77a15b515e58ed8123c78c2d0692c613/third_party/WebKit/public/platform/WebDataConsumerHandle.h

Project Member

Comment 7 by bugdroid1@chromium.org, Jul 27 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/138740d5a899e146fb2c3c7d5185f924ff3e8dba

commit 138740d5a899e146fb2c3c7d5185f924ff3e8dba
Author: tzik <tzik@chromium.org>
Date: Wed Jul 27 08:57:36 2016

Export TaskRunnerHelper functions to expose it to modules/

BUG=624696

Review-Url: https://codereview.chromium.org/2183383002
Cr-Commit-Position: refs/heads/master@{#408079}

[modify] https://crrev.com/138740d5a899e146fb2c3c7d5185f924ff3e8dba/third_party/WebKit/Source/core/dom/TaskRunnerHelper.h

Project Member

Comment 10 by bugdroid1@chromium.org, Aug 9 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/63ab66a88765cce8f4434d07885185e430772697

commit 63ab66a88765cce8f4434d07885185e430772697
Author: haraken <haraken@chromium.org>
Date: Tue Aug 09 05:52:45 2016

Use Networking task runner for FrameLoader::checkTimerFired

I don't think this task is explicitly speced, but it would make sense to use
the networking task runner (which corresponds to the loading task runner in the current
implementation).

BUG=624696

Review-Url: https://codereview.chromium.org/2223823002
Cr-Commit-Position: refs/heads/master@{#410591}

[modify] https://crrev.com/63ab66a88765cce8f4434d07885185e430772697/third_party/WebKit/Source/core/loader/FrameLoader.cpp

Project Member

Comment 11 by bugdroid1@chromium.org, Aug 17 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3562545a8b6b8ae64da21c1b36772898fe1686fa

commit 3562545a8b6b8ae64da21c1b36772898fe1686fa
Author: haraken <haraken@chromium.org>
Date: Wed Aug 17 06:16:31 2016

Use TaskType::Timer for timer tasks

Timer tasks have already used the timer task runner.
So this CL doesn't change any behavior.

BUG=624696

Review-Url: https://codereview.chromium.org/2249363002
Cr-Commit-Position: refs/heads/master@{#412459}

[modify] https://crrev.com/3562545a8b6b8ae64da21c1b36772898fe1686fa/third_party/WebKit/Source/core/dom/Document.cpp

Project Member

Comment 12 by bugdroid1@chromium.org, Aug 17 2016

Project Member

Comment 15 by bugdroid1@chromium.org, Sep 8 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f884e370f225e3cb7cde91f08dcc369952c7b863

commit f884e370f225e3cb7cde91f08dcc369952c7b863
Author: tzik <tzik@chromium.org>
Date: Thu Sep 08 09:11:54 2016

Use per-frame task runner in XHR

The XHR spec describes progress events on XHR are queued on the networking
task source, where Networking task runner is the corresponding task runner.
https://xhr.spec.whatwg.org/#dom-xmlhttprequest-send

BUG=624696

Review-Url: https://codereview.chromium.org/2269513002
Cr-Commit-Position: refs/heads/master@{#417230}

[modify] https://crrev.com/f884e370f225e3cb7cde91f08dcc369952c7b863/third_party/WebKit/Source/core/xmlhttprequest/XMLHttpRequestProgressEventThrottle.cpp

Project Member

Comment 16 by bugdroid1@chromium.org, Sep 8 2016

Labels: merge-merged-2854
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f884e370f225e3cb7cde91f08dcc369952c7b863

commit f884e370f225e3cb7cde91f08dcc369952c7b863
Author: tzik <tzik@chromium.org>
Date: Thu Sep 08 09:11:54 2016

Use per-frame task runner in XHR

The XHR spec describes progress events on XHR are queued on the networking
task source, where Networking task runner is the corresponding task runner.
https://xhr.spec.whatwg.org/#dom-xmlhttprequest-send

BUG=624696

Review-Url: https://codereview.chromium.org/2269513002
Cr-Commit-Position: refs/heads/master@{#417230}

[modify] https://crrev.com/f884e370f225e3cb7cde91f08dcc369952c7b863/third_party/WebKit/Source/core/xmlhttprequest/XMLHttpRequestProgressEventThrottle.cpp

Project Member

Comment 17 by bugdroid1@chromium.org, Oct 13 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9262bc8c2325f8bc299935df41d53e1725a91f07

commit 9262bc8c2325f8bc299935df41d53e1725a91f07
Author: tzik <tzik@chromium.org>
Date: Thu Oct 13 08:50:48 2016

Revert of Use per-frame task runner in XHR (patchset #5 id:80001 of https://codereview.chromium.org/2269513002/ )

Reason for revert:
Speculative revert for  http://crbug.com/645365 . Will reland once it turns out being not the case.

Original issue's description:
> Use per-frame task runner in XHR
>
> The XHR spec describes progress events on XHR are queued on the networking
> task source, where Networking task runner is the corresponding task runner.
> https://xhr.spec.whatwg.org/#dom-xmlhttprequest-send
>
> BUG=624696
>
> Committed: https://crrev.com/f884e370f225e3cb7cde91f08dcc369952c7b863
> Cr-Commit-Position: refs/heads/master@{#417230}

TBR=haraken@chromium.org,skyostil@chromium.org,alexclarke@chromium.org,dcheng@chromium.org,yhirano@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=624696,  645365 

Review-Url: https://codereview.chromium.org/2407233002
Cr-Commit-Position: refs/heads/master@{#424985}

[modify] https://crrev.com/9262bc8c2325f8bc299935df41d53e1725a91f07/third_party/WebKit/Source/core/xmlhttprequest/XMLHttpRequestProgressEventThrottle.cpp

Project Member

Comment 18 by bugdroid1@chromium.org, Oct 14 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7828bcebff00de65eeb90abc52e2d1c71e9c35d1

commit 7828bcebff00de65eeb90abc52e2d1c71e9c35d1
Author: tzik <tzik@chromium.org>
Date: Fri Oct 14 05:39:12 2016

Use per-frame WebTaskRunner on HTMLMediaElement

This CL replaces global task runner usage in HTMLMediaElement with
per-frame task runner, so that we can control task priorities per subframes.
The posted task uses MediaElementEvent task type as specified by the spec:
https://html.spec.whatwg.org/multipage/embedded-content.html#media-elements

BUG=624696

Review-Url: https://codereview.chromium.org/2390073003
Cr-Commit-Position: refs/heads/master@{#425259}

[modify] https://crrev.com/7828bcebff00de65eeb90abc52e2d1c71e9c35d1/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp

Elliott tells me that this is intended to replace (among other things) ExecutionContext::postTask. If that mechanism is deprecated, should it have a comment telling people to use TaskRunnerHelper instead?
Yes, we should :)

Blockedon: 667310
Status: Started (was: Untriaged)
REG c#19, according to tzik's comment on [1], there are still several missing features on TaskRunnerHelper, for example, suspension, cancellation etc, so it'd be too early to deprecate it.

[1] https://codereview.chromium.org/2532013002/#msg8
Project Member

Comment 24 by bugdroid1@chromium.org, Dec 6 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a806c8be80ff03b129f21c3315afa91a8c456206

commit a806c8be80ff03b129f21c3315afa91a8c456206
Author: altimin <altimin@chromium.org>
Date: Tue Dec 06 15:24:21 2016

Deprecate WebThread::getWebTaskRunner.

WebThread::getWebTaskRunner exposes default scheduler task queue, which
prevents tasks from being throttled. TaskRunnerHelper should be used instead.

R=haraken@chromium.org
CC=alexclarke@chromium.org,skyostil@chromium.org

BUG=624696

Review-Url: https://codereview.chromium.org/2552883004
Cr-Commit-Position: refs/heads/master@{#436600}

[modify] https://crrev.com/a806c8be80ff03b129f21c3315afa91a8c456206/third_party/WebKit/public/platform/WebThread.h

Project Member

Comment 25 by bugdroid1@chromium.org, Dec 7 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/bf328384d2995fc20693e606522db157897e2b20

commit bf328384d2995fc20693e606522db157897e2b20
Author: altimin <altimin@chromium.org>
Date: Wed Dec 07 14:28:31 2016

Expose per-frame task runners in WebLocalFrame.

Per blink per-frame task queues effort, expose task runners in WebLocalFrame
to be able to post tasks to appropriate frame-specific queues from outside
blink.

This patch also makes WebMediaPlayer post tasks to frame loading queue
instead of renderer default queue.

R=haraken@chromium.org,dalecurtis@chromium.org
CC=alexclarke@chromium.org,skyostil@chromium.org
BUG=624696

Review-Url: https://codereview.chromium.org/2553173003
Cr-Commit-Position: refs/heads/master@{#436945}

[modify] https://crrev.com/bf328384d2995fc20693e606522db157897e2b20/media/blink/webmediaplayer_impl.cc
[modify] https://crrev.com/bf328384d2995fc20693e606522db157897e2b20/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp
[modify] https://crrev.com/bf328384d2995fc20693e606522db157897e2b20/third_party/WebKit/Source/web/WebLocalFrameImpl.h
[modify] https://crrev.com/bf328384d2995fc20693e606522db157897e2b20/third_party/WebKit/public/web/WebLocalFrame.h

Cc: altimin@chromium.org
Project Member

Comment 27 by bugdroid1@chromium.org, Dec 8 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3941bd7f8f4e92357151d25d4bf52584d783707e

commit 3941bd7f8f4e92357151d25d4bf52584d783707e
Author: altimin <altimin@chromium.org>
Date: Thu Dec 08 16:18:48 2016

[blink] Support moving timers between WebTaskRunners

Support moving timers between WebTaskRunners for supporting per-frame
queues in use cases when objects (e.g. WebMediaPlayer) move between frames.

R=haraken@chromium.org
CC=alexclarke@chromium.org,skyostil@chromium.org

BUG=624696

Review-Url: https://codereview.chromium.org/2556053004
Cr-Commit-Position: refs/heads/master@{#437258}

[modify] https://crrev.com/3941bd7f8f4e92357151d25d4bf52584d783707e/third_party/WebKit/Source/platform/Timer.cpp
[modify] https://crrev.com/3941bd7f8f4e92357151d25d4bf52584d783707e/third_party/WebKit/Source/platform/Timer.h
[modify] https://crrev.com/3941bd7f8f4e92357151d25d4bf52584d783707e/third_party/WebKit/Source/platform/TimerTest.cpp

Project Member

Comment 28 by bugdroid1@chromium.org, Dec 18 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1306e6ee017c79e20d8b6e96d713a03c5ea9cdea

commit 1306e6ee017c79e20d8b6e96d713a03c5ea9cdea
Author: tzik <tzik@chromium.org>
Date: Sun Dec 18 21:48:05 2016

Specify TaskType of posted Task explicitly in DataTransferItem

This CL specifies the TaskType of a task posted by DataTransferItem as
UserInteraction, instead of using the default Unspecified TaskType.
The spec does not specify this explicitly, but TaskType::UserInteraction
should be the best fit here.
https://html.spec.whatwg.org/multipage/interaction.html#dom-datatransferitem-getasstring

BUG=624696

Review-Url: https://codereview.chromium.org/2585073002
Cr-Commit-Position: refs/heads/master@{#439378}

[modify] https://crrev.com/1306e6ee017c79e20d8b6e96d713a03c5ea9cdea/third_party/WebKit/Source/core/clipboard/DataTransferItem.cpp
[modify] https://crrev.com/1306e6ee017c79e20d8b6e96d713a03c5ea9cdea/third_party/WebKit/Source/core/dom/StringCallback.cpp
[modify] https://crrev.com/1306e6ee017c79e20d8b6e96d713a03c5ea9cdea/third_party/WebKit/Source/core/dom/StringCallback.h

Project Member

Comment 29 by bugdroid1@chromium.org, Dec 18 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/eda496bacb9a4b17c3995473a3725bb5d19559f0

commit eda496bacb9a4b17c3995473a3725bb5d19559f0
Author: tzik <tzik@chromium.org>
Date: Sun Dec 18 22:30:19 2016

Specify TaskType of posted Task explicitly in Document

This CL add explicit TaskTypes for tasks posted by Document itself.
On Document::addConsoleMessage, since it's an Inspector message,
this should not be throttled or suspended, so its TaskType should be
Unthrottled.
On Document::setAutofocusElement, the TaskType should be UserInteraction
according to the spec:
https://html.spec.whatwg.org/multipage/forms.html#autofocusing-a-form-control:-the-autofocus-attribute

BUG=624696

Review-Url: https://codereview.chromium.org/2583003002
Cr-Commit-Position: refs/heads/master@{#439381}

[modify] https://crrev.com/eda496bacb9a4b17c3995473a3725bb5d19559f0/third_party/WebKit/Source/core/dom/Document.cpp

Project Member

Comment 30 by bugdroid1@chromium.org, Dec 18 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7961a34505d39310861f2b80ba8f1d32cd49555d

commit 7961a34505d39310861f2b80ba8f1d32cd49555d
Author: tzik <tzik@chromium.org>
Date: Sun Dec 18 22:37:47 2016

Specify TaskType of posted Task explicitly in MessagePort

This CL assigns PostedMessage task type to onmessage event triggered by
MessagePort::postMessage().
The spec says each MessagePort has its own queue. However, Blink is not
yet ready to do it. TaskType::PostedMessage implies a single shared queue
as an alternative.
https://html.spec.whatwg.org/multipage/comms.html#message-ports

BUG=624696

Review-Url: https://codereview.chromium.org/2586093002
Cr-Commit-Position: refs/heads/master@{#439382}

[modify] https://crrev.com/7961a34505d39310861f2b80ba8f1d32cd49555d/third_party/WebKit/Source/core/dom/MessagePort.cpp

Project Member

Comment 31 by bugdroid1@chromium.org, Dec 18 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/10c4becea326eadf4fa3ffe2f65a05fde195dec5

commit 10c4becea326eadf4fa3ffe2f65a05fde195dec5
Author: tzik <tzik@chromium.org>
Date: Sun Dec 18 22:46:10 2016

Specify TaskType of posted Task explicitly in FileAPIs

The spec says File API should use its own FileReading task source.
https://w3c.github.io/FileAPI/#blobreader-task-source

OTOH, FileSystem API spec doesn't specify the task source to use explicitly.
However, since it's closely related to File API, FileSystem API should also
use TaskType::FileReading.
https://wicg.github.io/entries-api/

BUG=624696

Review-Url: https://codereview.chromium.org/2584233002
Cr-Commit-Position: refs/heads/master@{#439383}

[modify] https://crrev.com/10c4becea326eadf4fa3ffe2f65a05fde195dec5/third_party/WebKit/Source/core/dom/TaskRunnerHelper.cpp
[modify] https://crrev.com/10c4becea326eadf4fa3ffe2f65a05fde195dec5/third_party/WebKit/Source/core/dom/TaskRunnerHelper.h
[modify] https://crrev.com/10c4becea326eadf4fa3ffe2f65a05fde195dec5/third_party/WebKit/Source/core/fileapi/FileReader.cpp
[modify] https://crrev.com/10c4becea326eadf4fa3ffe2f65a05fde195dec5/third_party/WebKit/Source/core/frame/LocalDOMWindow.cpp
[modify] https://crrev.com/10c4becea326eadf4fa3ffe2f65a05fde195dec5/third_party/WebKit/Source/modules/filesystem/DOMFileSystem.h
[modify] https://crrev.com/10c4becea326eadf4fa3ffe2f65a05fde195dec5/third_party/WebKit/Source/modules/filesystem/LocalFileSystem.cpp

Project Member

Comment 32 by bugdroid1@chromium.org, Dec 18 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c7d47a47d6bd59baa0197569991deb7958d8657e

commit c7d47a47d6bd59baa0197569991deb7958d8657e
Author: tzik <tzik@chromium.org>
Date: Sun Dec 18 22:56:05 2016

Specify TaskType of posted Task explicitly in networking classes

This CL assigns TaskType to ContentSecurityPolicy::reportViolation
and NetworkStateNotifier::notifyObservers.

For CSP, the spec doesn't explicitly specify the task source. However,
since it's a fetch request, TaskType::Networking should be the best fit.
http://wicg.github.io/reporting/#try-delivery

For NetworkStateNotifier, the spec specifies it should be TaskType::Networking.
https://wicg.github.io/netinfo/#dependencies-and-definitions

BUG=624696

Review-Url: https://codereview.chromium.org/2584253002
Cr-Commit-Position: refs/heads/master@{#439385}

[modify] https://crrev.com/c7d47a47d6bd59baa0197569991deb7958d8657e/third_party/WebKit/Source/core/frame/csp/ContentSecurityPolicy.cpp
[modify] https://crrev.com/c7d47a47d6bd59baa0197569991deb7958d8657e/third_party/WebKit/Source/core/page/NetworkStateNotifier.cpp

Project Member

Comment 34 by bugdroid1@chromium.org, Dec 19 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/10f963b41ab8dcea765528f187bde5c252e960ad

commit 10f963b41ab8dcea765528f187bde5c252e960ad
Author: tzik <tzik@chromium.org>
Date: Mon Dec 19 00:51:02 2016

Specify TaskType of posted Task explicitly in popup UIs

This CL assigns TaskType::UserInteraction to the popup menu event and
notification event.

For Notification API event, the spec doesn't specify the task source
explicitly. TaskType::UserInteraction should be the best fit here.
https://notifications.spec.whatwg.org/

For popup menus, the event has non-web event source.
TaskType::UserInteraction is the best fit here too.

BUG=624696

Review-Url: https://codereview.chromium.org/2589493003
Cr-Commit-Position: refs/heads/master@{#439389}

[modify] https://crrev.com/10f963b41ab8dcea765528f187bde5c252e960ad/third_party/WebKit/Source/modules/notifications/Notification.cpp
[modify] https://crrev.com/10f963b41ab8dcea765528f187bde5c252e960ad/third_party/WebKit/Source/web/ExternalPopupMenu.cpp
[modify] https://crrev.com/10f963b41ab8dcea765528f187bde5c252e960ad/third_party/WebKit/Source/web/PopupMenuImpl.cpp

Project Member

Comment 35 by bugdroid1@chromium.org, Dec 19 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/90e944766a9d44dc9243dbf53e2b12a43d37c28d

commit 90e944766a9d44dc9243dbf53e2b12a43d37c28d
Author: tzik <tzik@chromium.org>
Date: Mon Dec 19 05:20:01 2016

Specify TaskType of posted Task explicitly in worker

Workers doesn't have the scheduler in Blink. So, its tasks are unthrottled
anyway. This CL assigns it as TaskType::Internal for now rather than
using TaskType::Unspecified.

BUG=624696

Review-Url: https://codereview.chromium.org/2580253002
Cr-Commit-Position: refs/heads/master@{#439414}

[modify] https://crrev.com/90e944766a9d44dc9243dbf53e2b12a43d37c28d/third_party/WebKit/Source/core/workers/WorkerEventQueue.cpp
[modify] https://crrev.com/90e944766a9d44dc9243dbf53e2b12a43d37c28d/third_party/WebKit/Source/core/workers/WorkerGlobalScope.h

Project Member

Comment 37 by bugdroid1@chromium.org, Dec 19 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/735320322f9380110505879c807a606f82ee2ee4

commit 735320322f9380110505879c807a606f82ee2ee4
Author: tzik <tzik@chromium.org>
Date: Mon Dec 19 07:48:32 2016

Specify TaskType of posted Task explicitly in media elements

The base Media elements spec has TaskType::MediaElementEvent as its own task source.
It should be used as the default, unless explicitly overridden by derived specs.
https://html.spec.whatwg.org/multipage/embedded-content.html#media-elements

Both Remote Playback API and Web Audio API also don't override it, so we should use
TaskType::MediaElementEvent here.
https://w3c.github.io/remote-playback/
https://webaudio.github.io/web-audio-api/

BUG=624696

Review-Url: https://codereview.chromium.org/2588603002
Cr-Commit-Position: refs/heads/master@{#439426}

[modify] https://crrev.com/735320322f9380110505879c807a606f82ee2ee4/third_party/WebKit/Source/modules/remoteplayback/RemotePlayback.cpp
[modify] https://crrev.com/735320322f9380110505879c807a606f82ee2ee4/third_party/WebKit/Source/modules/webaudio/AudioScheduledSourceNode.cpp
[modify] https://crrev.com/735320322f9380110505879c807a606f82ee2ee4/third_party/WebKit/Source/modules/webaudio/BaseAudioContext.cpp
[modify] https://crrev.com/735320322f9380110505879c807a606f82ee2ee4/third_party/WebKit/Source/modules/webaudio/MediaElementAudioSourceNode.cpp
[modify] https://crrev.com/735320322f9380110505879c807a606f82ee2ee4/third_party/WebKit/Source/modules/webaudio/OfflineAudioDestinationNode.cpp
[modify] https://crrev.com/735320322f9380110505879c807a606f82ee2ee4/third_party/WebKit/Source/modules/webaudio/ScriptProcessorNode.cpp

Project Member

Comment 40 by bugdroid1@chromium.org, Dec 20 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7b7cf3177c6221fec581acb28dbd3a4f3c3ca412

commit 7b7cf3177c6221fec581acb28dbd3a4f3c3ca412
Author: altimin <altimin@chromium.org>
Date: Tue Dec 20 19:36:57 2016

[blink] Split TaskType::Internal into UnspecedTimer and UnspecedLoading.

Differentiate between loading and non-loading internal blink tasks and
post them to appropriate task queues.

BUG=624696

R=skyostil@chromium.org,haraken@chromium.org

Review-Url: https://codereview.chromium.org/2556993005
Cr-Commit-Position: refs/heads/master@{#439869}

[modify] https://crrev.com/7b7cf3177c6221fec581acb28dbd3a4f3c3ca412/third_party/WebKit/Source/core/dom/Document.cpp
[modify] https://crrev.com/7b7cf3177c6221fec581acb28dbd3a4f3c3ca412/third_party/WebKit/Source/core/dom/TaskRunnerHelper.cpp
[modify] https://crrev.com/7b7cf3177c6221fec581acb28dbd3a4f3c3ca412/third_party/WebKit/Source/core/dom/TaskRunnerHelper.h
[modify] https://crrev.com/7b7cf3177c6221fec581acb28dbd3a4f3c3ca412/third_party/WebKit/Source/core/frame/FrameView.cpp
[modify] https://crrev.com/7b7cf3177c6221fec581acb28dbd3a4f3c3ca412/third_party/WebKit/Source/core/input/EventHandler.cpp
[modify] https://crrev.com/7b7cf3177c6221fec581acb28dbd3a4f3c3ca412/third_party/WebKit/Source/core/workers/DedicatedWorkerTest.cpp
[modify] https://crrev.com/7b7cf3177c6221fec581acb28dbd3a4f3c3ca412/third_party/WebKit/Source/core/workers/InProcessWorkerObjectProxy.cpp
[modify] https://crrev.com/7b7cf3177c6221fec581acb28dbd3a4f3c3ca412/third_party/WebKit/Source/core/workers/ParentFrameTaskRunners.cpp
[modify] https://crrev.com/7b7cf3177c6221fec581acb28dbd3a4f3c3ca412/third_party/WebKit/Source/core/workers/ThreadedMessagingProxyBase.cpp
[modify] https://crrev.com/7b7cf3177c6221fec581acb28dbd3a4f3c3ca412/third_party/WebKit/Source/core/workers/ThreadedObjectProxyBase.cpp
[modify] https://crrev.com/7b7cf3177c6221fec581acb28dbd3a4f3c3ca412/third_party/WebKit/Source/core/workers/ThreadedWorkletTest.cpp
[modify] https://crrev.com/7b7cf3177c6221fec581acb28dbd3a4f3c3ca412/third_party/WebKit/Source/core/workers/WorkerEventQueue.cpp
[modify] https://crrev.com/7b7cf3177c6221fec581acb28dbd3a4f3c3ca412/third_party/WebKit/Source/core/workers/WorkerThread.cpp
[modify] https://crrev.com/7b7cf3177c6221fec581acb28dbd3a4f3c3ca412/third_party/WebKit/Source/core/workers/WorkerThreadTest.cpp
[modify] https://crrev.com/7b7cf3177c6221fec581acb28dbd3a4f3c3ca412/third_party/WebKit/Source/web/WebSharedWorkerImpl.cpp

Project Member

Comment 41 by bugdroid1@chromium.org, Dec 21 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/942fe9a2a22a011760ab7a278f90cadd36872b84

commit 942fe9a2a22a011760ab7a278f90cadd36872b84
Author: altimin <altimin@chromium.org>
Date: Wed Dec 21 14:55:34 2016

Deprecate UnthrottledThreadTimer.

Per the effort of moving tasks to per-frame task queues, instead of
UnthrottledThreadTimer TaskRunnerTimer with appropriate WebTaskRunner
should be used. TaskRunnerHelper::get(TaskType::Unthrottled, ...) will
return the right WebTaskRunner.

Also this patch fixes usages of UnthrottledThreadTimer in HTMLMediaElement.

R=haraken@chromium.org,mlamouri@chromium.org

BUG=624696

Review-Url: https://codereview.chromium.org/2554113002
Cr-Commit-Position: refs/heads/master@{#440099}

[modify] https://crrev.com/942fe9a2a22a011760ab7a278f90cadd36872b84/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp
[modify] https://crrev.com/942fe9a2a22a011760ab7a278f90cadd36872b84/third_party/WebKit/Source/core/html/HTMLMediaElement.h
[modify] https://crrev.com/942fe9a2a22a011760ab7a278f90cadd36872b84/third_party/WebKit/Source/platform/Timer.h

Project Member

Comment 45 by bugdroid1@chromium.org, Oct 11 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/674571d88bd36e74274bfa038b2777e4cf51586f

commit 674571d88bd36e74274bfa038b2777e4cf51586f
Author: Nate Chapin <japhet@chromium.org>
Date: Wed Oct 11 18:04:00 2017

Route a per-frame task queue to Resource::TriggerNotificationForFinishObservers

Bug: 624696
Change-Id: I3afe187ceceb60a1ec2a0836692beef042767ffe
Reviewed-on: https://chromium-review.googlesource.com/704094
Commit-Queue: Nate Chapin <japhet@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Yutaka Hirano <yhirano@chromium.org>
Reviewed-by: Hiroshige Hayashizaki <hiroshige@chromium.org>
Cr-Commit-Position: refs/heads/master@{#508034}
[modify] https://crrev.com/674571d88bd36e74274bfa038b2777e4cf51586f/third_party/WebKit/Source/bindings/core/v8/ScriptStreamerTest.cpp
[modify] https://crrev.com/674571d88bd36e74274bfa038b2777e4cf51586f/third_party/WebKit/Source/core/html/ImageDocument.cpp
[modify] https://crrev.com/674571d88bd36e74274bfa038b2777e4cf51586f/third_party/WebKit/Source/core/html/parser/CSSPreloadScannerTest.cpp
[modify] https://crrev.com/674571d88bd36e74274bfa038b2777e4cf51586f/third_party/WebKit/Source/core/loader/LinkLoader.cpp
[modify] https://crrev.com/674571d88bd36e74274bfa038b2777e4cf51586f/third_party/WebKit/Source/core/loader/resource/CSSStyleSheetResource.cpp
[modify] https://crrev.com/674571d88bd36e74274bfa038b2777e4cf51586f/third_party/WebKit/Source/core/loader/resource/CSSStyleSheetResourceTest.cpp
[modify] https://crrev.com/674571d88bd36e74274bfa038b2777e4cf51586f/third_party/WebKit/Source/core/loader/resource/ImageResource.cpp
[modify] https://crrev.com/674571d88bd36e74274bfa038b2777e4cf51586f/third_party/WebKit/Source/core/loader/resource/ImageResource.h
[modify] https://crrev.com/674571d88bd36e74274bfa038b2777e4cf51586f/third_party/WebKit/Source/core/loader/resource/ImageResourceTest.cpp
[modify] https://crrev.com/674571d88bd36e74274bfa038b2777e4cf51586f/third_party/WebKit/Source/core/loader/resource/XSLStyleSheetResource.cpp
[modify] https://crrev.com/674571d88bd36e74274bfa038b2777e4cf51586f/third_party/WebKit/Source/platform/loader/fetch/MemoryCacheCorrectnessTest.cpp
[modify] https://crrev.com/674571d88bd36e74274bfa038b2777e4cf51586f/third_party/WebKit/Source/platform/loader/fetch/MemoryCacheTest.cpp
[modify] https://crrev.com/674571d88bd36e74274bfa038b2777e4cf51586f/third_party/WebKit/Source/platform/loader/fetch/RawResourceTest.cpp
[modify] https://crrev.com/674571d88bd36e74274bfa038b2777e4cf51586f/third_party/WebKit/Source/platform/loader/fetch/Resource.cpp
[modify] https://crrev.com/674571d88bd36e74274bfa038b2777e4cf51586f/third_party/WebKit/Source/platform/loader/fetch/Resource.h
[modify] https://crrev.com/674571d88bd36e74274bfa038b2777e4cf51586f/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp
[modify] https://crrev.com/674571d88bd36e74274bfa038b2777e4cf51586f/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcherTest.cpp
[modify] https://crrev.com/674571d88bd36e74274bfa038b2777e4cf51586f/third_party/WebKit/Source/platform/loader/fetch/ResourceTest.cpp

Project Member

Comment 46 by bugdroid1@chromium.org, Jan 3 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/037e1288ebf0ba1013239de105823ead9d7cebff

commit 037e1288ebf0ba1013239de105823ead9d7cebff
Author: Nate Chapin <japhet@chromium.org>
Date: Wed Jan 03 02:20:43 2018

Take a WebTaskRunner* on Resource::AddClient (and ResourceClient::SetResource)

When a cache hit occurs for a Resource that supports async cache hits,
Resource::AddClient schedules a task to process the cache hit on the
process-wide loading task runner, rather than a per-frame loading task runner.
This is because a Resource that is fully loaded has no context to determine
which frame it should attribute itself to. Having callers provide a WebTaskRunner*
to AddClient allows the caller to handle that attribution.

Bug: 624696
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Ic6d00e725cdd9141f83dcb5f8bcd34af3c5ac27d
Reviewed-on: https://chromium-review.googlesource.com/723879
Commit-Queue: Nate Chapin <japhet@chromium.org>
Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Yutaka Hirano <yhirano@chromium.org>
Reviewed-by: Hiroshige Hayashizaki <hiroshige@chromium.org>
Cr-Commit-Position: refs/heads/master@{#526587}
[modify] https://crrev.com/037e1288ebf0ba1013239de105823ead9d7cebff/third_party/WebKit/Source/core/css/CSSFontFaceSrcValue.cpp
[modify] https://crrev.com/037e1288ebf0ba1013239de105823ead9d7cebff/third_party/WebKit/Source/core/paint/PaintLayer.cpp
[modify] https://crrev.com/037e1288ebf0ba1013239de105823ead9d7cebff/third_party/WebKit/Source/core/style/ClipPathOperation.cpp
[modify] https://crrev.com/037e1288ebf0ba1013239de105823ead9d7cebff/third_party/WebKit/Source/core/style/ClipPathOperation.h
[modify] https://crrev.com/037e1288ebf0ba1013239de105823ead9d7cebff/third_party/WebKit/Source/core/style/FilterOperation.cpp
[modify] https://crrev.com/037e1288ebf0ba1013239de105823ead9d7cebff/third_party/WebKit/Source/core/style/FilterOperation.h
[modify] https://crrev.com/037e1288ebf0ba1013239de105823ead9d7cebff/third_party/WebKit/Source/core/style/FilterOperations.cpp
[modify] https://crrev.com/037e1288ebf0ba1013239de105823ead9d7cebff/third_party/WebKit/Source/core/style/FilterOperations.h
[modify] https://crrev.com/037e1288ebf0ba1013239de105823ead9d7cebff/third_party/WebKit/Source/core/svg/SVGElementProxy.cpp
[modify] https://crrev.com/037e1288ebf0ba1013239de105823ead9d7cebff/third_party/WebKit/Source/core/svg/SVGElementProxy.h
[modify] https://crrev.com/037e1288ebf0ba1013239de105823ead9d7cebff/third_party/WebKit/Source/modules/canvas/canvas2d/CanvasRenderingContext2D.cpp
[modify] https://crrev.com/037e1288ebf0ba1013239de105823ead9d7cebff/third_party/WebKit/Source/platform/loader/fetch/RawResourceTest.cpp
[modify] https://crrev.com/037e1288ebf0ba1013239de105823ead9d7cebff/third_party/WebKit/Source/platform/loader/fetch/Resource.cpp
[modify] https://crrev.com/037e1288ebf0ba1013239de105823ead9d7cebff/third_party/WebKit/Source/platform/loader/fetch/Resource.h
[modify] https://crrev.com/037e1288ebf0ba1013239de105823ead9d7cebff/third_party/WebKit/Source/platform/loader/fetch/ResourceClient.h
[modify] https://crrev.com/037e1288ebf0ba1013239de105823ead9d7cebff/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp
[modify] https://crrev.com/037e1288ebf0ba1013239de105823ead9d7cebff/third_party/WebKit/Source/platform/loader/fetch/ResourceTest.cpp

Cc: hajimehoshi@chromium.org
Labels: -Type-Bug -Pri-3 Pri-2 Type-Task

Sign in to add a comment