OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef EXTENSIONS_RENDERER_MODULE_SYSTEM_H_ | 5 #ifndef EXTENSIONS_RENDERER_MODULE_SYSTEM_H_ |
6 #define EXTENSIONS_RENDERER_MODULE_SYSTEM_H_ | 6 #define EXTENSIONS_RENDERER_MODULE_SYSTEM_H_ |
7 | 7 |
8 #include <map> | 8 #include <map> |
9 #include <memory> | 9 #include <memory> |
10 #include <set> | 10 #include <set> |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
146 void SetNativeLazyField(v8::Local<v8::Object> object, | 146 void SetNativeLazyField(v8::Local<v8::Object> object, |
147 const std::string& field, | 147 const std::string& field, |
148 const std::string& module_name, | 148 const std::string& module_name, |
149 const std::string& module_field); | 149 const std::string& module_field); |
150 | 150 |
151 // Passes exceptions to |handler| rather than console::Fatal. | 151 // Passes exceptions to |handler| rather than console::Fatal. |
152 void SetExceptionHandlerForTest(std::unique_ptr<ExceptionHandler> handler) { | 152 void SetExceptionHandlerForTest(std::unique_ptr<ExceptionHandler> handler) { |
153 exception_handler_ = std::move(handler); | 153 exception_handler_ = std::move(handler); |
154 } | 154 } |
155 | 155 |
| 156 // Called when a native binding is created in order to run any custom binding |
| 157 // code to set up various hooks. |
| 158 // TODO(devlin): We can get rid of this once we convert all our custom |
| 159 // bindings. |
| 160 void OnNativeBindingCreated(const std::string& api_name, |
| 161 v8::Local<v8::Value> api_bridge_value); |
| 162 |
156 protected: | 163 protected: |
157 friend class ModuleSystemTestEnvironment; | 164 friend class ModuleSystemTestEnvironment; |
158 friend class ScriptContext; | 165 friend class ScriptContext; |
159 void Invalidate() override; | 166 void Invalidate() override; |
160 | 167 |
161 private: | 168 private: |
162 typedef std::map<std::string, std::unique_ptr<NativeHandler>> | 169 typedef std::map<std::string, std::unique_ptr<NativeHandler>> |
163 NativeHandlerMap; | 170 NativeHandlerMap; |
164 | 171 |
165 // Retrieves the lazily defined field specified by |property|. | 172 // Retrieves the lazily defined field specified by |property|. |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
202 void RequireAsync(const v8::FunctionCallbackInfo<v8::Value>& args); | 209 void RequireAsync(const v8::FunctionCallbackInfo<v8::Value>& args); |
203 | 210 |
204 // Wraps |source| in a (function(define, require, requireNative, ...) {...}). | 211 // Wraps |source| in a (function(define, require, requireNative, ...) {...}). |
205 v8::Local<v8::String> WrapSource(v8::Local<v8::String> source); | 212 v8::Local<v8::String> WrapSource(v8::Local<v8::String> source); |
206 | 213 |
207 // NativeHandler implementation which returns the private area of an Object. | 214 // NativeHandler implementation which returns the private area of an Object. |
208 void Private(const v8::FunctionCallbackInfo<v8::Value>& args); | 215 void Private(const v8::FunctionCallbackInfo<v8::Value>& args); |
209 | 216 |
210 // Loads and runs a Javascript module. | 217 // Loads and runs a Javascript module. |
211 v8::Local<v8::Value> LoadModule(const std::string& module_name); | 218 v8::Local<v8::Value> LoadModule(const std::string& module_name); |
| 219 v8::Local<v8::Value> LoadModuleWithNativeAPIBridge( |
| 220 const std::string& module_name, |
| 221 v8::Local<v8::Value> api_object); |
212 | 222 |
213 // Invoked when a module is loaded in response to a requireAsync call. | 223 // Invoked when a module is loaded in response to a requireAsync call. |
214 // Resolves |resolver| with |value|. | 224 // Resolves |resolver| with |value|. |
215 void OnModuleLoaded( | 225 void OnModuleLoaded( |
216 std::unique_ptr<v8::Global<v8::Promise::Resolver>> resolver, | 226 std::unique_ptr<v8::Global<v8::Promise::Resolver>> resolver, |
217 v8::Local<v8::Value> value); | 227 v8::Local<v8::Value> value); |
218 | 228 |
219 // gin::ModuleRegistryObserver overrides. | 229 // gin::ModuleRegistryObserver overrides. |
220 void OnDidAddPendingModule( | 230 void OnDidAddPendingModule( |
221 const std::string& id, | 231 const std::string& id, |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
257 std::vector<std::unique_ptr<NativeHandler>> clobbered_native_handlers_; | 267 std::vector<std::unique_ptr<NativeHandler>> clobbered_native_handlers_; |
258 | 268 |
259 base::WeakPtrFactory<ModuleSystem> weak_factory_; | 269 base::WeakPtrFactory<ModuleSystem> weak_factory_; |
260 | 270 |
261 DISALLOW_COPY_AND_ASSIGN(ModuleSystem); | 271 DISALLOW_COPY_AND_ASSIGN(ModuleSystem); |
262 }; | 272 }; |
263 | 273 |
264 } // namespace extensions | 274 } // namespace extensions |
265 | 275 |
266 #endif // EXTENSIONS_RENDERER_MODULE_SYSTEM_H_ | 276 #endif // EXTENSIONS_RENDERER_MODULE_SYSTEM_H_ |
OLD | NEW |