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 |