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

Side by Side Diff: sky/engine/core/script/dart_controller.cc

Issue 1185233002: Update Dart dependency and patch dart_controller to account for non-backwards compatible API update (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 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
« no previous file with comments | « mojo/dart/embedder/dart_controller.cc ('k') | sky/tools/packager/vm.cc » ('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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "sky/engine/config.h" 5 #include "sky/engine/config.h"
6 #include "sky/engine/core/script/dart_controller.h" 6 #include "sky/engine/core/script/dart_controller.h"
7 7
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/single_thread_task_runner.h" 10 #include "base/single_thread_task_runner.h"
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after
231 CHECK(!LogIfError(Dart_RunLoop())); 231 CHECK(!LogIfError(Dart_RunLoop()));
232 handle_watcher_started = true; 232 handle_watcher_started = true;
233 } 233 }
234 234
235 // TODO(rafaelw): Right now this only supports the creation of the handle 235 // TODO(rafaelw): Right now this only supports the creation of the handle
236 // watcher isolate and the service isolate. Presumably, we'll want application 236 // watcher isolate and the service isolate. Presumably, we'll want application
237 // isolates to spawn their own isolates. 237 // isolates to spawn their own isolates.
238 static Dart_Isolate IsolateCreateCallback(const char* script_uri, 238 static Dart_Isolate IsolateCreateCallback(const char* script_uri,
239 const char* main, 239 const char* main,
240 const char* package_root, 240 const char* package_root,
241 Dart_IsolateFlags* flags,
241 void* callback_data, 242 void* callback_data,
242 char** error) { 243 char** error) {
243
244 if (IsServiceIsolateURL(script_uri)) { 244 if (IsServiceIsolateURL(script_uri)) {
245 CHECK(kDartIsolateSnapshotBuffer); 245 CHECK(kDartIsolateSnapshotBuffer);
246 DartState* dart_state = new DartState(); 246 DartState* dart_state = new DartState();
247 Dart_Isolate isolate = Dart_CreateIsolate(script_uri, 247 Dart_Isolate isolate =
248 "main", 248 Dart_CreateIsolate(script_uri, "main", kDartIsolateSnapshotBuffer,
249 kDartIsolateSnapshotBuffer, 249 nullptr, nullptr, error);
250 nullptr,
251 error);
252 CHECK(isolate) << error; 250 CHECK(isolate) << error;
253 dart_state->SetIsolate(isolate); 251 dart_state->SetIsolate(isolate);
254 CHECK(Dart_IsServiceIsolate(isolate)); 252 CHECK(Dart_IsServiceIsolate(isolate));
255 CHECK(!LogIfError(Dart_SetLibraryTagHandler(LibraryTagHandler))); 253 CHECK(!LogIfError(Dart_SetLibraryTagHandler(LibraryTagHandler)));
256 { 254 {
257 DartApiScope apiScope; 255 DartApiScope apiScope;
258 Builtin::SetNativeResolver(Builtin::kBuiltinLibrary); 256 Builtin::SetNativeResolver(Builtin::kBuiltinLibrary);
259 Builtin::SetNativeResolver(Builtin::kMojoInternalLibrary); 257 Builtin::SetNativeResolver(Builtin::kMojoInternalLibrary);
260 Builtin::SetNativeResolver(Builtin::kIOLibrary); 258 Builtin::SetNativeResolver(Builtin::kIOLibrary);
261 BuiltinNatives::Init(BuiltinNatives::DartIOIsolate); 259 BuiltinNatives::Init(BuiltinNatives::DartIOIsolate);
262 // Start the handle watcher from the service isolate so it isn't available 260 // Start the handle watcher from the service isolate so it isn't available
263 // for debugging or general Observatory interaction. 261 // for debugging or general Observatory interaction.
264 EnsureHandleWatcherStarted(); 262 EnsureHandleWatcherStarted();
265 if (RuntimeEnabledFeatures::observatoryEnabled()) { 263 if (RuntimeEnabledFeatures::observatoryEnabled()) {
266 std::string ip = "127.0.0.1"; 264 std::string ip = "127.0.0.1";
267 const intptr_t port = 8181; 265 const intptr_t port = 8181;
268 const bool service_isolate_booted = 266 const bool service_isolate_booted =
269 DartServiceIsolate::Startup(ip, port, LibraryTagHandler, error); 267 DartServiceIsolate::Startup(ip, port, LibraryTagHandler, error);
270 CHECK(service_isolate_booted) << error; 268 CHECK(service_isolate_booted) << error;
271 } 269 }
272 } 270 }
273 Dart_ExitIsolate(); 271 Dart_ExitIsolate();
274 return isolate; 272 return isolate;
275 } 273 }
276 274
277 // Create & start the handle watcher isolate 275 // Create & start the handle watcher isolate
278 CHECK(kDartIsolateSnapshotBuffer); 276 CHECK(kDartIsolateSnapshotBuffer);
279 DartState* dart_state = new DartState(); 277 DartState* dart_state = new DartState();
280 Dart_Isolate isolate = Dart_CreateIsolate("sky:handle_watcher", "", 278 Dart_Isolate isolate =
281 kDartIsolateSnapshotBuffer, dart_state, error); 279 Dart_CreateIsolate("sky:handle_watcher", "", kDartIsolateSnapshotBuffer,
280 nullptr, dart_state, error);
282 CHECK(isolate) << error; 281 CHECK(isolate) << error;
283 dart_state->SetIsolate(isolate); 282 dart_state->SetIsolate(isolate);
284 283
285 CHECK(!LogIfError(Dart_SetLibraryTagHandler(LibraryTagHandler))); 284 CHECK(!LogIfError(Dart_SetLibraryTagHandler(LibraryTagHandler)));
286 285
287 { 286 {
288 DartApiScope apiScope; 287 DartApiScope apiScope;
289 Builtin::SetNativeResolver(Builtin::kBuiltinLibrary); 288 Builtin::SetNativeResolver(Builtin::kBuiltinLibrary);
290 Builtin::SetNativeResolver(Builtin::kMojoInternalLibrary); 289 Builtin::SetNativeResolver(Builtin::kMojoInternalLibrary);
291 Builtin::SetNativeResolver(Builtin::kIOLibrary); 290 Builtin::SetNativeResolver(Builtin::kIOLibrary);
(...skipping 25 matching lines...) Expand all
317 Platform::current()->mainThreadTaskRunner()->PostTask(FROM_HERE, 316 Platform::current()->mainThreadTaskRunner()->PostTask(FROM_HERE,
318 base::Bind(&CallHandleMessage, DartState::From(dest_isolate)->GetWeakPtr() )); 317 base::Bind(&CallHandleMessage, DartState::From(dest_isolate)->GetWeakPtr() ));
319 } 318 }
320 319
321 void DartController::CreateIsolateFor(PassOwnPtr<DOMDartState> state) { 320 void DartController::CreateIsolateFor(PassOwnPtr<DOMDartState> state) {
322 CHECK(kDartIsolateSnapshotBuffer); 321 CHECK(kDartIsolateSnapshotBuffer);
323 char* error = nullptr; 322 char* error = nullptr;
324 dom_dart_state_ = state; 323 dom_dart_state_ = state;
325 Dart_Isolate isolate = Dart_CreateIsolate( 324 Dart_Isolate isolate = Dart_CreateIsolate(
326 dom_dart_state_->url().string().utf8().data(), "main", 325 dom_dart_state_->url().string().utf8().data(), "main",
327 kDartIsolateSnapshotBuffer, 326 kDartIsolateSnapshotBuffer, nullptr,
328 static_cast<DartState*>(dom_dart_state_.get()), &error); 327 static_cast<DartState*>(dom_dart_state_.get()), &error);
329 Dart_SetMessageNotifyCallback(MessageNotifyCallback); 328 Dart_SetMessageNotifyCallback(MessageNotifyCallback);
330 CHECK(isolate) << error; 329 CHECK(isolate) << error;
331 dom_dart_state_->SetIsolate(isolate); 330 dom_dart_state_->SetIsolate(isolate);
332 Dart_SetGcCallbacks(DartGCPrologue, DartGCEpilogue); 331 Dart_SetGcCallbacks(DartGCPrologue, DartGCEpilogue);
333 CHECK(!LogIfError(Dart_SetLibraryTagHandler(LibraryTagHandler))); 332 CHECK(!LogIfError(Dart_SetLibraryTagHandler(LibraryTagHandler)));
334 333
335 { 334 {
336 DartApiScope apiScope; 335 DartApiScope apiScope;
337 336
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
389 nullptr, // Isolate interrupt callback. 388 nullptr, // Isolate interrupt callback.
390 UnhandledExceptionCallback, IsolateShutdownCallback, 389 UnhandledExceptionCallback, IsolateShutdownCallback,
391 // File IO callbacks. 390 // File IO callbacks.
392 nullptr, nullptr, nullptr, nullptr, nullptr)); 391 nullptr, nullptr, nullptr, nullptr, nullptr));
393 // Wait for load port- ensures handle watcher and service isolates are 392 // Wait for load port- ensures handle watcher and service isolates are
394 // running. 393 // running.
395 Dart_ServiceWaitForLoadPort(); 394 Dart_ServiceWaitForLoadPort();
396 } 395 }
397 396
398 } // namespace blink 397 } // namespace blink
OLDNEW
« no previous file with comments | « mojo/dart/embedder/dart_controller.cc ('k') | sky/tools/packager/vm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698