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

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

Issue 2625093002: [wrapper-tracing] Add heap snapshot generator infrastructure (Closed)
Patch Set: Rebase and fix CHECK Created 3 years, 11 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/V8PerIsolateData.h
diff --git a/third_party/WebKit/Source/bindings/core/v8/V8PerIsolateData.h b/third_party/WebKit/Source/bindings/core/v8/V8PerIsolateData.h
index b4e05891a44b8bf5df5ffde47e5a3814f974f91a..99776e7788df252375e0feae48dca8cbaf82dfce 100644
--- a/third_party/WebKit/Source/bindings/core/v8/V8PerIsolateData.h
+++ b/third_party/WebKit/Source/bindings/core/v8/V8PerIsolateData.h
@@ -167,6 +167,33 @@ class CORE_EXPORT V8PerIsolateData {
return m_activeScriptWrappables.get();
}
+ class TemporaryScriptWrappableVisitorScope {
+ WTF_MAKE_NONCOPYABLE(TemporaryScriptWrappableVisitorScope);
+ STACK_ALLOCATED();
+
+ public:
+ TemporaryScriptWrappableVisitorScope(
+ v8::Isolate* isolate,
+ std::unique_ptr<ScriptWrappableVisitor> visitor)
+ : m_isolate(isolate) {
+ swapWithV8PerIsolateDataVisitor(visitor);
+ }
+ ~TemporaryScriptWrappableVisitorScope() {
+ swapWithV8PerIsolateDataVisitor(m_savedVisitor);
+ }
+
+ private:
+ inline ScriptWrappableVisitor* currentVisitor(v8::Isolate* isolate) {
+ return V8PerIsolateData::from(m_isolate)->scriptWrappableVisitor();
+ }
+
+ void swapWithV8PerIsolateDataVisitor(
+ std::unique_ptr<ScriptWrappableVisitor>&);
+
+ v8::Isolate* m_isolate;
+ std::unique_ptr<ScriptWrappableVisitor> m_savedVisitor;
+ };
+
void setScriptWrappableVisitor(
std::unique_ptr<ScriptWrappableVisitor> visitor) {
m_scriptWrappableVisitor = std::move(visitor);

Powered by Google App Engine
This is Rietveld 408576698