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