X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fthird_party%2FWebKit%2FSource%2Fbindings%2Fv8%2FV8PerIsolateData.h;h=3d71809f1b8805c787e0fa5933429aa0610060b9;hb=ff3e2503a20db9193d323c1d19c38c68004dec4a;hp=28dcd09b7f85cc4a91dbac6fc0f4f12257a0bcd6;hpb=7338fba38ba696536d1cc9d389afd716a6ab2fe6;p=platform%2Fframework%2Fweb%2Fcrosswalk.git diff --git a/src/third_party/WebKit/Source/bindings/v8/V8PerIsolateData.h b/src/third_party/WebKit/Source/bindings/v8/V8PerIsolateData.h index 28dcd09..3d71809 100644 --- a/src/third_party/WebKit/Source/bindings/v8/V8PerIsolateData.h +++ b/src/third_party/WebKit/Source/bindings/v8/V8PerIsolateData.h @@ -45,11 +45,10 @@ struct WrapperTypeInfo; class ExternalStringVisitor; -typedef WTF::Vector DOMDataList; +typedef WTF::Vector DOMDataStoreList; class V8PerIsolateData { public: - static V8PerIsolateData* create(v8::Isolate*); static void ensureInitialized(v8::Isolate*); static V8PerIsolateData* current() { @@ -62,6 +61,9 @@ public: return static_cast(isolate->GetData(gin::kEmbedderBlink)); } static void dispose(v8::Isolate*); + static v8::Isolate* mainThreadIsolate(); + + bool isMainThread() { return m_isMainThread; }; typedef HashMap > TemplateMap; @@ -73,37 +75,32 @@ public: } v8::Handle toStringTemplate(); - v8::Handle lazyEventListenerToStringTemplate() - { - return v8::Local::New(m_isolate, m_lazyEventListenerToStringTemplate); - } StringCache* stringCache() { return m_stringCache.get(); } v8::Persistent& ensureLiveRoot(); - DOMDataList& allStores() { return m_domDataList; } + DOMDataStoreList& allStores() { return m_domDataStoreList; } void registerDOMDataStore(DOMDataStore* domDataStore) { - ASSERT(m_domDataList.find(domDataStore) == kNotFound); - m_domDataList.append(domDataStore); + ASSERT(m_domDataStoreList.find(domDataStore) == kNotFound); + m_domDataStoreList.append(domDataStore); } void unregisterDOMDataStore(DOMDataStore* domDataStore) { - ASSERT(m_domDataList.find(domDataStore) != kNotFound); - m_domDataList.remove(m_domDataList.find(domDataStore)); + ASSERT(m_domDataStoreList.find(domDataStore) != kNotFound); + m_domDataStoreList.remove(m_domDataStoreList.find(domDataStore)); } - // DOMDataStore is owned outside V8PerIsolateData. - DOMDataStore* workerDOMDataStore() { return m_workerDomDataStore; } - void setWorkerDOMDataStore(DOMDataStore* store) { m_workerDomDataStore = store; } - int recursionLevel() const { return m_recursionLevel; } int incrementRecursionLevel() { return ++m_recursionLevel; } int decrementRecursionLevel() { return --m_recursionLevel; } + bool performingMicrotaskCheckpoint() const { return m_performingMicrotaskCheckpoint; } + void setPerformingMicrotaskCheckpoint(bool performingMicrotaskCheckpoint) { m_performingMicrotaskCheckpoint = performingMicrotaskCheckpoint; } + #ifndef NDEBUG int internalScriptRecursionLevel() const { return m_internalScriptRecursionLevel; } int incrementInternalScriptRecursionLevel() { return ++m_internalScriptRecursionLevel; } @@ -139,14 +136,13 @@ private: static void constructorOfToString(const v8::FunctionCallbackInfo&); v8::Isolate* m_isolate; + bool m_isMainThread; // Caches the result of isMainThread() for performance. TemplateMap m_templatesForMainWorld; TemplateMap m_templatesForNonMainWorld; ScopedPersistent m_toStringTemplate; - v8::Persistent m_lazyEventListenerToStringTemplate; OwnPtr m_stringCache; - Vector m_domDataList; - DOMDataStore* m_workerDomDataStore; + Vector m_domDataStoreList; ScopedPersistent m_liveRoot; ScopedPersistent m_regexContext; @@ -163,6 +159,7 @@ private: #endif OwnPtr m_gcEventData; bool m_shouldCollectGarbageSoon; + bool m_performingMicrotaskCheckpoint; }; } // namespace WebCore