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/script_value.h"
8 #include "third_party/blink/renderer/core/script/module_record_resolver.h"
9
10 namespace blink {
11
12 namespace {
13
14 class EmptyModuleRecordResolver final : public ModuleRecordResolver {
15 public:
16 EmptyModuleRecordResolver() = default;
17
18 // We ignore {Unr,R}egisterModuleScript() calls caused by
19 // ModuleScript::CreateForTest().
RegisterModuleScript(const ModuleScript *)20 void RegisterModuleScript(const ModuleScript*) override {}
UnregisterModuleScript(const ModuleScript *)21 void UnregisterModuleScript(const ModuleScript*) override {}
22
GetModuleScriptFromModuleRecord(v8::Local<v8::Module>) const23 const ModuleScript* GetModuleScriptFromModuleRecord(
24 v8::Local<v8::Module>) const override {
25 NOTREACHED();
26 return nullptr;
27 }
28
Resolve(const String & specifier,v8::Local<v8::Module> referrer,ExceptionState &)29 v8::Local<v8::Module> Resolve(const String& specifier,
30 v8::Local<v8::Module> referrer,
31 ExceptionState&) override {
32 NOTREACHED();
33 return v8::Local<v8::Module>();
34 }
35 };
36
37 } // namespace
38
DummyModulator()39 DummyModulator::DummyModulator()
40 : resolver_(MakeGarbageCollected<EmptyModuleRecordResolver>()) {}
41
42 DummyModulator::~DummyModulator() = default;
43
Trace(Visitor * visitor)44 void DummyModulator::Trace(Visitor* visitor) {
45 visitor->Trace(resolver_);
46 Modulator::Trace(visitor);
47 }
48
GetScriptState()49 ScriptState* DummyModulator::GetScriptState() {
50 NOTREACHED();
51 return nullptr;
52 }
53
GetV8CacheOptions() const54 V8CacheOptions DummyModulator::GetV8CacheOptions() const {
55 return kV8CacheOptionsDefault;
56 }
57
IsScriptingDisabled() const58 bool DummyModulator::IsScriptingDisabled() const {
59 return false;
60 }
61
ImportMapsEnabled() const62 bool DummyModulator::ImportMapsEnabled() const {
63 return false;
64 }
65
GetModuleRecordResolver()66 ModuleRecordResolver* DummyModulator::GetModuleRecordResolver() {
67 return resolver_.Get();
68 }
69
TaskRunner()70 base::SingleThreadTaskRunner* DummyModulator::TaskRunner() {
71 NOTREACHED();
72 return nullptr;
73 }
74
FetchTree(const KURL &,ResourceFetcher *,mojom::RequestContextType,network::mojom::RequestDestination,const ScriptFetchOptions &,ModuleScriptCustomFetchType,ModuleTreeClient *)75 void DummyModulator::FetchTree(const KURL&,
76 ResourceFetcher*,
77 mojom::RequestContextType,
78 network::mojom::RequestDestination,
79 const ScriptFetchOptions&,
80 ModuleScriptCustomFetchType,
81 ModuleTreeClient*) {
82 NOTREACHED();
83 }
84
FetchSingle(const ModuleScriptFetchRequest &,ResourceFetcher *,ModuleGraphLevel,ModuleScriptCustomFetchType,SingleModuleClient *)85 void DummyModulator::FetchSingle(const ModuleScriptFetchRequest&,
86 ResourceFetcher*,
87 ModuleGraphLevel,
88 ModuleScriptCustomFetchType,
89 SingleModuleClient*) {
90 NOTREACHED();
91 }
92
FetchDescendantsForInlineScript(ModuleScript *,ResourceFetcher *,mojom::RequestContextType,network::mojom::RequestDestination,ModuleTreeClient *)93 void DummyModulator::FetchDescendantsForInlineScript(
94 ModuleScript*,
95 ResourceFetcher*,
96 mojom::RequestContextType,
97 network::mojom::RequestDestination,
98 ModuleTreeClient*) {
99 NOTREACHED();
100 }
101
GetFetchedModuleScript(const KURL &)102 ModuleScript* DummyModulator::GetFetchedModuleScript(const KURL&) {
103 NOTREACHED();
104 return nullptr;
105 }
106
ResolveModuleSpecifier(const String &,const KURL &,String *)107 KURL DummyModulator::ResolveModuleSpecifier(const String&,
108 const KURL&,
109 String*) {
110 NOTREACHED();
111 return KURL();
112 }
113
HasValidContext()114 bool DummyModulator::HasValidContext() {
115 return true;
116 }
117
ResolveDynamically(const String &,const KURL &,const ReferrerScriptInfo &,ScriptPromiseResolver *)118 void DummyModulator::ResolveDynamically(const String&,
119 const KURL&,
120 const ReferrerScriptInfo&,
121 ScriptPromiseResolver*) {
122 NOTREACHED();
123 }
124
CreateTypeError(const String & message) const125 ScriptValue DummyModulator::CreateTypeError(const String& message) const {
126 NOTREACHED();
127 return ScriptValue();
128 }
CreateSyntaxError(const String & message) const129 ScriptValue DummyModulator::CreateSyntaxError(const String& message) const {
130 NOTREACHED();
131 return ScriptValue();
132 }
133
RegisterImportMap(const ImportMap *,ScriptValue error_to_rethrow)134 void DummyModulator::RegisterImportMap(const ImportMap*,
135 ScriptValue error_to_rethrow) {
136 NOTREACHED();
137 }
138
IsAcquiringImportMaps() const139 bool DummyModulator::IsAcquiringImportMaps() const {
140 NOTREACHED();
141 return true;
142 }
143
ClearIsAcquiringImportMaps()144 void DummyModulator::ClearIsAcquiringImportMaps() {
145 NOTREACHED();
146 }
147
GetImportMapForTest() const148 const ImportMap* DummyModulator::GetImportMapForTest() const {
149 NOTREACHED();
150 return nullptr;
151 }
152
HostGetImportMetaProperties(v8::Local<v8::Module>) const153 ModuleImportMeta DummyModulator::HostGetImportMetaProperties(
154 v8::Local<v8::Module>) const {
155 NOTREACHED();
156 return ModuleImportMeta(String());
157 }
158
InstantiateModule(v8::Local<v8::Module>,const KURL &)159 ScriptValue DummyModulator::InstantiateModule(v8::Local<v8::Module>,
160 const KURL&) {
161 NOTREACHED();
162 return ScriptValue();
163 }
164
ModuleRequestsFromModuleRecord(v8::Local<v8::Module>)165 Vector<Modulator::ModuleRequest> DummyModulator::ModuleRequestsFromModuleRecord(
166 v8::Local<v8::Module>) {
167 NOTREACHED();
168 return Vector<ModuleRequest>();
169 }
170
ExecuteModule(ModuleScript *,CaptureEvalErrorFlag)171 ScriptValue DummyModulator::ExecuteModule(ModuleScript*, CaptureEvalErrorFlag) {
172 NOTREACHED();
173 return ScriptValue();
174 }
175
CreateModuleScriptFetcher(ModuleScriptCustomFetchType,util::PassKey<ModuleScriptLoader> pass_key)176 ModuleScriptFetcher* DummyModulator::CreateModuleScriptFetcher(
177 ModuleScriptCustomFetchType,
178 util::PassKey<ModuleScriptLoader> pass_key) {
179 NOTREACHED();
180 return nullptr;
181 }
182
183 } // namespace blink
184