1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "third_party/blink/renderer/core/workers/threaded_object_proxy_base.h"
#include <memory>
#include "third_party/blink/renderer/core/execution_context/execution_context.h"
#include "third_party/blink/renderer/core/inspector/console_message.h"
#include "third_party/blink/renderer/core/workers/parent_execution_context_task_runners.h"
#include "third_party/blink/renderer/core/workers/threaded_messaging_proxy_base.h"
#include "third_party/blink/renderer/platform/scheduler/public/post_cross_thread_task.h"
#include "third_party/blink/renderer/platform/wtf/cross_thread_functional.h"
#include "third_party/blink/renderer/platform/wtf/functional.h"
namespace blink {
void ThreadedObjectProxyBase::CountFeature(WebFeature feature) {
PostCrossThreadTask(
*GetParentExecutionContextTaskRunners()->Get(TaskType::kInternalDefault),
FROM_HERE,
CrossThreadBindOnce(&ThreadedMessagingProxyBase::CountFeature,
MessagingProxyWeakPtr(), feature));
}
void ThreadedObjectProxyBase::CountDeprecation(WebFeature feature) {
PostCrossThreadTask(
*GetParentExecutionContextTaskRunners()->Get(TaskType::kInternalDefault),
FROM_HERE,
CrossThreadBindOnce(&ThreadedMessagingProxyBase::CountDeprecation,
MessagingProxyWeakPtr(), feature));
}
void ThreadedObjectProxyBase::ReportConsoleMessage(
mojom::ConsoleMessageSource source,
mojom::ConsoleMessageLevel level,
const String& message,
SourceLocation* location) {
PostCrossThreadTask(
*GetParentExecutionContextTaskRunners()->Get(TaskType::kInternalDefault),
FROM_HERE,
CrossThreadBindOnce(&ThreadedMessagingProxyBase::ReportConsoleMessage,
MessagingProxyWeakPtr(), source, level, message,
WTF::Passed(location->Clone())));
}
void ThreadedObjectProxyBase::DidCloseWorkerGlobalScope() {
PostCrossThreadTask(
*GetParentExecutionContextTaskRunners()->Get(TaskType::kInternalDefault),
FROM_HERE,
CrossThreadBindOnce(&ThreadedMessagingProxyBase::TerminateGlobalScope,
MessagingProxyWeakPtr()));
}
void ThreadedObjectProxyBase::DidTerminateWorkerThread() {
// This will terminate the MessagingProxy.
PostCrossThreadTask(
*GetParentExecutionContextTaskRunners()->Get(TaskType::kInternalDefault),
FROM_HERE,
CrossThreadBindOnce(&ThreadedMessagingProxyBase::WorkerThreadTerminated,
MessagingProxyWeakPtr()));
}
ParentExecutionContextTaskRunners*
ThreadedObjectProxyBase::GetParentExecutionContextTaskRunners() {
return parent_execution_context_task_runners_.Get();
}
ThreadedObjectProxyBase::ThreadedObjectProxyBase(
ParentExecutionContextTaskRunners* parent_execution_context_task_runners)
: parent_execution_context_task_runners_(
parent_execution_context_task_runners) {}
} // namespace blink
|