OLD | NEW |
---|---|
1 // Copyright (c) 2015 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2015 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 "config.h" | 5 #include "config.h" |
6 #include "bindings/core/v8/V8TestingScope.h" | 6 #include "bindings/core/v8/V8BindingForTesting.h" |
7 | 7 |
8 #include "bindings/core/v8/DOMWrapperWorld.h" | 8 #include "bindings/core/v8/DOMWrapperWorld.h" |
9 | 9 |
10 namespace blink { | 10 namespace blink { |
11 | 11 |
12 PassRefPtr<ScriptStateForTesting> ScriptStateForTesting::create(v8::Handle<v8::C ontext> context, PassRefPtr<DOMWrapperWorld> world) | |
13 { | |
14 RefPtr<ScriptStateForTesting> scriptState = adoptRef(new ScriptStateForTesti ng(context, world)); | |
15 // This ref() is for keeping this ScriptState alive as long as the v8::Conte xt is alive. | |
16 // This is deref()ed in the weak callback of the v8::Context. | |
Nico
2015/08/29 21:42:48
This seems to not work, see http://build.chromium.
haraken
2015/08/30 01:26:07
I think this is an issue of ScriptPromisePropertyT
| |
17 scriptState->ref(); | |
18 return scriptState; | |
19 } | |
20 | |
21 ScriptStateForTesting::ScriptStateForTesting(v8::Handle<v8::Context> context, Pa ssRefPtr<DOMWrapperWorld> world) | |
22 : ScriptState(context, world) | |
23 { | |
24 } | |
25 | |
26 ExecutionContext* ScriptStateForTesting::executionContext() const | |
27 { | |
28 return m_executionContext; | |
29 } | |
30 | |
31 void ScriptStateForTesting::setExecutionContext(ExecutionContext* executionConte xt) | |
32 { | |
33 m_executionContext = executionContext; | |
34 } | |
35 | |
12 V8TestingScope::V8TestingScope(v8::Isolate* isolate) | 36 V8TestingScope::V8TestingScope(v8::Isolate* isolate) |
13 : m_handleScope(isolate) | 37 : m_handleScope(isolate) |
14 , m_contextScope(v8::Context::New(isolate)) | 38 , m_contextScope(v8::Context::New(isolate)) |
15 // We reuse the main world since the main world is guaranteed to be register ed to ScriptController. | 39 // We reuse the main world since the main world is guaranteed to be register ed to ScriptController. |
16 , m_scriptState(ScriptStateForTesting::create(isolate->GetCurrentContext(), &DOMWrapperWorld::mainWorld())) | 40 , m_scriptState(ScriptStateForTesting::create(isolate->GetCurrentContext(), &DOMWrapperWorld::mainWorld())) |
17 { | 41 { |
18 } | 42 } |
19 | 43 |
20 V8TestingScope::~V8TestingScope() | 44 V8TestingScope::~V8TestingScope() |
21 { | 45 { |
22 m_scriptState->disposePerContextData(); | 46 m_scriptState->disposePerContextData(); |
23 } | 47 } |
24 | 48 |
25 ScriptState* V8TestingScope::scriptState() const | 49 ScriptState* V8TestingScope::scriptState() const |
26 { | 50 { |
27 return m_scriptState.get(); | 51 return m_scriptState.get(); |
28 } | 52 } |
29 | 53 |
30 v8::Isolate* V8TestingScope::isolate() const | 54 v8::Isolate* V8TestingScope::isolate() const |
31 { | 55 { |
32 return m_scriptState->isolate(); | 56 return m_scriptState->isolate(); |
33 } | 57 } |
34 | 58 |
35 } // namespace blink | 59 } // namespace blink |
OLD | NEW |