提交 9dae74e9 编写于 作者: A Adam Barth

Remove dart:ui_internals

This patch merges these functions into dart:ui, which is simpler.

Fixes #83
上级 7cb02350
......@@ -90,10 +90,6 @@ SnapshotProject() {
local mojo_internal_path="$(readlink ${packages}/mojo)/../sdk_ext/internal.dart"
AssertExists $mojo_internal_path
# For dart:ui_internals
local ui_internals_path="$(readlink ${packages}/sky_engine)/../sdk_ext/bindings/internals.dart"
AssertExists $ui_internals_path
# For dart:ui
local ui_path="$(readlink ${packages}/sky_engine)/../sdk_ext/dart_ui.dart"
AssertExists $ui_path
......@@ -132,7 +128,6 @@ SnapshotProject() {
--package_root=${packages} \
--url_mapping=dart:mojo.internal,${mojo_internal_path} \
--url_mapping=dart:ui,${ui_path} \
--url_mapping=dart:ui_internals,${ui_internals_path} \
--url_mapping=dart:vmservice_sky,$vm_service_path \
$main_path
......
......@@ -16,25 +16,33 @@ source_set("bindings") {
"dart_ui.h",
"exception_messages.cc",
"exception_messages.h",
"exception_state_placeholder.cc",
"exception_state_placeholder.h",
"exception_state.cc",
"exception_state.h",
"exception_state_placeholder.cc",
"exception_state_placeholder.h",
"mojo_services.cc",
"mojo_services.h",
]
defines = [ "DART_IO_SECURE_SOCKET_DISABLED" ]
deps = [
"//base",
"//dart/runtime:libdart",
"//dart/runtime/bin:embedded_dart_io",
"//dart/runtime:libdart",
"//mojo/public/c/system",
"//mojo/public/cpp/application",
"//mojo/public/cpp/bindings",
"//mojo/public/cpp/system",
"//mojo/public/interfaces/application",
"//mojo/public/platform/dart:mojo_internal_impl",
"//mojo/services/asset_bundle/interfaces",
"//services/asset_bundle:lib",
"//sky/engine/core:prerequisites",
"//sky/engine/platform:platform",
"//sky/engine/tonic",
"//sky/engine/wtf",
"//sky/services/engine:interfaces",
]
# On iOS (device), precompiled snapshots contain the instruction buffer.
......@@ -61,7 +69,6 @@ action("generate_snapshot_bin") {
]
inputs = [
"//dart/runtime/tools/create_snapshot_bin.py",
"//sky/engine/bindings/internals.dart",
"//sky/engine/bindings/jni/jni.dart",
"//sky/engine/bindings/jni/jni_raw.dart",
"//sky/engine/bindings/jni/jni_helper.dart",
......@@ -78,8 +85,6 @@ action("generate_snapshot_bin") {
dart_mojo_internal_path =
rebase_path("//mojo/dart/packages/mojo/sdk_ext/internal.dart")
dart_ui_internals_path =
rebase_path("//sky/engine/bindings/internals.dart")
dart_ui_path = rebase_path("$bindings_output_dir/dart_ui.dart")
dart_jni_path = rebase_path("//sky/engine/bindings/jni/jni.dart")
......@@ -103,7 +108,6 @@ action("generate_snapshot_bin") {
target_os,
"--url_mapping=dart:mojo.internal,$dart_mojo_internal_path",
"--url_mapping=dart:ui,$dart_ui_path",
"--url_mapping=dart:ui_internals,$dart_ui_internals_path",
"--url_mapping=dart:jni,$dart_jni_path",
]
}
......
......@@ -56,8 +56,6 @@ template("dart_precompile") {
dart_mojo_internal_path =
rebase_path("//mojo/dart/packages/mojo/sdk_ext/internal.dart")
dart_ui_internals_path =
rebase_path("//sky/engine/bindings/internals.dart")
dart_ui_path =
rebase_path("$root_build_dir/gen/sky/bindings/dart_ui.dart")
service_path =
......@@ -87,7 +85,6 @@ template("dart_precompile") {
target_os,
"--url_mapping=dart:mojo.internal,$dart_mojo_internal_path",
"--url_mapping=dart:ui,$dart_ui_path",
"--url_mapping=dart:ui_internals,$dart_ui_internals_path",
"--url_mapping=dart:vmservice_sky,$service_path",
]
}
......
......@@ -5,6 +5,7 @@
#include "sky/engine/bindings/dart_ui.h"
#include "sky/engine/bindings/dart_runtime_hooks.h"
#include "sky/engine/bindings/mojo_services.h"
#include "sky/engine/core/compositing/Scene.h"
#include "sky/engine/core/compositing/SceneBuilder.h"
#include "sky/engine/core/painting/Canvas.h"
......@@ -55,6 +56,7 @@ void DartUI::InitForGlobal() {
ImageShader::RegisterNatives(g_natives);
LayerDrawLooperBuilder::RegisterNatives(g_natives);
MaskFilter::RegisterNatives(g_natives);
MojoServices::RegisterNatives(g_natives);
Painting::RegisterNatives(g_natives);
Paragraph::RegisterNatives(g_natives);
ParagraphBuilder::RegisterNatives(g_natives);
......
......@@ -25,6 +25,7 @@ part 'compositing.dart';
part 'hash_codes.dart';
part 'hooks.dart';
part 'lerp.dart';
part 'mojo_services.dart';
part 'natives.dart';
part 'painting.dart';
part 'text.dart';
......
dart:io,::,_setupHooks
dart:isolate,::,_startMainIsolate
dart:mojo.internal,MojoHandleWatcher,mojoControlHandle
dart:io,::,_setupHooks
dart:ui,::,_beginFrame
dart:ui,::,_dispatchPointerPacket
dart:ui,::,_getCreateTimerClosure
......@@ -13,6 +13,11 @@ dart:ui,::,_popRoute
dart:ui,::,_pushRoute
dart:ui,::,_updateLocale
dart:ui,::,_updateWindowMetrics
dart:ui,::,takeRootBundleHandle
dart:ui,::,takeServiceRegistry
dart:ui,::,takeServicesProvidedByEmbedder
dart:ui,::,takeServicesProvidedToEmbedder
dart:ui,::,takeShellProxyHandle
dart:ui,Canvas,Canvas.
dart:ui,DrawLooper,DrawLooper.
dart:ui,DrawLooperLayerInfo,DrawLooperLayerInfo.
......@@ -29,9 +34,4 @@ dart:ui,Scene,Scene.
dart:ui,SceneBuilder,SceneBuilder.
dart:ui,Shader,Shader.
dart:ui,TextBox,TextBox._
dart:ui_internals,::,takeRootBundleHandle
dart:ui_internals,::,takeServiceRegistry
dart:ui_internals,::,takeServicesProvidedByEmbedder
dart:ui_internals,::,takeServicesProvidedToEmbedder
dart:ui_internals,::,takeShellProxyHandle
dart:vmservice_sky,::,main
// Copyright 2014 The Chromium Authors. All rights reserved.
// 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.
#include "sky/shell/ui/internals.h"
#include "sky/engine/bindings/mojo_services.h"
#include "base/threading/worker_pool.h"
#include "mojo/public/cpp/application/connect.h"
......@@ -13,93 +13,69 @@
#include "sky/engine/tonic/dart_library_natives.h"
#include "sky/engine/tonic/dart_state.h"
using namespace blink;
namespace sky {
namespace shell {
namespace blink {
namespace {
int kInternalsKey = 0;
int kMojoServicesKey = 0;
Internals* GetInternals() {
MojoServices* GetMojoServices() {
DartState* state = DartState::Current();
return static_cast<Internals*>(state->GetUserData(&kInternalsKey));
return static_cast<MojoServices*>(state->GetUserData(&kMojoServicesKey));
}
void TakeRootBundleHandle(Dart_NativeArguments args) {
void DartTakeRootBundleHandle(Dart_NativeArguments args) {
Dart_SetIntegerReturnValue(
args, GetInternals()->TakeRootBundleHandle().value());
args, GetMojoServices()->TakeRootBundleHandle().value());
}
void TakeShellProxyHandle(Dart_NativeArguments args) {
void DartTakeShellProxyHandle(Dart_NativeArguments args) {
Dart_SetIntegerReturnValue(
args, GetInternals()->TakeShellProxy().value());
args, GetMojoServices()->TakeShellProxy().value());
}
void TakeServiceRegistry(Dart_NativeArguments args) {
void DartTakeServiceRegistry(Dart_NativeArguments args) {
Dart_SetIntegerReturnValue(
args, GetInternals()->TakeServiceRegistry().value());
args, GetMojoServices()->TakeServiceRegistry().value());
}
void TakeServicesProvidedByEmbedder(Dart_NativeArguments args) {
void DartTakeServicesProvidedByEmbedder(Dart_NativeArguments args) {
Dart_SetIntegerReturnValue(
args, GetInternals()->TakeServicesProvidedByEmbedder().value());
args, GetMojoServices()->TakeServicesProvidedByEmbedder().value());
}
void TakeServicesProvidedToEmbedder(Dart_NativeArguments args) {
void DartTakeServicesProvidedToEmbedder(Dart_NativeArguments args) {
Dart_SetIntegerReturnValue(
args, GetInternals()->TakeServicesProvidedToEmbedder().value());
args, GetMojoServices()->TakeServicesProvidedToEmbedder().value());
}
void TakeViewHostHandle(Dart_NativeArguments args) {
void DartTakeViewHostHandle(Dart_NativeArguments args) {
Dart_SetIntegerReturnValue(
args, GetInternals()->TakeViewHostHandle().value());
}
static DartLibraryNatives* g_natives;
void EnsureNatives() {
if (g_natives)
return;
g_natives = new DartLibraryNatives();
g_natives->Register({
{"takeRootBundleHandle", TakeRootBundleHandle, 0, true},
{"takeServiceRegistry", TakeServiceRegistry, 0, true},
{"takeServicesProvidedByEmbedder", TakeServicesProvidedByEmbedder, 0, true},
{"takeServicesProvidedToEmbedder", TakeServicesProvidedToEmbedder, 0, true},
{"takeShellProxyHandle", TakeShellProxyHandle, 0, true},
{"takeViewHostHandle", TakeViewHostHandle, 0, true},
});
}
Dart_NativeFunction GetNativeFunction(Dart_Handle name,
int argument_count,
bool* auto_setup_scope) {
return g_natives->GetNativeFunction(name, argument_count, auto_setup_scope);
}
const uint8_t* GetSymbol(Dart_NativeFunction native_function) {
return g_natives->GetSymbol(native_function);
args, GetMojoServices()->TakeViewHostHandle().value());
}
} // namespace
void Internals::Create(Dart_Isolate isolate,
ServicesDataPtr services,
mojo::asset_bundle::AssetBundlePtr root_bundle) {
EnsureNatives();
void MojoServices::RegisterNatives(DartLibraryNatives* natives) {
natives->Register({
{"takeRootBundleHandle", DartTakeRootBundleHandle, 0, true},
{"takeServiceRegistry", DartTakeServiceRegistry, 0, true},
{"takeServicesProvidedByEmbedder", DartTakeServicesProvidedByEmbedder, 0, true},
{"takeServicesProvidedToEmbedder", DartTakeServicesProvidedToEmbedder, 0, true},
{"takeShellProxyHandle", DartTakeShellProxyHandle, 0, true},
{"takeViewHostHandle", DartTakeViewHostHandle, 0, true},
});
}
void MojoServices::Create(Dart_Isolate isolate,
sky::ServicesDataPtr services,
mojo::asset_bundle::AssetBundlePtr root_bundle) {
DartState* state = DartState::From(isolate);
state->SetUserData(&kInternalsKey, new Internals(services.Pass(),
root_bundle.Pass()));
Dart_Handle library = Dart_LookupLibrary(ToDart("dart:ui_internals"));
CHECK(!LogIfError(library));
CHECK(!LogIfError(Dart_SetNativeResolver(
library, GetNativeFunction, GetSymbol)));
state->SetUserData(&kMojoServicesKey, new MojoServices(
services.Pass(), root_bundle.Pass()));
}
Internals::Internals(ServicesDataPtr services,
mojo::asset_bundle::AssetBundlePtr root_bundle)
MojoServices::MojoServices(sky::ServicesDataPtr services,
mojo::asset_bundle::AssetBundlePtr root_bundle)
: services_(services.Pass()),
root_bundle_(root_bundle.Pass()),
service_provider_impl_(GetProxy(&service_provider_)) {
......@@ -115,39 +91,38 @@ Internals::Internals(ServicesDataPtr services,
}
}
Internals::~Internals() {
MojoServices::~MojoServices() {
}
void Internals::Create(
void MojoServices::Create(
mojo::ApplicationConnection* connection,
mojo::InterfaceRequest<mojo::asset_bundle::AssetUnpacker> request) {
new mojo::asset_bundle::AssetUnpackerImpl(
request.Pass(), base::WorkerPool::GetTaskRunner(true));
}
mojo::Handle Internals::TakeShellProxy() {
mojo::Handle MojoServices::TakeShellProxy() {
return services_ ? services_->shell.PassInterface().PassHandle().release() : mojo::Handle();
}
mojo::Handle Internals::TakeServiceRegistry() {
mojo::Handle MojoServices::TakeServiceRegistry() {
return services_ ? services_->service_registry.PassInterface().PassHandle().release() : mojo::Handle();
}
mojo::Handle Internals::TakeServicesProvidedByEmbedder() {
mojo::Handle MojoServices::TakeServicesProvidedByEmbedder() {
return service_provider_.PassInterface().PassHandle().release();
}
mojo::Handle Internals::TakeRootBundleHandle() {
mojo::Handle MojoServices::TakeRootBundleHandle() {
return root_bundle_.PassInterface().PassHandle().release();
}
mojo::Handle Internals::TakeServicesProvidedToEmbedder() {
mojo::Handle MojoServices::TakeServicesProvidedToEmbedder() {
return services_provided_to_embedder_.PassMessagePipe().release();
}
mojo::Handle Internals::TakeViewHostHandle() {
mojo::Handle MojoServices::TakeViewHostHandle() {
return services_ ? services_->view_host.PassInterface().PassHandle().release() : mojo::Handle();
}
} // namespace shell
} // namespace sky
} // namespace blink
// Copyright 2014 The Chromium Authors. All rights reserved.
// 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.
#ifndef SKY_SHELL_UI_INTERNALS_H_
#define SKY_SHELL_UI_INTERNALS_H_
#ifndef SKY_ENGINE_BINDINGS_MOJO_SERVICES_H_
#define SKY_ENGINE_BINDINGS_MOJO_SERVICES_H_
#include "base/supports_user_data.h"
#include "dart/runtime/include/dart_api.h"
......@@ -17,19 +17,21 @@ namespace mojo {
class ApplicationConnection;
}
namespace sky {
namespace shell {
namespace blink {
class DartLibraryNatives;
class Internals
class MojoServices
: public base::SupportsUserData::Data,
public mojo::InterfaceFactory<mojo::asset_bundle::AssetUnpacker> {
public:
~Internals() override;
~MojoServices() override;
static void Create(Dart_Isolate isolate,
ServicesDataPtr services,
sky::ServicesDataPtr services,
mojo::asset_bundle::AssetBundlePtr root_bundle);
static void RegisterNatives(DartLibraryNatives* natives);
mojo::Handle TakeShellProxy();
mojo::Handle TakeServiceRegistry();
mojo::Handle TakeServicesProvidedByEmbedder();
......@@ -38,15 +40,15 @@ class Internals
mojo::Handle TakeViewHostHandle();
private:
explicit Internals(ServicesDataPtr services,
mojo::asset_bundle::AssetBundlePtr root_bundle);
explicit MojoServices(sky::ServicesDataPtr services,
mojo::asset_bundle::AssetBundlePtr root_bundle);
// |mojo::InterfaceFactory<mojo::asset_bundle::AssetUnpacker>| implementation:
void Create(
mojo::ApplicationConnection* connection,
mojo::InterfaceRequest<mojo::asset_bundle::AssetUnpacker>) override;
ServicesDataPtr services_;
sky::ServicesDataPtr services_;
mojo::asset_bundle::AssetBundlePtr root_bundle_;
mojo::ServiceProviderPtr service_provider_;
......@@ -61,10 +63,9 @@ class Internals
mojo::InterfaceRequest<mojo::ServiceProvider>
services_provided_to_embedder_;
MOJO_DISALLOW_COPY_AND_ASSIGN(Internals);
MOJO_DISALLOW_COPY_AND_ASSIGN(MojoServices);
};
} // namespace shell
} // namespace sky
} // namespace blink
#endif // SKY_SHELL_UI_INTERNALS_H_
#endif // SKY_ENGINE_BINDINGS_MOJO_SERVICES_H_
......@@ -12,5 +12,4 @@ import 'dart:jni';
import 'dart:math';
import 'dart:mojo.internal';
import 'dart:ui';
import 'dart:ui_internals';
import 'dart:typed_data';
......@@ -227,6 +227,7 @@ core_dart_files = get_path_info([
"dart/hash_codes.dart",
"dart/hooks.dart",
"dart/lerp.dart",
"dart/mojo_services.dart",
"dart/natives.dart",
"dart/painting.dart",
"dart/text.dart",
......
// Copyright 2015 The Chromium Authors. All rights reserved.
// 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.
library dart_ui_internals;
// TODO(abarth): Move these functions into dart:ui
part of dart_ui;
int takeRootBundleHandle() native "takeRootBundleHandle";
int takeServiceRegistry() native "takeServiceRegistry";
......
......@@ -36,6 +36,5 @@ dart_pkg("sky_engine") {
]
sdk_ext_mappings = [
"dart:ui,dart_ui.dart",
"dart:ui_internals,bindings/internals.dart",
]
}
......@@ -24,8 +24,6 @@ source_set("common") {
"ui/animator.h",
"ui/engine.cc",
"ui/engine.h",
"ui/internals.cc",
"ui/internals.h",
"ui/platform_impl.cc",
"ui/platform_impl.h",
"ui_delegate.cc",
......@@ -50,6 +48,7 @@ source_set("common") {
"//services/asset_bundle:lib",
"//skia",
"//sky/engine",
"//sky/engine/bindings",
"//sky/engine/tonic",
"//sky/engine/wtf",
"//sky/services/editing:interfaces",
......
......@@ -12,13 +12,13 @@
#include "mojo/data_pipe_utils/data_pipe_utils.h"
#include "mojo/public/cpp/application/connect.h"
#include "services/asset_bundle/zip_asset_bundle.h"
#include "sky/engine/bindings/mojo_services.h"
#include "sky/engine/public/platform/sky_display_metrics.h"
#include "sky/engine/public/platform/WebInputEvent.h"
#include "sky/engine/public/web/Sky.h"
#include "sky/shell/dart/dart_library_provider_files.h"
#include "sky/shell/shell.h"
#include "sky/shell/ui/animator.h"
#include "sky/shell/ui/internals.h"
#include "sky/shell/ui/platform_impl.h"
#include "third_party/skia/include/core/SkCanvas.h"
#include "third_party/skia/include/core/SkPictureRecorder.h"
......@@ -269,7 +269,7 @@ void Engine::OnAppLifecycleStateChanged(sky::AppLifecycleState state) {
}
void Engine::DidCreateIsolate(Dart_Isolate isolate) {
Internals::Create(isolate, services_.Pass(), root_bundle_.Pass());
blink::MojoServices::Create(isolate, services_.Pass(), root_bundle_.Pass());
}
void Engine::StopAnimator() {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册