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

Unified Diff: Source/bindings/core/v8/ScriptController.h

Issue 627933002: Oilpan: move ScriptController+WindowProxy to the heap. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Smaller fixes Created 6 years, 2 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
« no previous file with comments | « no previous file | Source/bindings/core/v8/ScriptController.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/bindings/core/v8/ScriptController.h
diff --git a/Source/bindings/core/v8/ScriptController.h b/Source/bindings/core/v8/ScriptController.h
index dea90c48c28dd1aff2f4b233d70ecca44ee2fbd2..71d60f922dbf5952825c62bb51a2292d9130675d 100644
--- a/Source/bindings/core/v8/ScriptController.h
+++ b/Source/bindings/core/v8/ScriptController.h
@@ -34,8 +34,8 @@
#include "bindings/core/v8/SharedPersistent.h"
#include "core/fetch/CrossOriginAccessControl.h"
+#include "platform/heap/Handle.h"
#include "wtf/HashMap.h"
-#include "wtf/RefCounted.h"
#include "wtf/Vector.h"
#include "wtf/text/TextPosition.h"
#include <v8.h>
@@ -63,15 +63,20 @@ enum ReasonForCallingCanExecuteScripts {
NotAboutToExecuteScript
};
-class ScriptController {
+class ScriptController final : public NoBaseWillBeGarbageCollectedFinalized<ScriptController> {
public:
enum ExecuteScriptPolicy {
ExecuteScriptWhenScriptsDisabled,
DoNotExecuteScriptWhenScriptsDisabled
};
- ScriptController(LocalFrame*);
+ static PassOwnPtrWillBeRawPtr<ScriptController> create(LocalFrame* frame)
+ {
+ return adoptPtrWillBeNoop(new ScriptController(frame));
+ }
+
~ScriptController();
+ void trace(Visitor*);
bool initializeMainWorld();
WindowProxy* windowProxy(DOMWrapperWorld&);
@@ -147,16 +152,18 @@ public:
v8::Isolate* isolate() const { return m_isolate; }
private:
- typedef HashMap<int, OwnPtr<WindowProxy> > IsolatedWorldMap;
+ explicit ScriptController(LocalFrame*);
+
+ typedef WillBeHeapHashMap<int, OwnPtrWillBeMember<WindowProxy> > IsolatedWorldMap;
typedef HashMap<Widget*, NPObject*> PluginObjectMap;
v8::Local<v8::Value> evaluateScriptInMainWorld(const ScriptSourceCode&, AccessControlStatus, ExecuteScriptPolicy, double* compilationFinishTime = 0);
- LocalFrame* m_frame;
+ RawPtrWillBeMember<LocalFrame> m_frame;
const String* m_sourceURL;
v8::Isolate* m_isolate;
- OwnPtr<WindowProxy> m_windowProxy;
+ OwnPtrWillBeMember<WindowProxy> m_windowProxy;
IsolatedWorldMap m_isolatedWorlds;
// A mapping between Widgets and their corresponding script object.
« no previous file with comments | « no previous file | Source/bindings/core/v8/ScriptController.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698