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

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

Issue 300393002: Merge DevTools Refactor CL to Blink36 (Closed) Base URL: svn://svn.chromium.org/blink/branches/dart/1985
Patch Set: Created 6 years, 6 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
OLDNEW
1 // Copyright (c) 2009, Google Inc. 1 // Copyright (c) 2009, 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 26 matching lines...) Expand all
37 37
38 #include "DartDocument.h" 38 #include "DartDocument.h"
39 #include "DartService.h" 39 #include "DartService.h"
40 #include "DartWindow.h" 40 #include "DartWindow.h"
41 #include "HTMLNames.h" 41 #include "HTMLNames.h"
42 #include "bindings/common/ScheduledAction.h" 42 #include "bindings/common/ScheduledAction.h"
43 #include "bindings/dart/DartApplicationLoader.h" 43 #include "bindings/dart/DartApplicationLoader.h"
44 #include "bindings/dart/DartAsyncLoader.h" 44 #include "bindings/dart/DartAsyncLoader.h"
45 #include "bindings/dart/DartDOMData.h" 45 #include "bindings/dart/DartDOMData.h"
46 #include "bindings/dart/DartDOMWrapper.h" 46 #include "bindings/dart/DartDOMWrapper.h"
47 #include "bindings/dart/DartDebugServer.h"
48 #include "bindings/dart/DartGCController.h" 47 #include "bindings/dart/DartGCController.h"
49 #include "bindings/dart/DartInspectorTimeline.h" 48 #include "bindings/dart/DartInspectorTimeline.h"
50 #include "bindings/dart/DartIsolateDestructionObserver.h" 49 #include "bindings/dart/DartIsolateDestructionObserver.h"
51 #include "bindings/dart/DartJsInterop.h" 50 #include "bindings/dart/DartJsInterop.h"
52 #include "bindings/dart/DartNativeUtilities.h" 51 #include "bindings/dart/DartNativeUtilities.h"
52 #include "bindings/dart/DartScriptDebugServer.h"
53 #include "bindings/dart/DartScriptState.h" 53 #include "bindings/dart/DartScriptState.h"
54 #include "bindings/dart/DartUtilities.h" 54 #include "bindings/dart/DartUtilities.h"
55 #include "bindings/dart/ThreadSafeDartIsolateWrapper.h" 55 #include "bindings/dart/ThreadSafeDartIsolateWrapper.h"
56 #include "bindings/v8/ScriptController.h" 56 #include "bindings/v8/ScriptController.h"
57 #include "bindings/v8/V8Binding.h" 57 #include "bindings/v8/V8Binding.h"
58 #include "core/dom/Document.h" 58 #include "core/dom/Document.h"
59 #include "core/dom/ExecutionContext.h" 59 #include "core/dom/ExecutionContext.h"
60 #include "core/dom/ExecutionContextTask.h" 60 #include "core/dom/ExecutionContextTask.h"
61 #include "core/dom/MutationObserver.h" 61 #include "core/dom/MutationObserver.h"
62 #include "core/dom/NodeList.h" 62 #include "core/dom/NodeList.h"
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 // this persistent handle explicitly because we will shutdown the isolat e on 198 // this persistent handle explicitly because we will shutdown the isolat e on
199 // navigation. 199 // navigation.
200 Dart_Handle localHandle = DartDocument::toDart(document); 200 Dart_Handle localHandle = DartDocument::toDart(document);
201 Dart_PersistentHandle ALLOW_UNUSED strongHandle = Dart_NewPersistentHand le(localHandle); 201 Dart_PersistentHandle ALLOW_UNUSED strongHandle = Dart_NewPersistentHand le(localHandle);
202 // We need a weak handle to an always reachable object in order to tempo rarily make 202 // We need a weak handle to an always reachable object in order to tempo rarily make
203 // weak handles strong during GC, see the corresponding logic in DartGCC ontroller. 203 // weak handles strong during GC, see the corresponding logic in DartGCC ontroller.
204 domData->setReachableWeakHandle(Dart_NewWeakPersistentHandle(localHandle , 0, 0, DartController::weakCallback)); 204 domData->setReachableWeakHandle(Dart_NewWeakPersistentHandle(localHandle , 0, 0, DartController::weakCallback));
205 Dart_SetMessageNotifyCallback(&messageNotifyCallback); 205 Dart_SetMessageNotifyCallback(&messageNotifyCallback);
206 Dart_SetGcCallbacks(&DartGCController::prologueCallback, &DartGCControll er::epilogueCallback); 206 Dart_SetGcCallbacks(&DartGCController::prologueCallback, &DartGCControll er::epilogueCallback);
207 207
208 if (isDebuggerEnabled) { 208 if (isDebuggerEnabled) {
vsm 2014/06/03 14:24:49 When is this enabled? I seem to hit this path reg
Jacob 2014/06/03 20:23:13 I believe the flag is always true unless you start
209 DART_RECORD_TIMER(" createIsolate before debug setup"); 209 DART_RECORD_TIMER(" createIsolate before debug setup");
210 DartDebugServer::shared().registerIsolate(isolate); 210 DartScriptDebugServer::shared().registerIsolate(isolate, document->p age());
211 DART_RECORD_TIMER(" createIsolate after debug setup"); 211 DART_RECORD_TIMER(" createIsolate after debug setup");
212 } 212 }
213 } 213 }
214 DART_RECORD_TIMER(" createIsolate done %.3f ms"); 214 DART_RECORD_TIMER(" createIsolate done %.3f ms");
215 215
216 return isolate; 216 return isolate;
217 } 217 }
218 218
219 Dart_Isolate DartController::createDOMEnabledIsolate(const String& scriptURL, co nst String& entryPoint, Document* document) 219 Dart_Isolate DartController::createDOMEnabledIsolate(const String& scriptURL, co nst String& entryPoint, Document* document)
220 { 220 {
221 DART_START_TIMER(); 221 DART_START_TIMER();
222 ASSERT(!Dart_CurrentIsolate()); 222 ASSERT(!Dart_CurrentIsolate());
223 223
224 // FIXME: proper error reporting. 224 // FIXME: proper error reporting.
225 char* errorMessage = 0; 225 char* errorMessage = 0;
226 Dart_Isolate newIsolate = createIsolate(scriptURL.utf8().data(), entryPoint. utf8().data(), document, true, true, &errorMessage); 226 Dart_Isolate newIsolate = createIsolate(scriptURL.utf8().data(), entryPoint. utf8().data(), document, true, true, &errorMessage);
227 ASSERT(newIsolate); 227 ASSERT(newIsolate);
228 m_isolates.append(newIsolate); 228 m_isolates.append(newIsolate);
229 DART_RECORD_TIMER(" createDOMEnabledIsolate took"); 229 DART_RECORD_TIMER(" createDOMEnabledIsolate took");
230 return newIsolate; 230 return newIsolate;
231 } 231 }
232 232
233 void DartController::shutdownIsolate(Dart_Isolate isolate) 233 void DartController::shutdownIsolate(Dart_Isolate isolate)
234 { 234 {
235 DartDOMData* domData = DartDOMData::current(); 235 DartDOMData* domData = DartDOMData::current();
236 ASSERT(domData->isDOMEnabled()); 236 ASSERT(domData->isDOMEnabled());
237 // If the following assert triggers, we have hit dartbug.com/14183 237 // If the following assert triggers, we have hit dartbug.com/14183
238 // FIXME: keep the isolate alive until the recursion level is 0. 238 // FIXME: keep the isolate alive until the recursion level is 0.
239 ASSERT(!*(domData->recursion())); 239 ASSERT(!*(domData->recursion()));
240 DartDebugServer::shared().unregisterIsolate(isolate); 240 DartScriptDebugServer::shared().unregisterIsolate(isolate, m_frame->page());
241 DartIsolateDestructionObservers* observers = domData->isolateDestructionObse rvers(); 241 DartIsolateDestructionObservers* observers = domData->isolateDestructionObse rvers();
242 for (DartIsolateDestructionObservers::iterator it = observers->begin(); it ! = observers->end(); ++it) 242 for (DartIsolateDestructionObservers::iterator it = observers->begin(); it ! = observers->end(); ++it)
243 (*it)->isolateDestroyed(); 243 (*it)->isolateDestroyed();
244 Dart_ShutdownIsolate(); 244 Dart_ShutdownIsolate();
245 delete domData; 245 delete domData;
246 } 246 }
247 247
248 DartController::DartController(LocalFrame* frame) 248 DartController::DartController(LocalFrame* frame)
249 : m_frame(frame) 249 : m_frame(frame)
250 , m_asyncLoader(0) 250 , m_asyncLoader(0)
(...skipping 668 matching lines...) Expand 10 before | Expand all | Expand 10 after
919 DartAsyncLoader* asyncLoader = new DartAsyncLoader(); 919 DartAsyncLoader* asyncLoader = new DartAsyncLoader();
920 asyncLoader->processSingleRequest(url, callback); 920 asyncLoader->processSingleRequest(url, callback);
921 921
922 // Restore caller isolate. 922 // Restore caller isolate.
923 Dart_EnterIsolate(caller); 923 Dart_EnterIsolate(caller);
924 924
925 // FIXME: We need some way to return a Dart_Handle to the isolate we just cr eated. 925 // FIXME: We need some way to return a Dart_Handle to the isolate we just cr eated.
926 } 926 }
927 927
928 } 928 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698