Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(586)

Unified Diff: third_party/WebKit/Source/bindings/core/v8/V8PerContextData.h

Issue 2795593006: Abstract out Modulator from V8PerContextData (Closed)
Patch Set: Fix tests Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/bindings/core/v8/V8PerContextData.h
diff --git a/third_party/WebKit/Source/bindings/core/v8/V8PerContextData.h b/third_party/WebKit/Source/bindings/core/v8/V8PerContextData.h
index 4a57a3a73c9d33c6563c4e96086aae56559f9d74..3623aa196d52fd958b7856ec09c134fbe4ba8fe0 100644
--- a/third_party/WebKit/Source/bindings/core/v8/V8PerContextData.h
+++ b/third_party/WebKit/Source/bindings/core/v8/V8PerContextData.h
@@ -49,7 +49,6 @@
namespace blink {
-class Modulator;
class V8DOMActivityLogger;
class V8PerContextData;
@@ -104,9 +103,14 @@ class CORE_EXPORT V8PerContextData final {
m_activityLogger = activityLogger;
}
- Modulator* modulator() const { return m_modulator.get(); }
- void setModulator(Modulator*);
- void clearModulator();
+ // Garbage collected classes that use V8PerContextData to hold an instance
+ // should subclass Data, and use addData / clearData / getData to manage the
+ // instance.
+ class CORE_EXPORT Data : public GarbageCollectedMixin {};
+
+ void addData(const char* key, Data*);
+ void clearData(const char* key);
+ Data* getData(const char* key);
private:
V8PerContextData(v8::Local<v8::Context>);
@@ -138,7 +142,8 @@ class CORE_EXPORT V8PerContextData final {
// This is owned by a static hash map in V8DOMActivityLogger.
V8DOMActivityLogger* m_activityLogger;
- Persistent<Modulator> m_modulator;
+ using DataMap = PersistentHeapHashMap<const char*, Member<Data>>;
+ DataMap m_dataMap;
};
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698