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

Side by Side Diff: Source/bindings/dart/DartController.h

Issue 26490003: Reapply "Move isolate loading to a separate loader isolate." (Closed) Base URL: svn://svn.chromium.org/multivm/trunk/webkit
Patch Set: Initialize flag properly Created 7 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/bindings/dart/DartAsyncLoader.cpp ('k') | Source/bindings/dart/DartController.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011, Google Inc. 1 // Copyright 2011, Google Inc.
2 // All rights reserved. 2 // All rights reserved.
3 // 3 //
4 // Redistribution and use in source and binary forms, with or without 4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions are 5 // modification, are permitted provided that the following conditions are
6 // met: 6 // met:
7 // 7 //
8 // * Redistributions of source code must retain the above copyright 8 // * Redistributions of source code must retain the above copyright
9 // notice, this list of conditions and the following disclaimer. 9 // notice, this list of conditions and the following disclaimer.
10 // * Redistributions in binary form must reproduce the above 10 // * Redistributions in binary form must reproduce the above
(...skipping 25 matching lines...) Expand all
36 #include <v8.h> 36 #include <v8.h>
37 #include <wtf/HashMap.h> 37 #include <wtf/HashMap.h>
38 #include <wtf/Vector.h> 38 #include <wtf/Vector.h>
39 #include <wtf/text/WTFString.h> 39 #include <wtf/text/WTFString.h>
40 40
41 struct NPObject; 41 struct NPObject;
42 42
43 namespace WebCore { 43 namespace WebCore {
44 44
45 class DartApplicationLoader; 45 class DartApplicationLoader;
46 class DartAsyncLoader;
46 class DartDOMData; 47 class DartDOMData;
47 class DartScriptState; 48 class DartScriptState;
48 class DOMWindow; 49 class DOMWindow;
49 class Frame; 50 class Frame;
51 class ScriptElementProxy;
50 class ScriptExecutionContext; 52 class ScriptExecutionContext;
51 class ScriptState; 53 class ScriptState;
52 54
53 // This class provides the linkage between a Frame and its attached 55 // This class provides the linkage between a Frame and its attached
54 // Dart isolates. It is similar to ScriptController for JavaScript. 56 // Dart isolates. It is similar to ScriptController for JavaScript.
55 // The DartController is owned by its Frame. 57 // The DartController is owned by its Frame.
56 class DartController { 58 class DartController {
57 public: 59 public:
58 DartController(Frame*); 60 DartController(Frame*);
59 virtual ~DartController(); 61 virtual ~DartController();
(...skipping 14 matching lines...) Expand all
74 Frame* frame() const { return m_frame; } 76 Frame* frame() const { return m_frame; }
75 void collectScriptStates(ScriptState* v8ScriptState, Vector<ScriptState*>& r esult); 77 void collectScriptStates(ScriptState* v8ScriptState, Vector<ScriptState*>& r esult);
76 void collectScriptStatesForIsolate(Dart_Isolate, v8::Handle<v8::Context> v8C ontext, Vector<ScriptState*>& result); 78 void collectScriptStatesForIsolate(Dart_Isolate, v8::Handle<v8::Context> v8C ontext, Vector<ScriptState*>& result);
77 79
78 void spawnDomIsolateFromSelf(const String& libraryUrl, const String& entryPo int, DartDOMData* parentDOMData, Dart_Port replyTo); 80 void spawnDomIsolateFromSelf(const String& libraryUrl, const String& entryPo int, DartDOMData* parentDOMData, Dart_Port replyTo);
79 void spawnDomIsolateFromUrl(const String& url, Dart_Port replyTo); 81 void spawnDomIsolateFromUrl(const String& url, Dart_Port replyTo);
80 82
81 static DartController* retrieve(Frame*); 83 static DartController* retrieve(Frame*);
82 static DartController* retrieve(ScriptExecutionContext*); 84 static DartController* retrieve(ScriptExecutionContext*);
83 85
86 // FIXME: Move.
87 void loadAndRunScript(const String&, PassRefPtr<DartAsyncLoader>, PassRefPtr <ScriptElementProxy>);
84 private: 88 private:
85 static void initVMIfNeeded(); 89 static void initVMIfNeeded();
86 90
87 static Dart_Isolate createIsolate(const char* scriptURL, const char* entryPo int, Document*, bool isDOMEnabled, char** errorMessage); 91 static Dart_Isolate createIsolate(const char* scriptURL, const char* entryPo int, Document*, bool isDOMEnabled, char** errorMessage);
88 static void shutdownIsolate(Dart_Isolate); 92 static void shutdownIsolate(Dart_Isolate);
89 93
90 void createDOMEnabledIsolate(const String& scriptURL, const String& entryPoi nt, Document*); 94 void createDOMEnabledIsolate(const String& scriptURL, const String& entryPoi nt, Document*);
91 95
92 static Dart_Isolate createPureIsolateCallback(const char* prefix, const char * main, void* callbackData, char** errorMsg); 96 static Dart_Isolate createPureIsolateCallback(const char* prefix, const char * main, void* callbackData, char** errorMsg);
93 void installDartExtensions(v8::Handle<v8::Context>); 97 void installDartExtensions(v8::Handle<v8::Context>);
(...skipping 12 matching lines...) Expand all
106 Vector<Dart_Isolate> m_isolates; 110 Vector<Dart_Isolate> m_isolates;
107 111
108 typedef HashMap<intptr_t, DartScriptState*> LibraryIdMap; 112 typedef HashMap<intptr_t, DartScriptState*> LibraryIdMap;
109 typedef HashMap<Dart_Isolate, LibraryIdMap*> ScriptStatesMap; 113 typedef HashMap<Dart_Isolate, LibraryIdMap*> ScriptStatesMap;
110 ScriptStatesMap m_scriptStates; 114 ScriptStatesMap m_scriptStates;
111 115
112 typedef HashMap<String, NPObject*> NPObjectMap; 116 typedef HashMap<String, NPObject*> NPObjectMap;
113 NPObjectMap m_npObjectMap; 117 NPObjectMap m_npObjectMap;
114 118
115 friend class DartScriptRunner; 119 friend class DartScriptRunner;
120 friend class DartDomCallback;
116 }; 121 };
117 122
118 } 123 }
119 124
120 #endif // DartController_h 125 #endif // DartController_h
OLDNEW
« no previous file with comments | « Source/bindings/dart/DartAsyncLoader.cpp ('k') | Source/bindings/dart/DartController.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698