提交 6ed9eac4 编写于 作者: A Adam Barth 提交者: GitHub

Move more code out of //flutter/sky/engine (#2918)

* Move dart:mojo.internal to //flutter/lib/mojo

To be parallel with the other built-in libraries.

* Move DartRuntimeHooks into //flutter/lib/ui

This code manipulates natives.dart, which is part of //flutter/lib/ui.
上级 f8d80c46
# Copyright 2016 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
source_set("mojo") {
sources = [
"dart_mojo_internal.cc",
"dart_mojo_internal.h",
]
deps = [
"//dart/runtime:libdart",
"//lib/ftl",
"//lib/tonic",
"//mojo/public/cpp/system",
"//mojo/public/platform/dart:mojo_internal_impl",
]
}
...@@ -2,12 +2,12 @@ ...@@ -2,12 +2,12 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "flutter/sky/engine/bindings/dart_mojo_internal.h" #include "flutter/lib/mojo/dart_mojo_internal.h"
#include "dart/runtime/include/dart_api.h" #include "dart/runtime/include/dart_api.h"
#include "lib/tonic/logging/dart_error.h"
#include "lib/ftl/logging.h" #include "lib/ftl/logging.h"
#include "lib/tonic/converter/dart_converter.h" #include "lib/tonic/converter/dart_converter.h"
#include "lib/tonic/logging/dart_error.h"
#include "mojo/public/platform/dart/mojo_natives.h" #include "mojo/public/platform/dart/mojo_natives.h"
using tonic::LogIfError; using tonic::LogIfError;
......
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef SKY_ENGINE_BINDINGS_DART_MOJO_INTERNAL_H_ #ifndef FLUTTER_LIB_MOJO_DART_MOJO_INTERNAL_H_
#define SKY_ENGINE_BINDINGS_DART_MOJO_INTERNAL_H_ #define FLUTTER_LIB_MOJO_DART_MOJO_INTERNAL_H_
#include "lib/ftl/macros.h" #include "lib/ftl/macros.h"
#include "mojo/public/cpp/system/handle.h" #include "mojo/public/cpp/system/handle.h"
...@@ -22,4 +22,4 @@ class DartMojoInternal { ...@@ -22,4 +22,4 @@ class DartMojoInternal {
} // namespace blink } // namespace blink
#endif // SKY_ENGINE_BINDINGS_DART_MOJO_INTERNAL_H_ #endif // FLUTTER_LIB_MOJO_DART_MOJO_INTERNAL_H_
...@@ -8,18 +8,20 @@ source_set("ui") { ...@@ -8,18 +8,20 @@ source_set("ui") {
"compositing/scene_builder.h", "compositing/scene_builder.h",
"compositing/scene.cc", "compositing/scene.cc",
"compositing/scene.h", "compositing/scene.h",
"dart_runtime_hooks.cc",
"dart_runtime_hooks.h",
"painting/canvas.cc", "painting/canvas.cc",
"painting/canvas.h", "painting/canvas.h",
"painting/gradient.cc", "painting/gradient.cc",
"painting/gradient.h", "painting/gradient.h",
"painting/image.cc",
"painting/image_decoding.cc", "painting/image_decoding.cc",
"painting/image_decoding.h", "painting/image_decoding.h",
"painting/image_filter.cc", "painting/image_filter.cc",
"painting/image_filter.h", "painting/image_filter.h",
"painting/image.h",
"painting/image_shader.cc", "painting/image_shader.cc",
"painting/image_shader.h", "painting/image_shader.h",
"painting/image.cc",
"painting/image.h",
"painting/mask_filter.cc", "painting/mask_filter.cc",
"painting/mask_filter.h", "painting/mask_filter.h",
"painting/matrix.cc", "painting/matrix.cc",
...@@ -41,6 +43,7 @@ source_set("ui") { ...@@ -41,6 +43,7 @@ source_set("ui") {
] ]
deps = [ deps = [
"//dart/runtime/bin:embedded_dart_io",
"//flutter/common", "//flutter/common",
"//flutter/flow", "//flutter/flow",
"//flutter/glue", "//flutter/glue",
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "flutter/sky/engine/bindings/dart_runtime_hooks.h" #include "flutter/lib/ui/dart_runtime_hooks.h"
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
...@@ -11,8 +11,6 @@ ...@@ -11,8 +11,6 @@
#include "dart/runtime/bin/embedded_dart_io.h" #include "dart/runtime/bin/embedded_dart_io.h"
#include "dart/runtime/include/dart_api.h" #include "dart/runtime/include/dart_api.h"
#include "dart/runtime/include/dart_tools_api.h" #include "dart/runtime/include/dart_tools_api.h"
#include "flutter/sky/engine/core/script/ui_dart_state.h"
#include "flutter/sky/engine/wtf/text/WTFString.h"
#include "lib/ftl/logging.h" #include "lib/ftl/logging.h"
#include "lib/tonic/converter/dart_converter.h" #include "lib/tonic/converter/dart_converter.h"
#include "lib/tonic/dart_library_natives.h" #include "lib/tonic/dart_library_natives.h"
...@@ -47,8 +45,7 @@ namespace blink { ...@@ -47,8 +45,7 @@ namespace blink {
// the Mojo embedder dart, such as printing, and file I/O. // the Mojo embedder dart, such as printing, and file I/O.
#define BUILTIN_NATIVE_LIST(V) \ #define BUILTIN_NATIVE_LIST(V) \
V(Logger_PrintString, 1) \ V(Logger_PrintString, 1) \
V(ScheduleMicrotask, 1) \ V(ScheduleMicrotask, 1)
V(GetBaseURLString, 0)
BUILTIN_NATIVE_LIST(DECLARE_FUNCTION); BUILTIN_NATIVE_LIST(DECLARE_FUNCTION);
...@@ -93,7 +90,9 @@ static void InitDartInternal(Dart_Handle builtin_library, ...@@ -93,7 +90,9 @@ static void InitDartInternal(Dart_Handle builtin_library,
} }
} }
static void InitDartCore(Dart_Handle builtin) { static void InitDartCore(Dart_Handle builtin, const std::string& script_uri) {
DART_CHECK_VALID(
Dart_SetField(builtin, ToDart("_baseURL"), ToDart(script_uri)));
Dart_Handle get_base_url = GetClosure(builtin, "_getGetBaseURLClosure"); Dart_Handle get_base_url = GetClosure(builtin, "_getGetBaseURLClosure");
Dart_Handle core_library = Dart_LookupLibrary(ToDart("dart:core")); Dart_Handle core_library = Dart_LookupLibrary(ToDart("dart:core"));
DART_CHECK_VALID( DART_CHECK_VALID(
...@@ -136,7 +135,7 @@ void DartRuntimeHooks::Install(IsolateType isolate_type, ...@@ -136,7 +135,7 @@ void DartRuntimeHooks::Install(IsolateType isolate_type,
Dart_Handle builtin = Dart_LookupLibrary(ToDart("dart:ui")); Dart_Handle builtin = Dart_LookupLibrary(ToDart("dart:ui"));
DART_CHECK_VALID(builtin); DART_CHECK_VALID(builtin);
InitDartInternal(builtin, isolate_type); InitDartInternal(builtin, isolate_type);
InitDartCore(builtin); InitDartCore(builtin, script_uri);
InitDartAsync(builtin, isolate_type); InitDartAsync(builtin, isolate_type);
InitDartIo(script_uri); InitDartIo(script_uri);
} }
...@@ -179,8 +178,4 @@ void ScheduleMicrotask(Dart_NativeArguments args) { ...@@ -179,8 +178,4 @@ void ScheduleMicrotask(Dart_NativeArguments args) {
tonic::DartMicrotaskQueue::ScheduleMicrotask(closure); tonic::DartMicrotaskQueue::ScheduleMicrotask(closure);
} }
void GetBaseURLString(Dart_NativeArguments args) {
Dart_SetReturnValue(args, ToDart(UIDartState::Current()->url()));
}
} // namespace blink } // namespace blink
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef SKY_ENGINE_BINDINGS_DART_RUNTIME_HOOKS_H_ #ifndef FLUTTER_LIB_UI_DART_RUNTIME_HOOKS_H_
#define SKY_ENGINE_BINDINGS_DART_RUNTIME_HOOKS_H_ #define FLUTTER_LIB_UI_DART_RUNTIME_HOOKS_H_
#include "dart/runtime/include/dart_api.h" #include "dart/runtime/include/dart_api.h"
#include "lib/tonic/dart_library_natives.h" #include "lib/tonic/dart_library_natives.h"
...@@ -27,4 +27,4 @@ class DartRuntimeHooks { ...@@ -27,4 +27,4 @@ class DartRuntimeHooks {
} // namespace blink } // namespace blink
#endif // SKY_ENGINE_BINDINGS_DART_RUNTIME_HOOKS_H_ #endif // FLUTTER_LIB_UI_DART_RUNTIME_HOOKS_H_
...@@ -20,8 +20,9 @@ void _setupHooks() { ...@@ -20,8 +20,9 @@ void _setupHooks() {
} }
void _scheduleMicrotask(void callback()) native "ScheduleMicrotask"; void _scheduleMicrotask(void callback()) native "ScheduleMicrotask";
String _getBaseURLString() native "GetBaseURLString";
Uri _getBaseURL() => Uri.parse(_getBaseURLString()); String _baseURL;
Uri _getBaseURL() => Uri.parse(_baseURL);
// Required for gen_snapshot to work correctly. // Required for gen_snapshot to work correctly.
int _isolateId; int _isolateId;
......
...@@ -4,10 +4,6 @@ ...@@ -4,10 +4,6 @@
source_set("bindings") { source_set("bindings") {
sources = [ sources = [
"dart_mojo_internal.cc",
"dart_mojo_internal.h",
"dart_runtime_hooks.cc",
"dart_runtime_hooks.h",
"dart_ui.cc", "dart_ui.cc",
"dart_ui.h", "dart_ui.h",
"flutter_dart_state.cc", "flutter_dart_state.cc",
...@@ -16,14 +12,14 @@ source_set("bindings") { ...@@ -16,14 +12,14 @@ source_set("bindings") {
"mojo_services.h", "mojo_services.h",
] ]
defines = [ "DART_IO_SECURE_SOCKET_DISABLED" ]
deps = [ deps = [
"//base",
"//dart/runtime:libdart", "//dart/runtime:libdart",
"//dart/runtime/bin:embedded_dart_io",
"//flutter/assets", "//flutter/assets",
"//flutter/lib/ui", "//flutter/lib/ui",
"//flutter/services/engine:interfaces",
"//flutter/sky/engine/core:prerequisites",
"//flutter/sky/engine/platform:platform",
"//flutter/sky/engine/wtf",
"//lib/tonic", "//lib/tonic",
"//mojo/public/c/system", "//mojo/public/c/system",
"//mojo/public/cpp/application", "//mojo/public/cpp/application",
...@@ -31,10 +27,6 @@ source_set("bindings") { ...@@ -31,10 +27,6 @@ source_set("bindings") {
"//mojo/public/cpp/system", "//mojo/public/cpp/system",
"//mojo/public/interfaces/application", "//mojo/public/interfaces/application",
"//mojo/public/platform/dart:mojo_internal_impl", "//mojo/public/platform/dart:mojo_internal_impl",
"//flutter/sky/engine/core:prerequisites",
"//flutter/sky/engine/platform:platform",
"//flutter/sky/engine/wtf",
"//flutter/services/engine:interfaces",
] ]
if (is_android) { if (is_android) {
......
...@@ -4,25 +4,25 @@ ...@@ -4,25 +4,25 @@
#include "flutter/sky/engine/bindings/dart_ui.h" #include "flutter/sky/engine/bindings/dart_ui.h"
#include "flutter/lib/ui/compositing/scene.h"
#include "flutter/lib/ui/compositing/scene_builder.h" #include "flutter/lib/ui/compositing/scene_builder.h"
#include "flutter/lib/ui/compositing/scene.h"
#include "flutter/lib/ui/dart_runtime_hooks.h"
#include "flutter/lib/ui/painting/canvas.h" #include "flutter/lib/ui/painting/canvas.h"
#include "flutter/lib/ui/painting/gradient.h" #include "flutter/lib/ui/painting/gradient.h"
#include "flutter/lib/ui/painting/image.h"
#include "flutter/lib/ui/painting/image_decoding.h" #include "flutter/lib/ui/painting/image_decoding.h"
#include "flutter/lib/ui/painting/image_filter.h" #include "flutter/lib/ui/painting/image_filter.h"
#include "flutter/lib/ui/painting/image_shader.h" #include "flutter/lib/ui/painting/image_shader.h"
#include "flutter/lib/ui/painting/image.h"
#include "flutter/lib/ui/painting/mask_filter.h" #include "flutter/lib/ui/painting/mask_filter.h"
#include "flutter/lib/ui/painting/path.h" #include "flutter/lib/ui/painting/path.h"
#include "flutter/lib/ui/painting/picture.h"
#include "flutter/lib/ui/painting/picture_recorder.h" #include "flutter/lib/ui/painting/picture_recorder.h"
#include "lib/tonic/converter/dart_converter.h" #include "flutter/lib/ui/painting/picture.h"
#include "lib/tonic/logging/dart_error.h"
#include "flutter/sky/engine/bindings/dart_runtime_hooks.h"
#include "flutter/sky/engine/bindings/mojo_services.h" #include "flutter/sky/engine/bindings/mojo_services.h"
#include "flutter/sky/engine/core/text/Paragraph.h" #include "flutter/sky/engine/core/text/Paragraph.h"
#include "flutter/sky/engine/core/text/ParagraphBuilder.h" #include "flutter/sky/engine/core/text/ParagraphBuilder.h"
#include "flutter/sky/engine/core/window/window.h" #include "flutter/sky/engine/core/window/window.h"
#include "lib/tonic/converter/dart_converter.h"
#include "lib/tonic/logging/dart_error.h"
using tonic::ToDart; using tonic::ToDart;
......
...@@ -17,9 +17,8 @@ namespace blink { ...@@ -17,9 +17,8 @@ namespace blink {
IsolateClient::~IsolateClient() {} IsolateClient::~IsolateClient() {}
FlutterDartState::FlutterDartState(IsolateClient* isolate_client, FlutterDartState::FlutterDartState(IsolateClient* isolate_client)
const std::string& url) : isolate_client_(isolate_client), main_port_(ILLEGAL_PORT) {
: isolate_client_(isolate_client), url_(url), main_port_(ILLEGAL_PORT) {
#ifdef OS_ANDROID #ifdef OS_ANDROID
jni_data_.reset(new DartJniIsolateData()); jni_data_.reset(new DartJniIsolateData());
#endif #endif
...@@ -34,7 +33,7 @@ FlutterDartState::~FlutterDartState() { ...@@ -34,7 +33,7 @@ FlutterDartState::~FlutterDartState() {
} }
FlutterDartState* FlutterDartState::CreateForChildIsolate() { FlutterDartState* FlutterDartState::CreateForChildIsolate() {
return new FlutterDartState(isolate_client_, url_); return new FlutterDartState(isolate_client_);
} }
FlutterDartState* FlutterDartState::Current() { FlutterDartState* FlutterDartState::Current() {
......
...@@ -33,7 +33,6 @@ class FlutterDartState : public tonic::DartState { ...@@ -33,7 +33,6 @@ class FlutterDartState : public tonic::DartState {
void DidSetIsolate() override; void DidSetIsolate() override;
IsolateClient* isolate_client() { return isolate_client_; } IsolateClient* isolate_client() { return isolate_client_; }
const std::string& url() const { return url_; }
static FlutterDartState* Current(); static FlutterDartState* Current();
...@@ -47,11 +46,10 @@ class FlutterDartState : public tonic::DartState { ...@@ -47,11 +46,10 @@ class FlutterDartState : public tonic::DartState {
#endif #endif
protected: protected:
FlutterDartState(IsolateClient* isolate_client, const std::string& url); FlutterDartState(IsolateClient* isolate_client);
private: private:
IsolateClient* isolate_client_; IsolateClient* isolate_client_;
std::string url_;
Dart_Port main_port_; Dart_Port main_port_;
......
...@@ -14,7 +14,10 @@ source_set("libraries") { ...@@ -14,7 +14,10 @@ source_set("libraries") {
"//flutter/flow", "//flutter/flow",
"//flutter/glue", "//flutter/glue",
"//flutter/lib/io", "//flutter/lib/io",
"//flutter/lib/mojo",
"//flutter/lib/ui", "//flutter/lib/ui",
"//flutter/skia",
"//flutter/sky/engine/wtf",
"//lib/ftl", "//lib/ftl",
"//lib/tonic", "//lib/tonic",
"//lib/tonic/debugger", "//lib/tonic/debugger",
...@@ -26,8 +29,6 @@ source_set("libraries") { ...@@ -26,8 +29,6 @@ source_set("libraries") {
"//mojo/public/cpp/utility", "//mojo/public/cpp/utility",
"//mojo/public/interfaces/application", "//mojo/public/interfaces/application",
"//mojo/public/platform/dart:mojo_internal_impl", "//mojo/public/platform/dart:mojo_internal_impl",
"//flutter/skia",
"//flutter/sky/engine/wtf",
"//third_party/iccjpeg", "//third_party/iccjpeg",
"//third_party/libpng", "//third_party/libpng",
"//third_party/qcms", "//third_party/qcms",
......
...@@ -11,8 +11,8 @@ ...@@ -11,8 +11,8 @@
#include "flutter/common/threads.h" #include "flutter/common/threads.h"
#include "flutter/glue/trace_event.h" #include "flutter/glue/trace_event.h"
#include "flutter/lib/io/dart_io.h" #include "flutter/lib/io/dart_io.h"
#include "flutter/sky/engine/bindings/dart_mojo_internal.h" #include "flutter/lib/mojo/dart_mojo_internal.h"
#include "flutter/sky/engine/bindings/dart_runtime_hooks.h" #include "flutter/lib/ui/dart_runtime_hooks.h"
#include "flutter/sky/engine/bindings/dart_ui.h" #include "flutter/sky/engine/bindings/dart_ui.h"
#include "flutter/sky/engine/core/script/dart_init.h" #include "flutter/sky/engine/core/script/dart_init.h"
#include "flutter/sky/engine/core/script/dart_service_isolate.h" #include "flutter/sky/engine/core/script/dart_service_isolate.h"
...@@ -135,10 +135,11 @@ void DartController::RunFromSource(const std::string& main, ...@@ -135,10 +135,11 @@ void DartController::RunFromSource(const std::string& main,
exit(1); exit(1);
} }
void DartController::CreateIsolateFor(std::unique_ptr<UIDartState> state) { void DartController::CreateIsolateFor(const std::string& script_uri,
std::unique_ptr<UIDartState> state) {
char* error = nullptr; char* error = nullptr;
Dart_Isolate isolate = Dart_CreateIsolate( Dart_Isolate isolate = Dart_CreateIsolate(
state->url().c_str(), "main", script_uri.c_str(), "main",
reinterpret_cast<uint8_t*>(DART_SYMBOL(kDartIsolateSnapshotBuffer)), reinterpret_cast<uint8_t*>(DART_SYMBOL(kDartIsolateSnapshotBuffer)),
nullptr, static_cast<tonic::DartState*>(state.get()), &error); nullptr, static_cast<tonic::DartState*>(state.get()), &error);
FTL_CHECK(isolate) << error; FTL_CHECK(isolate) << error;
...@@ -157,8 +158,7 @@ void DartController::CreateIsolateFor(std::unique_ptr<UIDartState> state) { ...@@ -157,8 +158,7 @@ void DartController::CreateIsolateFor(std::unique_ptr<UIDartState> state) {
DartIO::InitForIsolate(); DartIO::InitForIsolate();
DartUI::InitForIsolate(); DartUI::InitForIsolate();
DartMojoInternal::InitForIsolate(); DartMojoInternal::InitForIsolate();
DartRuntimeHooks::Install(DartRuntimeHooks::MainIsolate, DartRuntimeHooks::Install(DartRuntimeHooks::MainIsolate, script_uri);
ui_dart_state_->url().c_str());
dart_state()->class_library().add_provider( dart_state()->class_library().add_provider(
"ui", "ui",
......
...@@ -25,7 +25,8 @@ class DartController { ...@@ -25,7 +25,8 @@ class DartController {
void RunFromSnapshot(const uint8_t* buffer, size_t size); void RunFromSnapshot(const uint8_t* buffer, size_t size);
void RunFromSource(const std::string& main, const std::string& packages); void RunFromSource(const std::string& main, const std::string& packages);
void CreateIsolateFor(std::unique_ptr<UIDartState> ui_dart_state); void CreateIsolateFor(const std::string& script_uri,
std::unique_ptr<UIDartState> ui_dart_state);
UIDartState* dart_state() const { return ui_dart_state_; } UIDartState* dart_state() const { return ui_dart_state_; }
......
...@@ -18,8 +18,8 @@ ...@@ -18,8 +18,8 @@
#include "flutter/common/settings.h" #include "flutter/common/settings.h"
#include "flutter/glue/trace_event.h" #include "flutter/glue/trace_event.h"
#include "flutter/lib/io/dart_io.h" #include "flutter/lib/io/dart_io.h"
#include "flutter/sky/engine/bindings/dart_mojo_internal.h" #include "flutter/lib/mojo/dart_mojo_internal.h"
#include "flutter/sky/engine/bindings/dart_runtime_hooks.h" #include "flutter/lib/ui/dart_runtime_hooks.h"
#include "flutter/sky/engine/bindings/dart_ui.h" #include "flutter/sky/engine/bindings/dart_ui.h"
#include "flutter/sky/engine/core/script/dart_service_isolate.h" #include "flutter/sky/engine/core/script/dart_service_isolate.h"
#include "flutter/sky/engine/core/script/ui_dart_state.h" #include "flutter/sky/engine/core/script/ui_dart_state.h"
...@@ -190,7 +190,7 @@ Dart_Isolate ServiceIsolateCreateCallback(const char* script_uri, ...@@ -190,7 +190,7 @@ Dart_Isolate ServiceIsolateCreateCallback(const char* script_uri,
DartIO::InitForIsolate(); DartIO::InitForIsolate();
DartUI::InitForIsolate(); DartUI::InitForIsolate();
DartMojoInternal::InitForIsolate(); DartMojoInternal::InitForIsolate();
DartRuntimeHooks::Install(DartRuntimeHooks::SecondaryIsolate, ""); DartRuntimeHooks::Install(DartRuntimeHooks::SecondaryIsolate, script_uri);
const Settings& settings = Settings::Get(); const Settings& settings = Settings::Get();
if (settings.enable_observatory) { if (settings.enable_observatory) {
std::string ip = "127.0.0.1"; std::string ip = "127.0.0.1";
......
...@@ -10,9 +10,8 @@ ...@@ -10,9 +10,8 @@
namespace blink { namespace blink {
UIDartState::UIDartState(IsolateClient* isolate_client, UIDartState::UIDartState(IsolateClient* isolate_client,
const std::string& url,
std::unique_ptr<Window> window) std::unique_ptr<Window> window)
: FlutterDartState(isolate_client, url), window_(std::move(window)) {} : FlutterDartState(isolate_client), window_(std::move(window)) {}
UIDartState::~UIDartState() {} UIDartState::~UIDartState() {}
......
...@@ -14,8 +14,7 @@ class Window; ...@@ -14,8 +14,7 @@ class Window;
class UIDartState : public FlutterDartState { class UIDartState : public FlutterDartState {
public: public:
UIDartState(IsolateClient* isolate_client, const std::string& url, UIDartState(IsolateClient* isolate_client, std::unique_ptr<Window> window);
std::unique_ptr<Window> window);
~UIDartState() override; ~UIDartState() override;
Window* window() const { return window_.get(); } Window* window() const { return window_.get(); }
......
...@@ -55,8 +55,9 @@ void SkyView::CreateView(const std::string& script_uri) { ...@@ -55,8 +55,9 @@ void SkyView::CreateView(const std::string& script_uri) {
DCHECK(!dart_controller_); DCHECK(!dart_controller_);
dart_controller_ = WTF::MakeUnique<DartController>(); dart_controller_ = WTF::MakeUnique<DartController>();
dart_controller_->CreateIsolateFor(WTF::MakeUnique<UIDartState>( dart_controller_->CreateIsolateFor(
this, script_uri, WTF::MakeUnique<Window>(this))); script_uri,
WTF::MakeUnique<UIDartState>(this, WTF::MakeUnique<Window>(this)));
UIDartState* dart_state = dart_controller_->dart_state(); UIDartState* dart_state = dart_controller_->dart_state();
DartState::Scope scope(dart_state); DartState::Scope scope(dart_state);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册