Merge pull request #1587 from abarth/rm_builtin_natives

Remove dart:ui_builtin_natives
This commit is contained in:
Adam Barth 2015-10-12 16:35:20 -07:00
commit 019f6d4821
17 changed files with 106 additions and 100 deletions

View File

@ -9,10 +9,10 @@ source_set("bindings") {
sources = [
"builtin.cc",
"builtin.h",
"builtin_natives.cc",
"builtin_natives.h",
"builtin_sky.cc",
"builtin_sky.h",
"dart_natives.cc",
"dart_natives.h",
"dart_ui.cc",
"dart_ui.h",
"dart_callback.cc",
"dart_callback.h",
"exception_messages.cc",
@ -62,7 +62,6 @@ action("generate_snapshot_bin") {
"//mojo/public/dart/mojo/sdk_ext/src/handle_watcher.dart",
"//mojo/public/dart/mojo/sdk_ext/src/natives.dart",
"//mojo/public/dart/mojo/sdk_ext/src/timer_queue.dart",
"//sky/engine/bindings/builtin_natives.dart",
"//sky/engine/bindings/internals.dart",
"snapshot.dart",
]
@ -75,8 +74,6 @@ action("generate_snapshot_bin") {
dart_mojo_internal_path =
rebase_path("//mojo/public/dart/mojo/sdk_ext/internal.dart")
dart_ui_builtin_natives_path =
rebase_path("//sky/engine/bindings/builtin_natives.dart")
dart_ui_internals_path =
rebase_path("//sky/engine/bindings/internals.dart")
dart_ui_path = rebase_path("$bindings_output_dir/dart_ui.dart")
@ -102,7 +99,6 @@ action("generate_snapshot_bin") {
"--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:ui_builtin_natives,$dart_ui_builtin_natives_path",
]
}

View File

@ -7,9 +7,8 @@
#include "base/logging.h"
#include "bin/io_natives.h"
#include "dart/runtime/include/dart_api.h"
#include "gen/sky/bindings/DartGlobal.h"
#include "sky/engine/bindings/builtin_natives.h"
#include "sky/engine/bindings/builtin_sky.h"
#include "sky/engine/bindings/dart_natives.h"
#include "sky/engine/bindings/dart_ui.h"
#include "sky/engine/bindings/mojo_natives.h"
#include "sky/engine/tonic/dart_builtin.h"
@ -25,11 +24,7 @@ struct LibraryDescriptor {
const LibraryDescriptor kBuiltinLibraries[] = {
/* { url_, has_natives_, native_symbol_, native_resolver_ } */
{"dart:ui_builtin_natives",
true,
BuiltinNatives::NativeSymbol,
BuiltinNatives::NativeLookup},
{"dart:ui", true, skySnapshotSymbolizer, skySnapshotResolver},
{"dart:ui", true, DartUI::NativeSymbol, DartUI::NativeLookup},
{"dart:mojo.internal", true, MojoNativeSymbol, MojoNativeLookup},
{"dart:io", true, dart::bin::IONativeSymbol, dart::bin::IONativeLookup },
};
@ -39,7 +34,7 @@ const LibraryDescriptor kBuiltinLibraries[] = {
void Builtin::SetNativeResolver(BuiltinLibraryId id) {
static_assert(arraysize(kBuiltinLibraries) == kInvalidLibrary,
"Unexpected number of builtin libraries");
DCHECK_GE(id, kBuiltinLibrary);
DCHECK_GE(id, kUILibrary);
DCHECK_LT(id, kInvalidLibrary);
if (kBuiltinLibraries[id].has_natives) {
Dart_Handle library = DartBuiltin::LookupLibrary(kBuiltinLibraries[id].url);
@ -54,7 +49,7 @@ void Builtin::SetNativeResolver(BuiltinLibraryId id) {
Dart_Handle Builtin::LoadAndCheckLibrary(BuiltinLibraryId id) {
static_assert(arraysize(kBuiltinLibraries) == kInvalidLibrary,
"Unexpected number of builtin libraries");
DCHECK_GE(id, kBuiltinLibrary);
DCHECK_GE(id, kUILibrary);
DCHECK_LT(id, kInvalidLibrary);
Dart_Handle library = DartBuiltin::LookupLibrary(kBuiltinLibraries[id].url);
DART_CHECK_VALID(library);

View File

@ -15,8 +15,7 @@ class Builtin {
// Note: Changes to this enum should be accompanied with changes to
// the builtin_libraries_ array in builtin.cc.
enum BuiltinLibraryId {
kBuiltinLibrary,
kSkyLibrary,
kUILibrary,
kMojoInternalLibrary,
kIOLibrary,
kInvalidLibrary,

View File

@ -1,35 +0,0 @@
// Copyright 2014 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/engine/bindings/builtin_sky.h"
#include "sky/engine/bindings/builtin.h"
#include "sky/engine/core/frame/LocalDOMWindow.h"
#include "sky/engine/core/script/dom_dart_state.h"
#include "sky/engine/core/view/View.h"
#include "sky/engine/tonic/dart_error.h"
namespace blink {
BuiltinSky::BuiltinSky(DOMDartState* dart_state) {
Builtin::SetNativeResolver(Builtin::kSkyLibrary);
library_.Set(dart_state, Builtin::LoadAndCheckLibrary(Builtin::kSkyLibrary));
}
BuiltinSky::~BuiltinSky() {
}
void BuiltinSky::InstallView(View* view) {
CHECK(!LogIfError(
Dart_SetField(library_.value(), ToDart("view"), ToDart(view))));
}
Dart_Handle BuiltinSky::GetClassByName(const char* class_name) {
Dart_Handle name_handle = ToDart(class_name);
Dart_Handle class_handle = Dart_GetType(library_.value(), name_handle, 0, nullptr);
DCHECK(!Dart_IsError(class_handle)) << class_name;
return class_handle;
}
} // namespace blink

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "sky/engine/bindings/builtin_natives.h"
#include "sky/engine/bindings/dart_natives.h"
#include <stdio.h>
#include <stdlib.h>
@ -61,7 +61,7 @@ static struct NativeEntries {
int argument_count;
} BuiltinEntries[] = {BUILTIN_NATIVE_LIST(REGISTER_FUNCTION)};
Dart_NativeFunction BuiltinNatives::NativeLookup(Dart_Handle name,
Dart_NativeFunction DartNatives::NativeLookup(Dart_Handle name,
int argument_count,
bool* auto_setup_scope) {
const char* function_name = nullptr;
@ -81,7 +81,7 @@ Dart_NativeFunction BuiltinNatives::NativeLookup(Dart_Handle name,
return nullptr;
}
const uint8_t* BuiltinNatives::NativeSymbol(Dart_NativeFunction native_function) {
const uint8_t* DartNatives::NativeSymbol(Dart_NativeFunction native_function) {
size_t num_entries = arraysize(BuiltinEntries);
for (size_t i = 0; i < num_entries; i++) {
const struct NativeEntries& entry = BuiltinEntries[i];
@ -100,7 +100,7 @@ static Dart_Handle GetClosure(Dart_Handle builtin_library, const char* name) {
}
static void InitDartInternal(Dart_Handle builtin_library,
BuiltinNatives::IsolateType isolate_type) {
DartNatives::IsolateType isolate_type) {
Dart_Handle print = GetClosure(builtin_library, "_getPrintClosure");
Dart_Handle timer = GetClosure(builtin_library, "_getCreateTimerClosure");
@ -109,14 +109,14 @@ static void InitDartInternal(Dart_Handle builtin_library,
DART_CHECK_VALID(Dart_SetField(
internal_library, ToDart("_printClosure"), print));
if (isolate_type == BuiltinNatives::MainIsolate) {
if (isolate_type == DartNatives::MainIsolate) {
Dart_Handle vm_hooks_name = ToDart("VMLibraryHooks");
Dart_Handle vm_hooks = Dart_GetClass(internal_library, vm_hooks_name);
DART_CHECK_VALID(vm_hooks);
Dart_Handle timer_name = ToDart("timerFactory");
DART_CHECK_VALID(Dart_SetField(vm_hooks, timer_name, timer));
} else {
CHECK(isolate_type == BuiltinNatives::DartIOIsolate);
CHECK(isolate_type == DartNatives::DartIOIsolate);
Dart_Handle io_lib = DartBuiltin::LookupLibrary("dart:io");
Dart_Handle setup_hooks = Dart_NewStringFromCString("_setupHooks");
DART_CHECK_VALID(Dart_Invoke(io_lib, setup_hooks, 0, NULL));
@ -126,7 +126,7 @@ static void InitDartInternal(Dart_Handle builtin_library,
}
static void InitDartCore(Dart_Handle builtin,
BuiltinNatives::IsolateType isolate_type) {
DartNatives::IsolateType isolate_type) {
Dart_Handle get_base_url = GetClosure(builtin, "_getGetBaseURLClosure");
Dart_Handle core_library = DartBuiltin::LookupLibrary("dart:core");
DART_CHECK_VALID(Dart_SetField(core_library,
@ -134,13 +134,13 @@ static void InitDartCore(Dart_Handle builtin,
}
static void InitDartAsync(Dart_Handle builtin_library,
BuiltinNatives::IsolateType isolate_type) {
DartNatives::IsolateType isolate_type) {
Dart_Handle schedule_microtask;
if (isolate_type == BuiltinNatives::MainIsolate) {
if (isolate_type == DartNatives::MainIsolate) {
schedule_microtask =
GetClosure(builtin_library, "_getScheduleMicrotaskClosure");
} else {
CHECK(isolate_type == BuiltinNatives::DartIOIsolate);
CHECK(isolate_type == DartNatives::DartIOIsolate);
Dart_Handle isolate_lib = DartBuiltin::LookupLibrary("dart:isolate");
Dart_Handle method_name =
Dart_NewStringFromCString("_getIsolateScheduleImmediateClosure");
@ -152,8 +152,8 @@ static void InitDartAsync(Dart_Handle builtin_library,
&schedule_microtask));
}
void BuiltinNatives::Init(IsolateType isolate_type) {
Dart_Handle builtin = Builtin::LoadAndCheckLibrary(Builtin::kBuiltinLibrary);
void DartNatives::Init(IsolateType isolate_type) {
Dart_Handle builtin = Builtin::LoadAndCheckLibrary(Builtin::kUILibrary);
DART_CHECK_VALID(builtin);
InitDartInternal(builtin, isolate_type);
InitDartCore(builtin, isolate_type);

View File

@ -2,15 +2,15 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef SKY_ENGINE_BINDINGS_BUILTIN_NATIVES_H_
#define SKY_ENGINE_BINDINGS_BUILTIN_NATIVES_H_
#ifndef SKY_ENGINE_BINDINGS_DART_NATIVES_H_
#define SKY_ENGINE_BINDINGS_DART_NATIVES_H_
#include "base/macros.h"
#include "dart/runtime/include/dart_api.h"
namespace blink {
class BuiltinNatives {
class DartNatives {
public:
enum IsolateType {
MainIsolate,
@ -25,9 +25,9 @@ class BuiltinNatives {
static void Init(IsolateType isolate_type);
private:
DISALLOW_IMPLICIT_CONSTRUCTORS(BuiltinNatives);
DISALLOW_IMPLICIT_CONSTRUCTORS(DartNatives);
};
} // namespace blink
#endif // SKY_ENGINE_BINDINGS_BUILTIN_NATIVES_H_
#endif // SKY_ENGINE_BINDINGS_DART_NATIVES_H_

View File

@ -0,0 +1,50 @@
// Copyright 2014 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/engine/bindings/dart_ui.h"
#include "gen/sky/bindings/DartGlobal.h"
#include "sky/engine/bindings/builtin.h"
#include "sky/engine/bindings/dart_natives.h"
#include "sky/engine/core/frame/LocalDOMWindow.h"
#include "sky/engine/core/script/dom_dart_state.h"
#include "sky/engine/core/view/View.h"
#include "sky/engine/tonic/dart_error.h"
namespace blink {
DartUI::DartUI(DOMDartState* dart_state) {
library_.Set(dart_state, Builtin::LoadAndCheckLibrary(Builtin::kUILibrary));
}
DartUI::~DartUI() {
}
Dart_NativeFunction DartUI::NativeLookup(Dart_Handle name,
int argument_count,
bool* auto_setup_scope) {
if (auto result = DartNatives::NativeLookup(name, argument_count, auto_setup_scope))
return result;
return skySnapshotResolver(name, argument_count, auto_setup_scope);
}
const uint8_t* DartUI::NativeSymbol(Dart_NativeFunction native_function) {
if (auto result = DartNatives::NativeSymbol(native_function))
return result;
return skySnapshotSymbolizer(native_function);
}
void DartUI::InstallView(View* view) {
CHECK(!LogIfError(
Dart_SetField(library_.value(), ToDart("view"), ToDart(view))));
}
Dart_Handle DartUI::GetClassByName(const char* class_name) {
Dart_Handle name_handle = ToDart(class_name);
Dart_Handle class_handle = Dart_GetType(library_.value(), name_handle, 0, nullptr);
DCHECK(!Dart_IsError(class_handle)) << class_name;
return class_handle;
}
} // namespace blink

View File

@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef SKY_ENGINE_BINDINGS_BUILTIN_SKY_H_
#define SKY_ENGINE_BINDINGS_BUILTIN_SKY_H_
#ifndef SKY_ENGINE_BINDINGS_DART_UI_H_
#define SKY_ENGINE_BINDINGS_DART_UI_H_
#include "base/macros.h"
#include "dart/runtime/include/dart_api.h"
@ -14,10 +14,15 @@ namespace blink {
class DOMDartState;
class View;
class BuiltinSky : public DartClassProvider {
class DartUI : public DartClassProvider {
public:
explicit BuiltinSky(DOMDartState* dart_state);
~BuiltinSky();
explicit DartUI(DOMDartState* dart_state);
~DartUI();
static Dart_NativeFunction NativeLookup(Dart_Handle name,
int argument_count,
bool* auto_setup_scope);
static const uint8_t* NativeSymbol(Dart_NativeFunction native_function);
void InstallView(View* view);
@ -27,9 +32,9 @@ class BuiltinSky : public DartClassProvider {
private:
DartPersistentValue library_;
DISALLOW_COPY_AND_ASSIGN(BuiltinSky);
DISALLOW_COPY_AND_ASSIGN(DartUI);
};
} // namespace blink
#endif // SKY_ENGINE_BINDINGS_BUILTIN_SKY_H_
#endif // SKY_ENGINE_BINDINGS_DART_UI_H_

View File

@ -6,6 +6,7 @@
// WARNING: Do not edit - generated code.
library dart_ui;
import 'dart:async';
import 'dart:nativewrappers';
import 'dart:typed_data';
import 'dart:math' as math;

View File

@ -13,5 +13,4 @@ import 'dart:mojo.internal';
import 'dart:mirrors';
import 'dart:ui';
import 'dart:ui_internals';
import 'dart:ui_builtin_natives';
import 'dart:typed_data';

View File

@ -676,6 +676,7 @@ core_idl_files = get_path_info([
core_dart_files = get_path_info([
"dart/hooks.dart",
"dart/natives.dart",
"dart/lerp.dart",
"dart/view.dart",
"dart/window.dart",

View File

@ -2,9 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
library builtin_natives;
import "dart:async";
part of dart_ui;
// Corelib 'print' implementation.
void _print(arg) {

View File

@ -12,8 +12,8 @@
#include "mojo/data_pipe_utils/data_pipe_utils.h"
#include "mojo/public/cpp/system/data_pipe.h"
#include "sky/engine/bindings/builtin.h"
#include "sky/engine/bindings/builtin_natives.h"
#include "sky/engine/bindings/builtin_sky.h"
#include "sky/engine/bindings/dart_natives.h"
#include "sky/engine/bindings/dart_ui.h"
#include "sky/engine/core/script/dart_debugger.h"
#include "sky/engine/core/script/dart_init.h"
#include "sky/engine/core/script/dart_service_isolate.h"
@ -147,13 +147,13 @@ void DartController::CreateIsolateFor(PassOwnPtr<DOMDartState> state) {
{
DartApiScope apiScope;
Builtin::SetNativeResolver(Builtin::kBuiltinLibrary);
Builtin::SetNativeResolver(Builtin::kUILibrary);
Builtin::SetNativeResolver(Builtin::kMojoInternalLibrary);
Builtin::SetNativeResolver(Builtin::kIOLibrary);
BuiltinNatives::Init(BuiltinNatives::MainIsolate);
DartNatives::Init(DartNatives::MainIsolate);
builtin_sky_ = adoptPtr(new BuiltinSky(dart_state()));
dart_state()->class_library().set_provider(builtin_sky_.get());
dart_ui_ = adoptPtr(new DartUI(dart_state()));
dart_state()->class_library().set_provider(dart_ui_.get());
EnsureHandleWatcherStarted();
}
@ -164,7 +164,7 @@ void DartController::InstallView(View* view) {
DartIsolateScope isolate_scope(dart_state()->isolate());
DartApiScope dart_api_scope;
builtin_sky_->InstallView(view);
dart_ui_->InstallView(view);
}
static void DartController_DartStreamConsumer(

View File

@ -16,7 +16,7 @@
namespace blink {
class AbstractModule;
class BuiltinSky;
class DartUI;
class DOMDartState;
class DartLibraryProvider;
class DartSnapshotLoader;
@ -50,7 +50,7 @@ class DartController {
void DidLoadSnapshot();
OwnPtr<DOMDartState> dom_dart_state_;
OwnPtr<BuiltinSky> builtin_sky_;
OwnPtr<DartUI> dart_ui_;
OwnPtr<DartSnapshotLoader> snapshot_loader_;
base::WeakPtrFactory<DartController> weak_factory_;

View File

@ -12,8 +12,8 @@
#include "dart/runtime/include/dart_mirrors_api.h"
#include "gen/sky/platform/RuntimeEnabledFeatures.h"
#include "sky/engine/bindings/builtin.h"
#include "sky/engine/bindings/builtin_natives.h"
#include "sky/engine/bindings/builtin_sky.h"
#include "sky/engine/bindings/dart_natives.h"
#include "sky/engine/bindings/dart_ui.h"
#include "sky/engine/core/script/dart_debugger.h"
#include "sky/engine/core/script/dart_service_isolate.h"
#include "sky/engine/core/script/dom_dart_state.h"
@ -121,10 +121,10 @@ Dart_Isolate IsolateCreateCallback(const char* script_uri,
CHECK(!LogIfError(Dart_SetLibraryTagHandler(DartLibraryTagHandler)));
{
DartApiScope apiScope;
Builtin::SetNativeResolver(Builtin::kBuiltinLibrary);
Builtin::SetNativeResolver(Builtin::kUILibrary);
Builtin::SetNativeResolver(Builtin::kMojoInternalLibrary);
Builtin::SetNativeResolver(Builtin::kIOLibrary);
BuiltinNatives::Init(BuiltinNatives::DartIOIsolate);
DartNatives::Init(DartNatives::DartIOIsolate);
// Start the handle watcher from the service isolate so it isn't available
// for debugging or general Observatory interaction.
EnsureHandleWatcherStarted();
@ -154,7 +154,7 @@ Dart_Isolate IsolateCreateCallback(const char* script_uri,
{
DartApiScope apiScope;
Builtin::SetNativeResolver(Builtin::kBuiltinLibrary);
Builtin::SetNativeResolver(Builtin::kUILibrary);
Builtin::SetNativeResolver(Builtin::kMojoInternalLibrary);
Builtin::SetNativeResolver(Builtin::kIOLibrary);

View File

@ -49,11 +49,9 @@ dart_pkg("sky_engine") {
sdk_ext_directory = "$root_gen_dir/sky/bindings"
sdk_ext_files = [
"//sky/engine/bindings/internals.dart",
"//sky/engine/bindings/builtin_natives.dart",
]
sdk_ext_mappings = [
"dart:ui,dart_ui.dart",
"dart:ui_internals,internals.dart",
"dart:ui_builtin_natives,builtin_natives.dart",
]
}

View File

@ -10,7 +10,6 @@ class URLMappings(object):
'dart:mojo.internal': os.path.join(src_root, 'mojo/public/dart/sdk_ext/internal.dart'),
'dart:ui': os.path.join(build_dir, 'gen/sky/bindings/dart_ui.dart'),
'dart:ui_internals': os.path.join(src_root, 'sky/engine/bindings/internals.dart'),
'dart:ui_builtin_natives': os.path.join(src_root, 'sky/engine/bindings/builtin_natives.dart'),
}
self.packages_root = os.path.join(build_dir, 'gen/dart-pkg/packages')