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