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 #include "extensions/renderer/module_system_test.h" | 5 #include "extensions/renderer/module_system_test.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <map> | 9 #include <map> |
| 10 #include <memory> |
10 #include <string> | 11 #include <string> |
11 #include <utility> | 12 #include <utility> |
12 | 13 |
13 #include "base/callback.h" | 14 #include "base/callback.h" |
14 #include "base/command_line.h" | 15 #include "base/command_line.h" |
15 #include "base/files/file_path.h" | 16 #include "base/files/file_path.h" |
16 #include "base/files/file_util.h" | 17 #include "base/files/file_util.h" |
17 #include "base/lazy_instance.h" | 18 #include "base/lazy_instance.h" |
18 #include "base/memory/scoped_ptr.h" | 19 #include "base/memory/ptr_util.h" |
19 #include "base/path_service.h" | 20 #include "base/path_service.h" |
20 #include "base/strings/string_piece.h" | 21 #include "base/strings/string_piece.h" |
21 #include "extensions/common/extension_paths.h" | 22 #include "extensions/common/extension_paths.h" |
22 #include "extensions/renderer/logging_native_handler.h" | 23 #include "extensions/renderer/logging_native_handler.h" |
23 #include "extensions/renderer/object_backed_native_handler.h" | 24 #include "extensions/renderer/object_backed_native_handler.h" |
24 #include "extensions/renderer/safe_builtins.h" | 25 #include "extensions/renderer/safe_builtins.h" |
25 #include "extensions/renderer/utils_native_handler.h" | 26 #include "extensions/renderer/utils_native_handler.h" |
26 #include "ui/base/resource/resource_bundle.h" | 27 #include "ui/base/resource/resource_bundle.h" |
27 | 28 |
28 namespace extensions { | 29 namespace extensions { |
(...skipping 16 matching lines...) Expand all Loading... |
45 new v8::ExtensionConfiguration(static_cast<int>(names_.size()), | 46 new v8::ExtensionConfiguration(static_cast<int>(names_.size()), |
46 names_.data())) { | 47 names_.data())) { |
47 v8::RegisterExtension(safe_builtins_.get()); | 48 v8::RegisterExtension(safe_builtins_.get()); |
48 } | 49 } |
49 | 50 |
50 v8::ExtensionConfiguration* GetConfiguration() { | 51 v8::ExtensionConfiguration* GetConfiguration() { |
51 return configuration_.get(); | 52 return configuration_.get(); |
52 } | 53 } |
53 | 54 |
54 private: | 55 private: |
55 scoped_ptr<v8::Extension> safe_builtins_; | 56 std::unique_ptr<v8::Extension> safe_builtins_; |
56 std::vector<const char*> names_; | 57 std::vector<const char*> names_; |
57 scoped_ptr<v8::ExtensionConfiguration> configuration_; | 58 std::unique_ptr<v8::ExtensionConfiguration> configuration_; |
58 }; | 59 }; |
59 | 60 |
60 base::LazyInstance<V8ExtensionConfigurator>::Leaky g_v8_extension_configurator = | 61 base::LazyInstance<V8ExtensionConfigurator>::Leaky g_v8_extension_configurator = |
61 LAZY_INSTANCE_INITIALIZER; | 62 LAZY_INSTANCE_INITIALIZER; |
62 | 63 |
63 } // namespace | 64 } // namespace |
64 | 65 |
65 // Native JS functions for doing asserts. | 66 // Native JS functions for doing asserts. |
66 class ModuleSystemTestEnvironment::AssertNatives | 67 class ModuleSystemTestEnvironment::AssertNatives |
67 : public ObjectBackedNativeHandler { | 68 : public ObjectBackedNativeHandler { |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
136 context_.reset(new ScriptContext(context_holder_->context(), | 137 context_.reset(new ScriptContext(context_holder_->context(), |
137 nullptr, // WebFrame | 138 nullptr, // WebFrame |
138 nullptr, // Extension | 139 nullptr, // Extension |
139 Feature::BLESSED_EXTENSION_CONTEXT, | 140 Feature::BLESSED_EXTENSION_CONTEXT, |
140 nullptr, // Effective Extension | 141 nullptr, // Effective Extension |
141 Feature::BLESSED_EXTENSION_CONTEXT)); | 142 Feature::BLESSED_EXTENSION_CONTEXT)); |
142 context_->v8_context()->Enter(); | 143 context_->v8_context()->Enter(); |
143 assert_natives_ = new AssertNatives(context_.get()); | 144 assert_natives_ = new AssertNatives(context_.get()); |
144 | 145 |
145 { | 146 { |
146 scoped_ptr<ModuleSystem> module_system( | 147 std::unique_ptr<ModuleSystem> module_system( |
147 new ModuleSystem(context_.get(), source_map_.get())); | 148 new ModuleSystem(context_.get(), source_map_.get())); |
148 context_->set_module_system(std::move(module_system)); | 149 context_->set_module_system(std::move(module_system)); |
149 } | 150 } |
150 ModuleSystem* module_system = context_->module_system(); | 151 ModuleSystem* module_system = context_->module_system(); |
151 module_system->RegisterNativeHandler( | 152 module_system->RegisterNativeHandler( |
152 "assert", scoped_ptr<NativeHandler>(assert_natives_)); | 153 "assert", std::unique_ptr<NativeHandler>(assert_natives_)); |
153 module_system->RegisterNativeHandler( | 154 module_system->RegisterNativeHandler( |
154 "logging", | 155 "logging", |
155 scoped_ptr<NativeHandler>(new LoggingNativeHandler(context_.get()))); | 156 std::unique_ptr<NativeHandler>(new LoggingNativeHandler(context_.get()))); |
156 module_system->RegisterNativeHandler( | 157 module_system->RegisterNativeHandler( |
157 "utils", | 158 "utils", |
158 scoped_ptr<NativeHandler>(new UtilsNativeHandler(context_.get()))); | 159 std::unique_ptr<NativeHandler>(new UtilsNativeHandler(context_.get()))); |
159 module_system->SetExceptionHandlerForTest( | 160 module_system->SetExceptionHandlerForTest( |
160 scoped_ptr<ModuleSystem::ExceptionHandler>(new FailsOnException)); | 161 std::unique_ptr<ModuleSystem::ExceptionHandler>(new FailsOnException)); |
161 } | 162 } |
162 | 163 |
163 ModuleSystemTestEnvironment::~ModuleSystemTestEnvironment() { | 164 ModuleSystemTestEnvironment::~ModuleSystemTestEnvironment() { |
164 if (context_->is_valid()) | 165 if (context_->is_valid()) |
165 ShutdownModuleSystem(); | 166 ShutdownModuleSystem(); |
166 } | 167 } |
167 | 168 |
168 void ModuleSystemTestEnvironment::RegisterModule(const std::string& name, | 169 void ModuleSystemTestEnvironment::RegisterModule(const std::string& name, |
169 const std::string& code) { | 170 const std::string& code) { |
170 source_map_->RegisterModule(name, code); | 171 source_map_->RegisterModule(name, code); |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
240 // Run the GC until the heap size reaches a steady state to ensure that | 241 // Run the GC until the heap size reaches a steady state to ensure that |
241 // all the garbage is collected. | 242 // all the garbage is collected. |
242 while (stats.used_heap_size() != old_heap_size) { | 243 while (stats.used_heap_size() != old_heap_size) { |
243 old_heap_size = stats.used_heap_size(); | 244 old_heap_size = stats.used_heap_size(); |
244 isolate_->RequestGarbageCollectionForTesting( | 245 isolate_->RequestGarbageCollectionForTesting( |
245 v8::Isolate::kFullGarbageCollection); | 246 v8::Isolate::kFullGarbageCollection); |
246 isolate_->GetHeapStatistics(&stats); | 247 isolate_->GetHeapStatistics(&stats); |
247 } | 248 } |
248 } | 249 } |
249 | 250 |
250 scoped_ptr<ModuleSystemTestEnvironment> ModuleSystemTest::CreateEnvironment() { | 251 std::unique_ptr<ModuleSystemTestEnvironment> |
251 return make_scoped_ptr(new ModuleSystemTestEnvironment(isolate_)); | 252 ModuleSystemTest::CreateEnvironment() { |
| 253 return base::WrapUnique(new ModuleSystemTestEnvironment(isolate_)); |
252 } | 254 } |
253 | 255 |
254 void ModuleSystemTest::ExpectNoAssertionsMade() { | 256 void ModuleSystemTest::ExpectNoAssertionsMade() { |
255 should_assertions_be_made_ = false; | 257 should_assertions_be_made_ = false; |
256 } | 258 } |
257 | 259 |
258 void ModuleSystemTest::RunResolvedPromises() { | 260 void ModuleSystemTest::RunResolvedPromises() { |
259 v8::MicrotasksScope::PerformCheckpoint(isolate_); | 261 v8::MicrotasksScope::PerformCheckpoint(isolate_); |
260 } | 262 } |
261 | 263 |
262 } // namespace extensions | 264 } // namespace extensions |
OLD | NEW |