| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |