Changeset 142250 in webkit


Ignore:
Timestamp:
Feb 8, 2013 2:17:15 AM (11 years ago)
Author:
commit-queue@webkit.org
Message:

[v8] isolate parameter added to all v8::peristent calls
https://bugs.webkit.org/show_bug.cgi?id=109268

Patch by Dan Carney <dcarney@google.com> on 2013-02-08
Reviewed by Kentaro Hara.

Source/WebCore:

No new tests. No change in functionality.

  • bindings/scripts/CodeGeneratorV8.pm:

(GenerateDomainSafeFunctionGetter):
(GenerateNamedConstructorCallback):
(GenerateImplementation):

  • bindings/scripts/test/V8/V8Float64Array.cpp:

(WebCore::V8Float64Array::GetRawTemplate):

  • bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:

(WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
(WebCore::V8TestActiveDOMObject::GetRawTemplate):

  • bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:

(WebCore::V8TestCustomNamedGetter::GetRawTemplate):

  • bindings/scripts/test/V8/V8TestEventConstructor.cpp:

(WebCore::V8TestEventConstructor::GetRawTemplate):

  • bindings/scripts/test/V8/V8TestEventTarget.cpp:

(WebCore::V8TestEventTarget::GetRawTemplate):

  • bindings/scripts/test/V8/V8TestException.cpp:

(WebCore::V8TestException::GetRawTemplate):

  • bindings/scripts/test/V8/V8TestInterface.cpp:

(WebCore::V8TestInterface::GetRawTemplate):

  • bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:

(WebCore::V8TestMediaQueryListListener::GetRawTemplate):

  • bindings/scripts/test/V8/V8TestNamedConstructor.cpp:

(WebCore::V8TestNamedConstructorConstructor::GetTemplate):
(WebCore::V8TestNamedConstructor::GetRawTemplate):

  • bindings/scripts/test/V8/V8TestNode.cpp:

(WebCore::V8TestNode::GetRawTemplate):

  • bindings/scripts/test/V8/V8TestObj.cpp:

(WebCore::V8TestObj::GetRawTemplate):

  • bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:

(WebCore::V8TestOverloadedConstructors::GetRawTemplate):

  • bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:

(WebCore::V8TestSerializedScriptValueInterface::GetRawTemplate):

  • bindings/v8/DOMWrapperMap.h:

(WebCore::DOMWrapperMap::clear):

  • bindings/v8/DOMWrapperWorld.cpp:

(WebCore::isolatedWorldWeakCallback):
(WebCore::DOMWrapperWorld::makeContextWeak):

  • bindings/v8/NPV8Object.cpp:

(WebCore::freeV8NPObject):
(WebCore::npCreateV8ScriptObject):

  • bindings/v8/ScheduledAction.cpp:

(WebCore::ScheduledAction::ScheduledAction):
(WebCore::ScheduledAction::~ScheduledAction):

  • bindings/v8/ScopedPersistent.h:

(WebCore::ScopedPersistent::ScopedPersistent):
(WebCore::ScopedPersistent::set):
(WebCore::ScopedPersistent::clear):

  • bindings/v8/ScriptWrappable.h:

(WebCore::ScriptWrappable::setWrapper):
(WebCore::ScriptWrappable::disposeWrapper):
(WebCore::ScriptWrappable::weakCallback):

  • bindings/v8/V8Binding.cpp:

(WebCore::createRawTemplate):

  • bindings/v8/V8Binding.h:

(WebCore):

  • bindings/v8/V8GCController.cpp:

(WebCore::gcTree):
(WebCore::V8GCController::gcPrologue):
(WebCore::V8GCController::minorGCPrologue):

  • bindings/v8/V8GCController.h:

(V8GCController):

  • bindings/v8/V8HiddenPropertyName.cpp:

(WebCore::V8HiddenPropertyName::createString):

  • bindings/v8/V8LazyEventListener.cpp:

(WebCore::V8LazyEventListener::prepareListenerObject):

  • bindings/v8/V8NPObject.cpp:

(WebCore::V8NPTemplateMap::dispose):
(WebCore::npObjectGetProperty):
(WebCore::createV8ObjectForNPObject):

  • bindings/v8/V8PerContextData.cpp:

(WebCore::V8PerContextData::dispose):
(WebCore::V8PerContextData::createWrapperFromCacheSlowCase):
(WebCore::V8PerContextData::constructorForTypeSlowCase):

  • bindings/v8/V8ValueCache.cpp:

(WebCore::makeExternalString):

  • bindings/v8/WrapperTypeInfo.h:

(WebCore::WrapperConfiguration::configureWrapper):

  • bindings/v8/custom/V8HTMLDocumentCustom.cpp:

(WebCore::V8HTMLDocument::wrapInShadowObject):

  • bindings/v8/custom/V8HTMLImageElementConstructor.cpp:

(WebCore::V8HTMLImageElementConstructor::GetTemplate):

  • bindings/v8/custom/V8InjectedScriptManager.cpp:

(WebCore::WeakReferenceCallback):
(WebCore::createInjectedScriptHostV8Wrapper):

  • bindings/v8/custom/V8LocationCustom.cpp:

(WebCore::V8Location::reloadAccessorGetter):
(WebCore::V8Location::replaceAccessorGetter):
(WebCore::V8Location::assignAccessorGetter):

Source/WebKit/chromium:

  • tests/WebFrameTest.cpp:
Location:
trunk/Source
Files:
37 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r142248 r142250  
     12013-02-08  Dan Carney  <dcarney@google.com>
     2
     3        [v8] isolate parameter added to all v8::peristent calls
     4        https://bugs.webkit.org/show_bug.cgi?id=109268
     5
     6        Reviewed by Kentaro Hara.
     7
     8        No new tests. No change in functionality.
     9
     10        * bindings/scripts/CodeGeneratorV8.pm:
     11        (GenerateDomainSafeFunctionGetter):
     12        (GenerateNamedConstructorCallback):
     13        (GenerateImplementation):
     14        * bindings/scripts/test/V8/V8Float64Array.cpp:
     15        (WebCore::V8Float64Array::GetRawTemplate):
     16        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
     17        (WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
     18        (WebCore::V8TestActiveDOMObject::GetRawTemplate):
     19        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
     20        (WebCore::V8TestCustomNamedGetter::GetRawTemplate):
     21        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
     22        (WebCore::V8TestEventConstructor::GetRawTemplate):
     23        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
     24        (WebCore::V8TestEventTarget::GetRawTemplate):
     25        * bindings/scripts/test/V8/V8TestException.cpp:
     26        (WebCore::V8TestException::GetRawTemplate):
     27        * bindings/scripts/test/V8/V8TestInterface.cpp:
     28        (WebCore::V8TestInterface::GetRawTemplate):
     29        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
     30        (WebCore::V8TestMediaQueryListListener::GetRawTemplate):
     31        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
     32        (WebCore::V8TestNamedConstructorConstructor::GetTemplate):
     33        (WebCore::V8TestNamedConstructor::GetRawTemplate):
     34        * bindings/scripts/test/V8/V8TestNode.cpp:
     35        (WebCore::V8TestNode::GetRawTemplate):
     36        * bindings/scripts/test/V8/V8TestObj.cpp:
     37        (WebCore::V8TestObj::GetRawTemplate):
     38        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
     39        (WebCore::V8TestOverloadedConstructors::GetRawTemplate):
     40        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
     41        (WebCore::V8TestSerializedScriptValueInterface::GetRawTemplate):
     42        * bindings/v8/DOMWrapperMap.h:
     43        (WebCore::DOMWrapperMap::clear):
     44        * bindings/v8/DOMWrapperWorld.cpp:
     45        (WebCore::isolatedWorldWeakCallback):
     46        (WebCore::DOMWrapperWorld::makeContextWeak):
     47        * bindings/v8/NPV8Object.cpp:
     48        (WebCore::freeV8NPObject):
     49        (WebCore::npCreateV8ScriptObject):
     50        * bindings/v8/ScheduledAction.cpp:
     51        (WebCore::ScheduledAction::ScheduledAction):
     52        (WebCore::ScheduledAction::~ScheduledAction):
     53        * bindings/v8/ScopedPersistent.h:
     54        (WebCore::ScopedPersistent::ScopedPersistent):
     55        (WebCore::ScopedPersistent::set):
     56        (WebCore::ScopedPersistent::clear):
     57        * bindings/v8/ScriptWrappable.h:
     58        (WebCore::ScriptWrappable::setWrapper):
     59        (WebCore::ScriptWrappable::disposeWrapper):
     60        (WebCore::ScriptWrappable::weakCallback):
     61        * bindings/v8/V8Binding.cpp:
     62        (WebCore::createRawTemplate):
     63        * bindings/v8/V8Binding.h:
     64        (WebCore):
     65        * bindings/v8/V8GCController.cpp:
     66        (WebCore::gcTree):
     67        (WebCore::V8GCController::gcPrologue):
     68        (WebCore::V8GCController::minorGCPrologue):
     69        * bindings/v8/V8GCController.h:
     70        (V8GCController):
     71        * bindings/v8/V8HiddenPropertyName.cpp:
     72        (WebCore::V8HiddenPropertyName::createString):
     73        * bindings/v8/V8LazyEventListener.cpp:
     74        (WebCore::V8LazyEventListener::prepareListenerObject):
     75        * bindings/v8/V8NPObject.cpp:
     76        (WebCore::V8NPTemplateMap::dispose):
     77        (WebCore::npObjectGetProperty):
     78        (WebCore::createV8ObjectForNPObject):
     79        * bindings/v8/V8PerContextData.cpp:
     80        (WebCore::V8PerContextData::dispose):
     81        (WebCore::V8PerContextData::createWrapperFromCacheSlowCase):
     82        (WebCore::V8PerContextData::constructorForTypeSlowCase):
     83        * bindings/v8/V8ValueCache.cpp:
     84        (WebCore::makeExternalString):
     85        * bindings/v8/WrapperTypeInfo.h:
     86        (WebCore::WrapperConfiguration::configureWrapper):
     87        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
     88        (WebCore::V8HTMLDocument::wrapInShadowObject):
     89        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
     90        (WebCore::V8HTMLImageElementConstructor::GetTemplate):
     91        * bindings/v8/custom/V8InjectedScriptManager.cpp:
     92        (WebCore::WeakReferenceCallback):
     93        (WebCore::createInjectedScriptHostV8Wrapper):
     94        * bindings/v8/custom/V8LocationCustom.cpp:
     95        (WebCore::V8Location::reloadAccessorGetter):
     96        (WebCore::V8Location::replaceAccessorGetter):
     97        (WebCore::V8Location::assignAccessorGetter):
     98
    1992013-02-08  Kent Tamura  <tkent@chromium.org>
    2100
  • trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm

    r142248 r142250  
    799799static v8::Handle<v8::Value> ${funcName}AttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info)
    800800{
    801     static v8::Persistent<v8::FunctionTemplate> privateTemplate = v8::Persistent<v8::FunctionTemplate>::New($newTemplateString);
     801    static v8::Persistent<v8::FunctionTemplate> privateTemplate = v8::Persistent<v8::FunctionTemplate>::New(info.GetIsolate(), $newTemplateString);
    802802    v8::Handle<v8::Object> holder = info.This()->FindInstanceInPrototypeChain(${v8InterfaceName}::GetTemplate(info.GetIsolate()));
    803803    if (holder.IsEmpty()) {
     
    808808    ${interfaceName}* imp = ${v8InterfaceName}::toNative(holder);
    809809    if (!BindingSecurity::shouldAllowAccessToFrame(BindingState::instance(), imp->frame(), DoNotReportSecurityError)) {
    810         static v8::Persistent<v8::FunctionTemplate> sharedTemplate = v8::Persistent<v8::FunctionTemplate>::New($newTemplateString);
     810        static v8::Persistent<v8::FunctionTemplate> sharedTemplate = v8::Persistent<v8::FunctionTemplate>::New(info.GetIsolate(), $newTemplateString);
    811811        return sharedTemplate->GetFunction();
    812812    }
     
    22082208    result->Inherit(${v8InterfaceName}::GetTemplate(isolate));
    22092209
    2210     cachedTemplate = v8::Persistent<v8::FunctionTemplate>::New(result);
     2210    cachedTemplate = v8::Persistent<v8::FunctionTemplate>::New(isolate, result);
    22112211    return cachedTemplate;
    22122212}
     
    31053105
    31063106    v8::HandleScope handleScope;
    3107     v8::Persistent<v8::FunctionTemplate> templ = createRawTemplate();
     3107    v8::Persistent<v8::FunctionTemplate> templ = createRawTemplate(isolate);
    31083108    data->rawTemplateMap().add(&info, templ);
    31093109    return templ;
     
    32233223    static v8::Persistent<v8::ObjectTemplate> V8DOMWindowShadowObjectCache;
    32243224    if (V8DOMWindowShadowObjectCache.IsEmpty()) {
    3225         V8DOMWindowShadowObjectCache = v8::Persistent<v8::ObjectTemplate>::New(v8::ObjectTemplate::New());
     3225        V8DOMWindowShadowObjectCache = v8::Persistent<v8::ObjectTemplate>::New(isolate, v8::ObjectTemplate::New());
    32263226        ConfigureShadowObjectTemplate(V8DOMWindowShadowObjectCache, isolate);
    32273227    }
  • trunk/Source/WebCore/bindings/scripts/test/V8/V8Float64Array.cpp

    r142159 r142250  
    141141
    142142    v8::HandleScope handleScope;
    143     v8::Persistent<v8::FunctionTemplate> templ = createRawTemplate();
     143    v8::Persistent<v8::FunctionTemplate> templ = createRawTemplate(isolate);
    144144    data->rawTemplateMap().add(&info, templ);
    145145    return templ;
  • trunk/Source/WebCore/bindings/scripts/test/V8/V8TestActiveDOMObject.cpp

    r142159 r142250  
    9393static v8::Handle<v8::Value> postMessageAttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info)
    9494{
    95     static v8::Persistent<v8::FunctionTemplate> privateTemplate = v8::Persistent<v8::FunctionTemplate>::New(v8::FunctionTemplate::New(TestActiveDOMObjectV8Internal::postMessageCallback, v8Undefined(), v8::Signature::New(V8TestActiveDOMObject::GetRawTemplate(info.GetIsolate()))));
     95    static v8::Persistent<v8::FunctionTemplate> privateTemplate = v8::Persistent<v8::FunctionTemplate>::New(info.GetIsolate(), v8::FunctionTemplate::New(TestActiveDOMObjectV8Internal::postMessageCallback, v8Undefined(), v8::Signature::New(V8TestActiveDOMObject::GetRawTemplate(info.GetIsolate()))));
    9696    v8::Handle<v8::Object> holder = info.This()->FindInstanceInPrototypeChain(V8TestActiveDOMObject::GetTemplate(info.GetIsolate()));
    9797    if (holder.IsEmpty()) {
     
    102102    TestActiveDOMObject* imp = V8TestActiveDOMObject::toNative(holder);
    103103    if (!BindingSecurity::shouldAllowAccessToFrame(BindingState::instance(), imp->frame(), DoNotReportSecurityError)) {
    104         static v8::Persistent<v8::FunctionTemplate> sharedTemplate = v8::Persistent<v8::FunctionTemplate>::New(v8::FunctionTemplate::New(TestActiveDOMObjectV8Internal::postMessageCallback, v8Undefined(), v8::Signature::New(V8TestActiveDOMObject::GetRawTemplate(info.GetIsolate()))));
     104        static v8::Persistent<v8::FunctionTemplate> sharedTemplate = v8::Persistent<v8::FunctionTemplate>::New(info.GetIsolate(), v8::FunctionTemplate::New(TestActiveDOMObjectV8Internal::postMessageCallback, v8Undefined(), v8::Signature::New(V8TestActiveDOMObject::GetRawTemplate(info.GetIsolate()))));
    105105        return sharedTemplate->GetFunction();
    106106    }
     
    169169
    170170    v8::HandleScope handleScope;
    171     v8::Persistent<v8::FunctionTemplate> templ = createRawTemplate();
     171    v8::Persistent<v8::FunctionTemplate> templ = createRawTemplate(isolate);
    172172    data->rawTemplateMap().add(&info, templ);
    173173    return templ;
  • trunk/Source/WebCore/bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp

    r142159 r142250  
    107107
    108108    v8::HandleScope handleScope;
    109     v8::Persistent<v8::FunctionTemplate> templ = createRawTemplate();
     109    v8::Persistent<v8::FunctionTemplate> templ = createRawTemplate(isolate);
    110110    data->rawTemplateMap().add(&info, templ);
    111111    return templ;
  • trunk/Source/WebCore/bindings/scripts/test/V8/V8TestEventConstructor.cpp

    r142159 r142250  
    139139
    140140    v8::HandleScope handleScope;
    141     v8::Persistent<v8::FunctionTemplate> templ = createRawTemplate();
     141    v8::Persistent<v8::FunctionTemplate> templ = createRawTemplate(isolate);
    142142    data->rawTemplateMap().add(&info, templ);
    143143    return templ;
  • trunk/Source/WebCore/bindings/scripts/test/V8/V8TestEventTarget.cpp

    r142159 r142250  
    168168
    169169    v8::HandleScope handleScope;
    170     v8::Persistent<v8::FunctionTemplate> templ = createRawTemplate();
     170    v8::Persistent<v8::FunctionTemplate> templ = createRawTemplate(isolate);
    171171    data->rawTemplateMap().add(&info, templ);
    172172    return templ;
  • trunk/Source/WebCore/bindings/scripts/test/V8/V8TestException.cpp

    r142159 r142250  
    9898
    9999    v8::HandleScope handleScope;
    100     v8::Persistent<v8::FunctionTemplate> templ = createRawTemplate();
     100    v8::Persistent<v8::FunctionTemplate> templ = createRawTemplate(isolate);
    101101    data->rawTemplateMap().add(&info, templ);
    102102    return templ;
  • trunk/Source/WebCore/bindings/scripts/test/V8/V8TestInterface.cpp

    r142248 r142250  
    322322
    323323    v8::HandleScope handleScope;
    324     v8::Persistent<v8::FunctionTemplate> templ = createRawTemplate();
     324    v8::Persistent<v8::FunctionTemplate> templ = createRawTemplate(isolate);
    325325    data->rawTemplateMap().add(&info, templ);
    326326    return templ;
  • trunk/Source/WebCore/bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp

    r142159 r142250  
    107107
    108108    v8::HandleScope handleScope;
    109     v8::Persistent<v8::FunctionTemplate> templ = createRawTemplate();
     109    v8::Persistent<v8::FunctionTemplate> templ = createRawTemplate(isolate);
    110110    data->rawTemplateMap().add(&info, templ);
    111111    return templ;
  • trunk/Source/WebCore/bindings/scripts/test/V8/V8TestNamedConstructor.cpp

    r142159 r142250  
    113113    result->Inherit(V8TestNamedConstructor::GetTemplate(isolate));
    114114
    115     cachedTemplate = v8::Persistent<v8::FunctionTemplate>::New(result);
     115    cachedTemplate = v8::Persistent<v8::FunctionTemplate>::New(isolate, result);
    116116    return cachedTemplate;
    117117}
     
    141141
    142142    v8::HandleScope handleScope;
    143     v8::Persistent<v8::FunctionTemplate> templ = createRawTemplate();
     143    v8::Persistent<v8::FunctionTemplate> templ = createRawTemplate(isolate);
    144144    data->rawTemplateMap().add(&info, templ);
    145145    return templ;
  • trunk/Source/WebCore/bindings/scripts/test/V8/V8TestNode.cpp

    r142159 r142250  
    105105
    106106    v8::HandleScope handleScope;
    107     v8::Persistent<v8::FunctionTemplate> templ = createRawTemplate();
     107    v8::Persistent<v8::FunctionTemplate> templ = createRawTemplate(isolate);
    108108    data->rawTemplateMap().add(&info, templ);
    109109    return templ;
  • trunk/Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp

    r142217 r142250  
    22192219
    22202220    v8::HandleScope handleScope;
    2221     v8::Persistent<v8::FunctionTemplate> templ = createRawTemplate();
     2221    v8::Persistent<v8::FunctionTemplate> templ = createRawTemplate(isolate);
    22222222    data->rawTemplateMap().add(&info, templ);
    22232223    return templ;
  • trunk/Source/WebCore/bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp

    r142159 r142250  
    162162
    163163    v8::HandleScope handleScope;
    164     v8::Persistent<v8::FunctionTemplate> templ = createRawTemplate();
     164    v8::Persistent<v8::FunctionTemplate> templ = createRawTemplate(isolate);
    165165    data->rawTemplateMap().add(&info, templ);
    166166    return templ;
  • trunk/Source/WebCore/bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp

    r142248 r142250  
    279279
    280280    v8::HandleScope handleScope;
    281     v8::Persistent<v8::FunctionTemplate> templ = createRawTemplate();
     281    v8::Persistent<v8::FunctionTemplate> templ = createRawTemplate(isolate);
    282282    data->rawTemplateMap().add(&info, templ);
    283283    return templ;
  • trunk/Source/WebCore/bindings/v8/DOMWrapperMap.h

    r142159 r142250  
    7171            v8::Persistent<v8::Object> wrapper = it->value;
    7272            toWrapperTypeInfo(wrapper)->derefObject(it->key);
    73             wrapper.Dispose();
     73            wrapper.Dispose(m_isolate);
    7474            wrapper.Clear();
    7575        }
  • trunk/Source/WebCore/bindings/v8/DOMWrapperWorld.cpp

    r142209 r142250  
    7676static void isolatedWorldWeakCallback(v8::Isolate* isolate, v8::Persistent<v8::Value> object, void* parameter)
    7777{
    78     object.Dispose();
     78    object.Dispose(isolate);
    7979    object.Clear();
    8080    static_cast<DOMWrapperWorld*>(parameter)->deref();
     
    8585    ASSERT(isIsolatedWorld());
    8686    ASSERT(isolated(context) == this);
    87     v8::Persistent<v8::Context>::New(context).MakeWeak(context->GetIsolate(), this, isolatedWorldWeakCallback);
     87    v8::Isolate* isolate = context->GetIsolate();
     88    v8::Persistent<v8::Context>::New(isolate, context).MakeWeak(isolate, this, isolatedWorldWeakCallback);
    8889    // Matching deref is in weak callback.
    8990    this->ref();
  • trunk/Source/WebCore/bindings/v8/NPV8Object.cpp

    r141946 r142250  
    9393        }
    9494    }
    95     v8NpObject->v8Object.Dispose();
     95    v8NpObject->v8Object.Dispose(v8::Isolate::GetCurrent());
    9696    v8NpObject->v8Object.Clear();
    9797    free(v8NpObject);
     
    167167    }
    168168    V8NPObject* v8npObject = reinterpret_cast<V8NPObject*>(_NPN_CreateObject(npp, &V8NPObjectClass));
    169     v8npObject->v8Object = v8::Persistent<v8::Object>::New(object);
     169    v8npObject->v8Object = v8::Persistent<v8::Object>::New(v8::Isolate::GetCurrent(), object);
    170170    v8npObject->rootObject = root;
    171171
  • trunk/Source/WebCore/bindings/v8/ScheduledAction.cpp

    r135806 r142250  
    5555    , m_code(String(), KURL(), TextPosition::belowRangePosition())
    5656{
     57    v8::Isolate* isolate = m_context->GetIsolate();
    5758    m_args.reserveCapacity(argc);
    5859    for (int i = 0; i < argc; ++i)
    59         m_args.append(v8::Persistent<v8::Value>::New(argv[i]));
     60        m_args.append(v8::Persistent<v8::Value>::New(isolate, argv[i]));
    6061}
    6162
     
    6364{
    6465    for (size_t i = 0; i < m_args.size(); ++i) {
    65         m_args[i].Dispose();
     66        m_args[i].Dispose(m_context->GetIsolate());
    6667        m_args[i].Clear();
    6768    }
  • trunk/Source/WebCore/bindings/v8/ScopedPersistent.h

    r129984 r142250  
    4444
    4545    explicit ScopedPersistent(v8::Handle<T> handle)
    46         : m_handle(v8::Persistent<T>::New(handle))
     46        : m_handle(v8::Persistent<T>::New(v8::Isolate::GetCurrent(), handle))
    4747    {
    4848    }
     
    6161    {
    6262        clear();
    63         m_handle = v8::Persistent<T>::New(handle);
     63        m_handle = v8::Persistent<T>::New(v8::Isolate::GetCurrent(), handle);
    6464    }
    6565
     
    7575        if (m_handle.IsEmpty())
    7676            return;
    77         m_handle.Dispose();
     77        m_handle.Dispose(v8::Isolate::GetCurrent());
    7878        m_handle.Clear();
    7979    }
  • trunk/Source/WebCore/bindings/v8/ScriptWrappable.h

    r142159 r142250  
    5050    {
    5151        ASSERT(m_maskedWrapper.IsEmpty());
    52         v8::Persistent<v8::Object> persistent = v8::Persistent<v8::Object>::New(wrapper);
     52        v8::Persistent<v8::Object> persistent = v8::Persistent<v8::Object>::New(isolate, wrapper);
    5353        configuration.configureWrapper(persistent, isolate);
    5454        persistent.MakeWeak(isolate, this, weakCallback);
     
    6363
    6464private:
    65     inline void disposeWrapper(v8::Persistent<v8::Value> value)
     65    inline void disposeWrapper(v8::Persistent<v8::Value> value, v8::Isolate* isolate)
    6666    {
    6767        ASSERT(!m_maskedWrapper.IsEmpty());
    6868        ASSERT(*value == maskOrUnmaskPointer(*m_maskedWrapper));
    69         value.Dispose();
     69        value.Dispose(isolate);
    7070        m_maskedWrapper.Clear();
    7171    }
     
    8686        v8::Persistent<v8::Object> wrapper = v8::Persistent<v8::Object>::Cast(value);
    8787        ASSERT(key->wrapper() == wrapper);
    88         key->disposeWrapper(value);
     88        key->disposeWrapper(value, isolate);
    8989
    9090        // Note: |object| might not be equal to |key|, e.g., if ScriptWrappable isn't a left-most base class.
  • trunk/Source/WebCore/bindings/v8/V8Binding.cpp

    r141948 r142250  
    175175}
    176176
    177 v8::Persistent<v8::FunctionTemplate> createRawTemplate()
     177v8::Persistent<v8::FunctionTemplate> createRawTemplate(v8::Isolate* isolate)
    178178{
    179179    v8::HandleScope scope;
    180180    v8::Local<v8::FunctionTemplate> result = v8::FunctionTemplate::New(V8ObjectConstructor::isValidConstructorMode);
    181     return v8::Persistent<v8::FunctionTemplate>::New(result);
     181    return v8::Persistent<v8::FunctionTemplate>::New(isolate, result);
    182182}       
    183183
  • trunk/Source/WebCore/bindings/v8/V8Binding.h

    r142103 r142250  
    422422    }
    423423
    424     v8::Persistent<v8::FunctionTemplate> createRawTemplate();
     424    v8::Persistent<v8::FunctionTemplate> createRawTemplate(v8::Isolate*);
    425425
    426426    PassRefPtr<DOMStringList> toDOMStringList(v8::Handle<v8::Value>, v8::Isolate*);
  • trunk/Source/WebCore/bindings/v8/V8GCController.cpp

    r142103 r142250  
    196196        ASSERT(V8DOMWrapper::maybeDOMWrapper(value));
    197197
    198         if (value.IsIndependent())
     198        if (value.IsIndependent(m_isolate))
    199199            return;
    200200
     
    224224            UNUSED_PARAM(m_isolate);
    225225            ASSERT(V8Node::HasInstance(wrapper, m_isolate));
    226             ASSERT(!wrapper.IsIndependent());
     226            ASSERT(!wrapper.IsIndependent(m_isolate));
    227227
    228228            Node* node = static_cast<Node*>(object);
     
    255255Vector<Node*>* V8GCController::m_edenNodes = 0;
    256256
    257 static void gcTree(Node* startNode)
     257static void gcTree(v8::Isolate* isolate, Node* startNode)
    258258{
    259259    Vector<v8::Persistent<v8::Value>, initialNodeVectorSize> newSpaceWrappers;
     
    300300    // We report those wrappers to V8 as an object group.
    301301    for (size_t i = 0; i < newSpaceWrappers.size(); i++)
    302         newSpaceWrappers[i].MarkPartiallyDependent();
     302        newSpaceWrappers[i].MarkPartiallyDependent(isolate);
    303303    if (newSpaceWrappers.size() > 0)
    304304        v8::V8::AddObjectGroup(&newSpaceWrappers[0], newSpaceWrappers.size());
     
    327327void V8GCController::gcPrologue(v8::GCType type, v8::GCCallbackFlags flags)
    328328{
     329    // It would be nice if the GC callbacks passed the Isolate directly....
     330    v8::Isolate* isolate = v8::Isolate::GetCurrent();
    329331    if (type == v8::kGCTypeScavenge)
    330         minorGCPrologue();
     332        minorGCPrologue(isolate);
    331333    else if (type == v8::kGCTypeMarkSweepCompact)
    332334        majorGCPrologue();
     
    338340}
    339341
    340 void V8GCController::minorGCPrologue()
     342void V8GCController::minorGCPrologue(v8::Isolate* isolate)
    341343{
    342344    TRACE_EVENT_BEGIN0("v8", "GC");
     
    346348            ASSERT(!m_edenNodes->at(i)->wrapper().IsEmpty());
    347349            if (m_edenNodes->at(i)->isV8CollectableDuringMinorGC()) // This branch is just for performance.
    348                 gcTree(m_edenNodes->at(i));
     350                gcTree(isolate, m_edenNodes->at(i));
    349351        }
    350352    }
  • trunk/Source/WebCore/bindings/v8/V8GCController.h

    r142103 r142250  
    4343    static void gcPrologue(v8::GCType, v8::GCCallbackFlags);
    4444    static void gcEpilogue(v8::GCType, v8::GCCallbackFlags);
    45     static void minorGCPrologue();
     45    static void minorGCPrologue(v8::Isolate*);
    4646    static void minorGCEpilogue();
    4747    static void majorGCPrologue();
  • trunk/Source/WebCore/bindings/v8/V8HiddenPropertyName.cpp

    r142226 r142250  
    7474{
    7575    v8::HandleScope scope;
    76     return v8::Persistent<v8::String>::New(v8::String::NewSymbol(key));
     76    return v8::Persistent<v8::String>::New(v8::Isolate::GetCurrent(), v8::String::NewSymbol(key));
    7777}
    7878
  • trunk/Source/WebCore/bindings/v8/V8LazyEventListener.cpp

    r141946 r142250  
    216216        V8PerIsolateData::current()->lazyEventListenerToStringTemplate();
    217217    if (toStringTemplate.IsEmpty())
    218         toStringTemplate = v8::Persistent<v8::FunctionTemplate>::New(v8::FunctionTemplate::New(V8LazyEventListenerToString));
     218        toStringTemplate = v8::Persistent<v8::FunctionTemplate>::New(isolate, v8::FunctionTemplate::New(V8LazyEventListenerToString));
    219219    v8::Local<v8::Function> toStringFunction;
    220220    if (!toStringTemplate.IsEmpty())
  • trunk/Source/WebCore/bindings/v8/V8NPObject.cpp

    r142159 r142250  
    201201        MapType::iterator it = m_map.find(key);
    202202        ASSERT(it != m_map.end());
    203         it->value.Dispose();
     203        it->value.Dispose(m_isolate);
    204204        it->value.Clear();
    205205        m_map.remove(it);
     
    251251            v8::Local<v8::FunctionTemplate> temp = v8::FunctionTemplate::New();
    252252            temp->SetCallHandler(npObjectMethodHandler, key);
    253             functionTemplate = v8::Persistent<v8::FunctionTemplate>::New(temp);
     253            functionTemplate = v8::Persistent<v8::FunctionTemplate>::New(isolate, temp);
    254254            V8NPTemplateMap::sharedInstance(isolate).set(id, functionTemplate);
    255255        }
     
    429429    // pointer, and field 1 is the type. There should be an api function that returns unused type id. The same Wrapper type
    430430    // can be used by DOM bindings.
     431    v8::Isolate* isolate = v8::Isolate::GetCurrent();
    431432    if (npObjectDesc.IsEmpty()) {
    432         npObjectDesc = v8::Persistent<v8::FunctionTemplate>::New(v8::FunctionTemplate::New());
     433        npObjectDesc = v8::Persistent<v8::FunctionTemplate>::New(isolate, v8::FunctionTemplate::New());
    433434        npObjectDesc->InstanceTemplate()->SetInternalFieldCount(npObjectInternalFieldCount);
    434435        npObjectDesc->InstanceTemplate()->SetNamedPropertyHandler(npObjectNamedPropertyGetter, npObjectNamedPropertySetter, npObjectQueryProperty, 0, npObjectNamedPropertyEnumerator);
  • trunk/Source/WebCore/bindings/v8/V8PerContextData.cpp

    r142061 r142250  
    4040{
    4141    v8::HandleScope handleScope;
     42    v8::Isolate* isolate = m_context->GetIsolate();
    4243    m_context->SetAlignedPointerInEmbedderData(v8ContextPerContextDataIndex, 0);
    4344
     
    4647        for (; it != m_wrapperBoilerplates.end(); ++it) {
    4748            v8::Persistent<v8::Object> wrapper = it->value;
    48             wrapper.Dispose();
     49            wrapper.Dispose(isolate);
    4950            wrapper.Clear();
    5051        }
     
    5657        for (; it != m_constructorMap.end(); ++it) {
    5758            v8::Persistent<v8::Function> wrapper = it->value;
    58             wrapper.Dispose();
     59            wrapper.Dispose(isolate);
    5960            wrapper.Clear();
    6061        }
     
    103104    v8::Local<v8::Object> instance = V8ObjectConstructor::newInstance(function);
    104105    if (!instance.IsEmpty()) {
    105         m_wrapperBoilerplates.set(type, v8::Persistent<v8::Object>::New(instance));
     106        m_wrapperBoilerplates.set(type, v8::Persistent<v8::Object>::New(m_context->GetIsolate(), instance));
    106107        return instance->Clone();
    107108    }
     
    131132    }
    132133
    133     m_constructorMap.set(type, v8::Persistent<v8::Function>::New(function));
     134    m_constructorMap.set(type, v8::Persistent<v8::Function>::New(m_context->GetIsolate(), function));
    134135
    135136    return function;
  • trunk/Source/WebCore/bindings/v8/V8ValueCache.cpp

    r142154 r142250  
    6767    StringImpl* stringImpl = static_cast<StringImpl*>(parameter);
    6868    V8PerIsolateData::current()->stringCache()->remove(stringImpl);
    69     wrapper.Dispose();
     69    wrapper.Dispose(isolate);
    7070    wrapper.Clear();
    7171    stringImpl->deref();
     
    8787
    8888    v8::Persistent<v8::String> cachedV8String = m_stringCache.get(stringImpl);
    89     if (cachedV8String.IsWeak()) {
     89    if (cachedV8String.IsWeak(isolate)) {
    9090        m_lastStringImpl = stringImpl;
    9191        m_lastV8String = cachedV8String;
     
    9999        return newString;
    100100
    101     v8::Persistent<v8::String> wrapper = v8::Persistent<v8::String>::New(newString);
     101    v8::Persistent<v8::String> wrapper = v8::Persistent<v8::String>::New(isolate, newString);
    102102    if (wrapper.IsEmpty())
    103103        return newString;
    104104
    105105    stringImpl->ref();
    106     wrapper.MarkIndependent();
     106    wrapper.MarkIndependent(isolate);
    107107    wrapper.MakeWeak(isolate, stringImpl, cachedStringCallback);
    108108    m_stringCache.set(stringImpl, wrapper);
  • trunk/Source/WebCore/bindings/v8/WrapperTypeInfo.h

    r142159 r142250  
    151151        void configureWrapper(v8::Persistent<v8::Object> wrapper, v8::Isolate* isolate) const
    152152        {
    153             wrapper.SetWrapperClassId(classId);
     153            wrapper.SetWrapperClassId(isolate, classId);
    154154            if (lifetime == Independent)
    155155                wrapper.MarkIndependent(isolate);
  • trunk/Source/WebCore/bindings/v8/custom/V8HTMLDocumentCustom.cpp

    r141977 r142250  
    5757    DEFINE_STATIC_LOCAL(v8::Persistent<v8::FunctionTemplate>, shadowTemplate, ());
    5858    if (shadowTemplate.IsEmpty()) {
    59         shadowTemplate = v8::Persistent<v8::FunctionTemplate>::New(v8::FunctionTemplate::New());
     59        shadowTemplate = v8::Persistent<v8::FunctionTemplate>::New(isolate, v8::FunctionTemplate::New());
    6060        if (shadowTemplate.IsEmpty())
    6161            return v8::Local<v8::Object>();
  • trunk/Source/WebCore/bindings/v8/custom/V8HTMLImageElementConstructor.cpp

    r142159 r142250  
    9696    result->Inherit(V8HTMLImageElement::GetTemplate(isolate));
    9797
    98     cachedTemplate = v8::Persistent<v8::FunctionTemplate>::New(result);
     98    cachedTemplate = v8::Persistent<v8::FunctionTemplate>::New(isolate, result);
    9999    return cachedTemplate;
    100100}
  • trunk/Source/WebCore/bindings/v8/custom/V8InjectedScriptManager.cpp

    r141771 r142250  
    5050    InjectedScriptHost* nativeObject = static_cast<InjectedScriptHost*>(parameter);
    5151    nativeObject->deref();
    52     object.Dispose();
     52    object.Dispose(isolate);
    5353    object.Clear();
    5454}
     
    7070    // InspectorBackend when the wrapper is garbage collected.
    7171    host->ref();
    72     v8::Persistent<v8::Object> weakHandle = v8::Persistent<v8::Object>::New(instance);
     72    v8::Persistent<v8::Object> weakHandle = v8::Persistent<v8::Object>::New(isolate, instance);
    7373    weakHandle.MakeWeak(isolate, host, &WeakReferenceCallback);
    7474    return instance;
  • trunk/Source/WebCore/bindings/v8/custom/V8LocationCustom.cpp

    r140883 r142250  
    139139v8::Handle<v8::Value> V8Location::reloadAccessorGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info)
    140140{
    141     static v8::Persistent<v8::FunctionTemplate> privateTemplate = v8::Persistent<v8::FunctionTemplate>::New(v8::FunctionTemplate::New(V8Location::reloadCallback, v8Undefined(), v8::Signature::New(V8Location::GetRawTemplate(info.GetIsolate()))));
    142     v8::Handle<v8::Object> holder = info.This()->FindInstanceInPrototypeChain(V8Location::GetTemplate(info.GetIsolate()));
     141    v8::Isolate* isolate = info.GetIsolate();
     142    static v8::Persistent<v8::FunctionTemplate> privateTemplate = v8::Persistent<v8::FunctionTemplate>::New(isolate, v8::FunctionTemplate::New(V8Location::reloadCallback, v8Undefined(), v8::Signature::New(V8Location::GetRawTemplate(isolate))));
     143    v8::Handle<v8::Object> holder = info.This()->FindInstanceInPrototypeChain(V8Location::GetTemplate(isolate));
    143144    if (holder.IsEmpty()) {
    144145        // can only reach here by 'object.__proto__.func', and it should passed
     
    148149    Location* imp = V8Location::toNative(holder);
    149150    if (!BindingSecurity::shouldAllowAccessToFrame(BindingState::instance(), imp->frame(), DoNotReportSecurityError)) {
    150         static v8::Persistent<v8::FunctionTemplate> sharedTemplate = v8::Persistent<v8::FunctionTemplate>::New(v8::FunctionTemplate::New(V8Location::reloadCallback, v8Undefined(), v8::Signature::New(V8Location::GetRawTemplate(info.GetIsolate()))));
     151        static v8::Persistent<v8::FunctionTemplate> sharedTemplate = v8::Persistent<v8::FunctionTemplate>::New(isolate, v8::FunctionTemplate::New(V8Location::reloadCallback, v8Undefined(), v8::Signature::New(V8Location::GetRawTemplate(isolate))));
    151152        return sharedTemplate->GetFunction();
    152153    }
     
    156157v8::Handle<v8::Value> V8Location::replaceAccessorGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info)
    157158{
    158     static v8::Persistent<v8::FunctionTemplate> privateTemplate = v8::Persistent<v8::FunctionTemplate>::New(v8::FunctionTemplate::New(V8Location::replaceCallback, v8Undefined(), v8::Signature::New(V8Location::GetRawTemplate(info.GetIsolate()))));
    159     v8::Handle<v8::Object> holder = info.This()->FindInstanceInPrototypeChain(V8Location::GetTemplate(info.GetIsolate()));
     159    v8::Isolate* isolate = info.GetIsolate();
     160    static v8::Persistent<v8::FunctionTemplate> privateTemplate = v8::Persistent<v8::FunctionTemplate>::New(isolate, v8::FunctionTemplate::New(V8Location::replaceCallback, v8Undefined(), v8::Signature::New(V8Location::GetRawTemplate(isolate))));
     161    v8::Handle<v8::Object> holder = info.This()->FindInstanceInPrototypeChain(V8Location::GetTemplate(isolate));
    160162    if (holder.IsEmpty()) {
    161163        // can only reach here by 'object.__proto__.func', and it should passed
     
    165167    Location* imp = V8Location::toNative(holder);
    166168    if (!BindingSecurity::shouldAllowAccessToFrame(BindingState::instance(), imp->frame(), DoNotReportSecurityError)) {
    167         static v8::Persistent<v8::FunctionTemplate> sharedTemplate = v8::Persistent<v8::FunctionTemplate>::New(v8::FunctionTemplate::New(V8Location::replaceCallback, v8Undefined(), v8::Signature::New(V8Location::GetRawTemplate(info.GetIsolate()))));
     169        static v8::Persistent<v8::FunctionTemplate> sharedTemplate = v8::Persistent<v8::FunctionTemplate>::New(isolate, v8::FunctionTemplate::New(V8Location::replaceCallback, v8Undefined(), v8::Signature::New(V8Location::GetRawTemplate(isolate))));
    168170        return sharedTemplate->GetFunction();
    169171    }
     
    173175v8::Handle<v8::Value> V8Location::assignAccessorGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info)
    174176{
     177    v8::Isolate* isolate = info.GetIsolate();
    175178    static v8::Persistent<v8::FunctionTemplate> privateTemplate =
    176         v8::Persistent<v8::FunctionTemplate>::New(v8::FunctionTemplate::New(V8Location::assignCallback, v8Undefined(), v8::Signature::New(V8Location::GetRawTemplate(info.GetIsolate()))));
    177     v8::Handle<v8::Object> holder = info.This()->FindInstanceInPrototypeChain(V8Location::GetTemplate(info.GetIsolate()));
     179        v8::Persistent<v8::FunctionTemplate>::New(isolate, v8::FunctionTemplate::New(V8Location::assignCallback, v8Undefined(), v8::Signature::New(V8Location::GetRawTemplate(isolate))));
     180    v8::Handle<v8::Object> holder = info.This()->FindInstanceInPrototypeChain(V8Location::GetTemplate(isolate));
    178181    if (holder.IsEmpty()) {
    179182        // can only reach here by 'object.__proto__.func', and it should passed
     
    183186    Location* imp = V8Location::toNative(holder);
    184187    if (!BindingSecurity::shouldAllowAccessToFrame(BindingState::instance(), imp->frame(), DoNotReportSecurityError)) {
    185         static v8::Persistent<v8::FunctionTemplate> sharedTemplate = v8::Persistent<v8::FunctionTemplate>::New(v8::FunctionTemplate::New(V8Location::assignCallback, v8Undefined(), v8::Signature::New(V8Location::GetRawTemplate(info.GetIsolate()))));
     188        static v8::Persistent<v8::FunctionTemplate> sharedTemplate = v8::Persistent<v8::FunctionTemplate>::New(isolate, v8::FunctionTemplate::New(V8Location::assignCallback, v8Undefined(), v8::Signature::New(V8Location::GetRawTemplate(isolate))));
    186189        return sharedTemplate->GetFunction();
    187190    }
  • trunk/Source/WebKit/chromium/ChangeLog

    r142214 r142250  
     12013-02-08  Dan Carney  <dcarney@google.com>
     2
     3        [v8] isolate parameter added to all v8::peristent calls
     4        https://bugs.webkit.org/show_bug.cgi?id=109268
     5
     6        Reviewed by Kentaro Hara.
     7
     8        * tests/WebFrameTest.cpp:
     9
    1102013-02-07  Kent Tamura  <tkent@chromium.org>
    211
  • trunk/Source/WebKit/chromium/tests/WebFrameTest.cpp

    r142093 r142250  
    988988    public:
    989989        Notification(WebFrame* frame, v8::Handle<v8::Context> context, int worldId)
    990             : frame(frame) ,
    991               context(v8::Persistent<v8::Context>::New(context)),
    992               worldId(worldId)
     990            : frame(frame)
     991            , context(v8::Persistent<v8::Context>::New(context->GetIsolate(), context))
     992            , worldId(worldId)
    993993        {
    994994        }
     
    996996        ~Notification()
    997997        {
    998             context.Dispose();
     998            context.Dispose(context->GetIsolate());
    999999        }
    10001000
Note: See TracChangeset for help on using the changeset viewer.