1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "third_party/blink/renderer/core/testing/dummy_modulator.h"
6
7 #include "third_party/blink/renderer/bindings/core/v8/module_record.h"
8 #include "third_party/blink/renderer/bindings/core/v8/script_value.h"
9 #include "third_party/blink/renderer/core/script/module_record_resolver.h"
10
11 namespace blink {
12
13 namespace {
14
15 class EmptyModuleRecordResolver final : public ModuleRecordResolver {
16 public:
17 EmptyModuleRecordResolver() = default;
18
19 // We ignore {Unr,R}egisterModuleScript() calls caused by
20 // ModuleScript::CreateForTest().
RegisterModuleScript(const ModuleScript *)21 void RegisterModuleScript(const ModuleScript*) override {}
UnregisterModuleScript(const ModuleScript *)22 void UnregisterModuleScript(const ModuleScript*) override {}
23
GetModuleScriptFromModuleRecord(v8::Local<v8::Module>) const24 const ModuleScript* GetModuleScriptFromModuleRecord(
25 v8::Local<v8::Module>) const override {
26 NOTREACHED();
27 return nullptr;
28 }
29
Resolve(const String & specifier,v8::Local<v8::Module> referrer,ExceptionState &)30 v8::Local<v8::Module> Resolve(const String& specifier,
31 v8::Local<v8::Module> referrer,
32 ExceptionState&) override {
33 NOTREACHED();
34 return v8::Local<v8::Module>();
35 }
36 };
37
38 } // namespace
39
DummyModulator()40 DummyModulator::DummyModulator()
41 : resolver_(MakeGarbageCollected<EmptyModuleRecordResolver>()) {}
42
43 DummyModulator::~DummyModulator() = default;
44
Trace(Visitor * visitor) const45 void DummyModulator::Trace(Visitor* visitor) const {
46 visitor->Trace(resolver_);
47 Modulator::Trace(visitor);
48 }
49
GetScriptState()50 ScriptState* DummyModulator::GetScriptState() {
51 NOTREACHED();
52 return nullptr;
53 }
54
GetV8CacheOptions() const55 mojom::blink::V8CacheOptions DummyModulator::GetV8CacheOptions() const {
56 return mojom::blink::V8CacheOptions::kDefault;
57 }
58
IsScriptingDisabled() const59 bool DummyModulator::IsScriptingDisabled() const {
60 return false;
61 }
62
ImportMapsEnabled() const63 bool DummyModulator::ImportMapsEnabled() const {
64 return false;
65 }
66
GetModuleRecordResolver()67 ModuleRecordResolver* DummyModulator::GetModuleRecordResolver() {
68 return resolver_.Get();
69 }
70
TaskRunner()71 base::SingleThreadTaskRunner* DummyModulator::TaskRunner() {
72 NOTREACHED();
73 return nullptr;
74 }
75
FetchTree(const KURL &,ResourceFetcher *,mojom::blink::RequestContextType,network::mojom::RequestDestination,const ScriptFetchOptions &,ModuleScriptCustomFetchType,ModuleTreeClient *)76 void DummyModulator::FetchTree(const KURL&,
77 ResourceFetcher*,
78 mojom::blink::RequestContextType,
79 network::mojom::RequestDestination,
80 const ScriptFetchOptions&,
81 ModuleScriptCustomFetchType,
82 ModuleTreeClient*) {
83 NOTREACHED();
84 }
85
FetchSingle(const ModuleScriptFetchRequest &,ResourceFetcher *,ModuleGraphLevel,ModuleScriptCustomFetchType,SingleModuleClient *)86 void DummyModulator::FetchSingle(const ModuleScriptFetchRequest&,
87 ResourceFetcher*,
88 ModuleGraphLevel,
89 ModuleScriptCustomFetchType,
90 SingleModuleClient*) {
91 NOTREACHED();
92 }
93
FetchDescendantsForInlineScript(ModuleScript *,ResourceFetcher *,mojom::blink::RequestContextType,network::mojom::RequestDestination,ModuleTreeClient *)94 void DummyModulator::FetchDescendantsForInlineScript(
95 ModuleScript*,
96 ResourceFetcher*,
97 mojom::blink::RequestContextType,
98 network::mojom::RequestDestination,
99 ModuleTreeClient*) {
100 NOTREACHED();
101 }
102
GetFetchedModuleScript(const KURL &)103 ModuleScript* DummyModulator::GetFetchedModuleScript(const KURL&) {
104 NOTREACHED();
105 return nullptr;
106 }
107
ResolveModuleSpecifier(const String &,const KURL &,String *)108 KURL DummyModulator::ResolveModuleSpecifier(const String&,
109 const KURL&,
110 String*) {
111 NOTREACHED();
112 return KURL();
113 }
114
HasValidContext()115 bool DummyModulator::HasValidContext() {
116 return true;
117 }
118
ResolveDynamically(const String &,const KURL &,const ReferrerScriptInfo &,ScriptPromiseResolver *)119 void DummyModulator::ResolveDynamically(const String&,
120 const KURL&,
121 const ReferrerScriptInfo&,
122 ScriptPromiseResolver*) {
123 NOTREACHED();
124 }
125
CreateTypeError(const String & message) const126 ScriptValue DummyModulator::CreateTypeError(const String& message) const {
127 NOTREACHED();
128 return ScriptValue();
129 }
CreateSyntaxError(const String & message) const130 ScriptValue DummyModulator::CreateSyntaxError(const String& message) const {
131 NOTREACHED();
132 return ScriptValue();
133 }
134
RegisterImportMap(const ImportMap *,ScriptValue error_to_rethrow)135 void DummyModulator::RegisterImportMap(const ImportMap*,
136 ScriptValue error_to_rethrow) {
137 NOTREACHED();
138 }
139
IsAcquiringImportMaps() const140 bool DummyModulator::IsAcquiringImportMaps() const {
141 NOTREACHED();
142 return true;
143 }
144
ClearIsAcquiringImportMaps()145 void DummyModulator::ClearIsAcquiringImportMaps() {
146 NOTREACHED();
147 }
148
GetImportMapForTest() const149 const ImportMap* DummyModulator::GetImportMapForTest() const {
150 NOTREACHED();
151 return nullptr;
152 }
153
HostGetImportMetaProperties(v8::Local<v8::Module>) const154 ModuleImportMeta DummyModulator::HostGetImportMetaProperties(
155 v8::Local<v8::Module>) const {
156 NOTREACHED();
157 return ModuleImportMeta(String());
158 }
159
InstantiateModule(v8::Local<v8::Module>,const KURL &)160 ScriptValue DummyModulator::InstantiateModule(v8::Local<v8::Module>,
161 const KURL&) {
162 NOTREACHED();
163 return ScriptValue();
164 }
165
ModuleRequestsFromModuleRecord(v8::Local<v8::Module>)166 Vector<ModuleRequest> DummyModulator::ModuleRequestsFromModuleRecord(
167 v8::Local<v8::Module>) {
168 NOTREACHED();
169 return Vector<ModuleRequest>();
170 }
171
CreateModuleScriptFetcher(ModuleScriptCustomFetchType,util::PassKey<ModuleScriptLoader> pass_key)172 ModuleScriptFetcher* DummyModulator::CreateModuleScriptFetcher(
173 ModuleScriptCustomFetchType,
174 util::PassKey<ModuleScriptLoader> pass_key) {
175 NOTREACHED();
176 return nullptr;
177 }
178
ProduceCacheModuleTreeTopLevel(ModuleScript *)179 void DummyModulator::ProduceCacheModuleTreeTopLevel(ModuleScript*) {}
180
181 } // namespace blink
182