| Index: third_party/WebKit/Source/modules/remoteplayback/RemotePlayback.cpp
|
| diff --git a/third_party/WebKit/Source/modules/remoteplayback/RemotePlayback.cpp b/third_party/WebKit/Source/modules/remoteplayback/RemotePlayback.cpp
|
| index f16fb0eea9dbcc423b02d6c46bc693933f981984..3a266f590fad4bedbcf6da978dbc62b4fdea0a66 100644
|
| --- a/third_party/WebKit/Source/modules/remoteplayback/RemotePlayback.cpp
|
| +++ b/third_party/WebKit/Source/modules/remoteplayback/RemotePlayback.cpp
|
| @@ -9,10 +9,10 @@
|
| #include "core/HTMLNames.h"
|
| #include "core/dom/DOMException.h"
|
| #include "core/dom/Document.h"
|
| -#include "core/dom/ExecutionContextTask.h"
|
| #include "core/dom/TaskRunnerHelper.h"
|
| #include "core/events/Event.h"
|
| #include "core/html/HTMLMediaElement.h"
|
| +#include "core/inspector/InspectorInstrumentation.h"
|
| #include "modules/EventTargetModules.h"
|
| #include "platform/MemoryCoordinator.h"
|
| #include "platform/UserGestureIndicator.h"
|
| @@ -39,6 +39,12 @@ const AtomicString& remotePlaybackStateToString(WebRemotePlaybackState state) {
|
| return disconnectedValue;
|
| }
|
|
|
| +void runNotifyInitialAvailabilityTask(ExecutionContext* context,
|
| + std::unique_ptr<WTF::Closure> task) {
|
| + InspectorInstrumentation::AsyncTask asyncTask(context, task.get());
|
| + (*task)();
|
| +}
|
| +
|
| } // anonymous namespace
|
|
|
| // static
|
| @@ -90,11 +96,18 @@ ScriptPromise RemotePlayback::watchAvailability(
|
| .isNewEntry);
|
|
|
| // Report the current availability via the callback.
|
| - getExecutionContext()->postTask(
|
| - TaskType::MediaElementEvent, BLINK_FROM_HERE,
|
| - createSameThreadTask(&RemotePlayback::notifyInitialAvailability,
|
| - wrapPersistent(this), id),
|
| - "watchAvailabilityCallback");
|
| + // TODO(yuryu): Wrapping notifyInitialAvailability with WTF::Closure as
|
| + // InspectorInstrumentation requires a globally unique pointer to track tasks.
|
| + // We can remove the wrapper if InspectorInstrumentation returns a task id.
|
| + std::unique_ptr<WTF::Closure> task = WTF::bind(
|
| + &RemotePlayback::notifyInitialAvailability, wrapPersistent(this), id);
|
| + InspectorInstrumentation::asyncTaskScheduled(
|
| + getExecutionContext(), "watchAvailabilityCallback", task.get());
|
| + TaskRunnerHelper::get(TaskType::MediaElementEvent, getExecutionContext())
|
| + ->postTask(BLINK_FROM_HERE,
|
| + WTF::bind(runNotifyInitialAvailabilityTask,
|
| + wrapPersistent(getExecutionContext()),
|
| + WTF::passed(std::move(task))));
|
|
|
| // TODO(avayvod): Currently the availability is tracked for each media element
|
| // as soon as it's created, we probably want to limit that to when the
|
|
|