Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
qq_34031325
engine
提交
1f9858cb
E
engine
项目概览
qq_34031325
/
engine
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
E
engine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
1f9858cb
编写于
1月 18, 2016
作者:
A
Adam Barth
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #2274 from abarth/rm_wtf_string
Remove integration between tonic and WTFString
上级
efa936c4
4888996b
变更
63
隐藏空白更改
内联
并排
Showing
63 changed file
with
204 addition
and
661 deletion
+204
-661
sky/engine/bindings/dart_runtime_hooks.cc
sky/engine/bindings/dart_runtime_hooks.cc
+1
-2
sky/engine/bindings/jni/dart_jni.cc
sky/engine/bindings/jni/dart_jni.cc
+1
-1
sky/engine/bindings/jni/dart_jni.h
sky/engine/bindings/jni/dart_jni.h
+1
-1
sky/engine/bindings/jni/jni_class.cc
sky/engine/bindings/jni/jni_class.cc
+12
-12
sky/engine/bindings/jni/jni_class.h
sky/engine/bindings/jni/jni_class.h
+13
-12
sky/engine/bindings/jni/jni_object.cc
sky/engine/bindings/jni/jni_object.cc
+6
-6
sky/engine/bindings/jni/jni_object.h
sky/engine/bindings/jni/jni_object.h
+5
-4
sky/engine/core/compositing/SceneBuilder.h
sky/engine/core/compositing/SceneBuilder.h
+0
-1
sky/engine/core/core.gni
sky/engine/core/core.gni
+0
-2
sky/engine/core/painting/Canvas.cpp
sky/engine/core/painting/Canvas.cpp
+31
-31
sky/engine/core/painting/Canvas.h
sky/engine/core/painting/Canvas.h
+8
-7
sky/engine/core/painting/CanvasColor.h
sky/engine/core/painting/CanvasColor.h
+0
-5
sky/engine/core/painting/CanvasGradient.cpp
sky/engine/core/painting/CanvasGradient.cpp
+11
-11
sky/engine/core/painting/CanvasGradient.h
sky/engine/core/painting/CanvasGradient.h
+5
-5
sky/engine/core/painting/CanvasImage.h
sky/engine/core/painting/CanvasImage.h
+1
-0
sky/engine/core/painting/DrawLooperLayerInfo.h
sky/engine/core/painting/DrawLooperLayerInfo.h
+1
-0
sky/engine/core/painting/Offset.h
sky/engine/core/painting/Offset.h
+0
-5
sky/engine/core/painting/Paint.h
sky/engine/core/painting/Paint.h
+0
-5
sky/engine/core/painting/Point.h
sky/engine/core/painting/Point.h
+0
-5
sky/engine/core/painting/RRect.h
sky/engine/core/painting/RRect.h
+0
-5
sky/engine/core/painting/RSTransform.cpp
sky/engine/core/painting/RSTransform.cpp
+0
-8
sky/engine/core/painting/RSTransform.h
sky/engine/core/painting/RSTransform.h
+0
-3
sky/engine/core/painting/Rect.h
sky/engine/core/painting/Rect.h
+0
-5
sky/engine/core/painting/Size.cpp
sky/engine/core/painting/Size.cpp
+0
-39
sky/engine/core/painting/Size.h
sky/engine/core/painting/Size.h
+0
-30
sky/engine/core/painting/painting.cc
sky/engine/core/painting/painting.cc
+6
-7
sky/engine/core/script/dart_controller.cc
sky/engine/core/script/dart_controller.cc
+5
-5
sky/engine/core/script/dart_controller.h
sky/engine/core/script/dart_controller.h
+2
-2
sky/engine/core/script/dart_service_isolate.cc
sky/engine/core/script/dart_service_isolate.cc
+0
-1
sky/engine/core/script/dom_dart_state.cc
sky/engine/core/script/dom_dart_state.cc
+1
-1
sky/engine/core/script/dom_dart_state.h
sky/engine/core/script/dom_dart_state.h
+3
-3
sky/engine/core/text/ParagraphBuilder.cpp
sky/engine/core/text/ParagraphBuilder.cpp
+4
-4
sky/engine/core/text/ParagraphBuilder.h
sky/engine/core/text/ParagraphBuilder.h
+2
-2
sky/engine/core/window/window.cc
sky/engine/core/window/window.cc
+1
-2
sky/engine/public/sky/sky_headless.cc
sky/engine/public/sky/sky_headless.cc
+1
-1
sky/engine/public/sky/sky_headless.h
sky/engine/public/sky/sky_headless.h
+1
-1
sky/engine/public/sky/sky_view.cc
sky/engine/public/sky/sky_view.cc
+3
-3
sky/engine/public/sky/sky_view.h
sky/engine/public/sky/sky_view.h
+3
-3
sky/engine/tonic/BUILD.gn
sky/engine/tonic/BUILD.gn
+0
-4
sky/engine/tonic/dart_converter.h
sky/engine/tonic/dart_converter.h
+31
-109
sky/engine/tonic/dart_invoke.cc
sky/engine/tonic/dart_invoke.cc
+11
-11
sky/engine/tonic/dart_invoke.h
sky/engine/tonic/dart_invoke.h
+2
-6
sky/engine/tonic/dart_library_loader.cc
sky/engine/tonic/dart_library_loader.cc
+5
-5
sky/engine/tonic/dart_microtask_queue.cc
sky/engine/tonic/dart_microtask_queue.cc
+1
-1
sky/engine/tonic/dart_state.cc
sky/engine/tonic/dart_state.cc
+3
-9
sky/engine/tonic/dart_state.h
sky/engine/tonic/dart_state.h
+0
-3
sky/engine/tonic/dart_string.cc
sky/engine/tonic/dart_string.cc
+0
-64
sky/engine/tonic/dart_string.h
sky/engine/tonic/dart_string.h
+0
-19
sky/engine/tonic/dart_string_cache.cc
sky/engine/tonic/dart_string_cache.cc
+0
-66
sky/engine/tonic/dart_string_cache.h
sky/engine/tonic/dart_string_cache.h
+0
-48
sky/engine/tonic/dart_timer_heap.cc
sky/engine/tonic/dart_timer_heap.cc
+3
-4
sky/engine/tonic/dart_wrappable.cc
sky/engine/tonic/dart_wrappable.cc
+0
-19
sky/engine/tonic/dart_wrappable.h
sky/engine/tonic/dart_wrappable.h
+2
-12
sky/engine/tonic/float32_list.cc
sky/engine/tonic/float32_list.cc
+1
-1
sky/engine/tonic/float32_list.h
sky/engine/tonic/float32_list.h
+0
-5
sky/engine/tonic/float64_list.cc
sky/engine/tonic/float64_list.cc
+1
-1
sky/engine/tonic/float64_list.h
sky/engine/tonic/float64_list.h
+0
-5
sky/engine/tonic/int32_list.cc
sky/engine/tonic/int32_list.cc
+1
-1
sky/engine/tonic/int32_list.h
sky/engine/tonic/int32_list.h
+0
-5
sky/engine/tonic/mojo_converter.h
sky/engine/tonic/mojo_converter.h
+10
-11
sky/engine/tonic/uint8_list.cc
sky/engine/tonic/uint8_list.cc
+1
-1
sky/engine/tonic/uint8_list.h
sky/engine/tonic/uint8_list.h
+0
-6
sky/shell/ui/engine.cc
sky/shell/ui/engine.cc
+4
-5
未找到文件。
sky/engine/bindings/dart_runtime_hooks.cc
浏览文件 @
1f9858cb
...
...
@@ -170,8 +170,7 @@ void ScheduleMicrotask(Dart_NativeArguments args) {
}
void
GetBaseURLString
(
Dart_NativeArguments
args
)
{
String
url
=
DOMDartState
::
Current
()
->
url
();
Dart_SetReturnValue
(
args
,
StringToDart
(
DartState
::
Current
(),
url
));
Dart_SetReturnValue
(
args
,
ToDart
(
DOMDartState
::
Current
()
->
url
()));
}
void
Timer_create
(
Dart_NativeArguments
args
)
{
...
...
sky/engine/bindings/jni/dart_jni.cc
浏览文件 @
1f9858cb
...
...
@@ -242,7 +242,7 @@ Dart_Handle DartJni::jni_float_type() {
}
void
JniMethodArgs
::
Convert
(
JNIEnv
*
env
,
const
V
ector
<
Dart_Handle
>&
dart_args
,
const
std
::
v
ector
<
Dart_Handle
>&
dart_args
,
Dart_Handle
*
exception
)
{
jvalues_
.
reserve
(
dart_args
.
size
());
...
...
sky/engine/bindings/jni/dart_jni.h
浏览文件 @
1f9858cb
...
...
@@ -42,7 +42,7 @@ class DartJni {
class
JniMethodArgs
{
public:
void
Convert
(
JNIEnv
*
env
,
const
V
ector
<
Dart_Handle
>&
dart_args
,
const
std
::
v
ector
<
Dart_Handle
>&
dart_args
,
Dart_Handle
*
exception
);
jvalue
*
jvalues
()
{
return
jvalues_
.
data
();
}
...
...
sky/engine/bindings/jni/jni_class.cc
浏览文件 @
1f9858cb
...
...
@@ -119,8 +119,8 @@ fail:
return
0
;
}
PassRefPtr
<
JniObject
>
JniClass
::
NewObject
(
jmethodID
methodId
,
const
V
ector
<
Dart_Handle
>&
args
)
{
PassRefPtr
<
JniObject
>
JniClass
::
NewObject
(
jmethodID
methodId
,
const
std
::
v
ector
<
Dart_Handle
>&
args
)
{
Dart_Handle
exception
=
nullptr
;
{
ENTER_JNI
();
...
...
@@ -430,7 +430,7 @@ fail:
}
PassRefPtr
<
JniObject
>
JniClass
::
CallStaticObjectMethod
(
jmethodID
methodId
,
const
V
ector
<
Dart_Handle
>&
args
)
{
jmethodID
methodId
,
const
std
::
v
ector
<
Dart_Handle
>&
args
)
{
Dart_Handle
exception
=
nullptr
;
{
ENTER_JNI
();
...
...
@@ -452,7 +452,7 @@ fail:
}
bool
JniClass
::
CallStaticBooleanMethod
(
jmethodID
methodId
,
const
V
ector
<
Dart_Handle
>&
args
)
{
const
std
::
v
ector
<
Dart_Handle
>&
args
)
{
Dart_Handle
exception
=
nullptr
;
{
ENTER_JNI
();
...
...
@@ -474,7 +474,7 @@ fail:
}
int64_t
JniClass
::
CallStaticByteMethod
(
jmethodID
methodId
,
const
V
ector
<
Dart_Handle
>&
args
)
{
const
std
::
v
ector
<
Dart_Handle
>&
args
)
{
Dart_Handle
exception
=
nullptr
;
{
ENTER_JNI
();
...
...
@@ -496,7 +496,7 @@ fail:
}
int64_t
JniClass
::
CallStaticCharMethod
(
jmethodID
methodId
,
const
V
ector
<
Dart_Handle
>&
args
)
{
const
std
::
v
ector
<
Dart_Handle
>&
args
)
{
Dart_Handle
exception
=
nullptr
;
{
ENTER_JNI
();
...
...
@@ -518,7 +518,7 @@ fail:
}
int64_t
JniClass
::
CallStaticShortMethod
(
jmethodID
methodId
,
const
V
ector
<
Dart_Handle
>&
args
)
{
const
std
::
v
ector
<
Dart_Handle
>&
args
)
{
Dart_Handle
exception
=
nullptr
;
{
ENTER_JNI
();
...
...
@@ -540,7 +540,7 @@ fail:
}
int64_t
JniClass
::
CallStaticIntMethod
(
jmethodID
methodId
,
const
V
ector
<
Dart_Handle
>&
args
)
{
const
std
::
v
ector
<
Dart_Handle
>&
args
)
{
Dart_Handle
exception
=
nullptr
;
{
ENTER_JNI
();
...
...
@@ -562,7 +562,7 @@ fail:
}
int64_t
JniClass
::
CallStaticLongMethod
(
jmethodID
methodId
,
const
V
ector
<
Dart_Handle
>&
args
)
{
const
std
::
v
ector
<
Dart_Handle
>&
args
)
{
Dart_Handle
exception
=
nullptr
;
{
ENTER_JNI
();
...
...
@@ -584,7 +584,7 @@ fail:
}
double
JniClass
::
CallStaticFloatMethod
(
jmethodID
methodId
,
const
V
ector
<
Dart_Handle
>&
args
)
{
const
std
::
v
ector
<
Dart_Handle
>&
args
)
{
Dart_Handle
exception
=
nullptr
;
{
ENTER_JNI
();
...
...
@@ -606,7 +606,7 @@ fail:
}
double
JniClass
::
CallStaticDoubleMethod
(
jmethodID
methodId
,
const
V
ector
<
Dart_Handle
>&
args
)
{
const
std
::
v
ector
<
Dart_Handle
>&
args
)
{
Dart_Handle
exception
=
nullptr
;
{
ENTER_JNI
();
...
...
@@ -628,7 +628,7 @@ fail:
}
void
JniClass
::
CallStaticVoidMethod
(
jmethodID
methodId
,
const
V
ector
<
Dart_Handle
>&
args
)
{
const
std
::
v
ector
<
Dart_Handle
>&
args
)
{
Dart_Handle
exception
=
nullptr
;
{
ENTER_JNI
();
...
...
sky/engine/bindings/jni/jni_class.h
浏览文件 @
1f9858cb
...
...
@@ -10,6 +10,7 @@
#include "base/android/jni_android.h"
#include "sky/engine/tonic/dart_wrappable.h"
#include "sky/engine/wtf/PassRefPtr.h"
#include "sky/engine/wtf/RefCounted.h"
namespace
blink
{
...
...
@@ -31,7 +32,7 @@ class JniClass : public RefCounted<JniClass>, public DartWrappable {
intptr_t
GetStaticMethodId
(
const
char
*
name
,
const
char
*
sig
);
PassRefPtr
<
JniObject
>
NewObject
(
jmethodID
methodId
,
const
V
ector
<
Dart_Handle
>&
args
);
const
std
::
v
ector
<
Dart_Handle
>&
args
);
PassRefPtr
<
JniObject
>
GetStaticObjectField
(
jfieldID
fieldId
);
bool
GetStaticBooleanField
(
jfieldID
fieldId
);
...
...
@@ -53,26 +54,26 @@ class JniClass : public RefCounted<JniClass>, public DartWrappable {
void
SetStaticFloatField
(
jfieldID
fieldId
,
double
value
);
void
SetStaticDoubleField
(
jfieldID
fieldId
,
double
value
);
PassRefPtr
<
JniObject
>
CallStaticObjectMethod
(
jmethodID
methodId
,
const
V
ector
<
Dart_Handle
>&
args
);
PassRefPtr
<
JniObject
>
CallStaticObjectMethod
(
jmethodID
methodId
,
const
std
::
v
ector
<
Dart_Handle
>&
args
);
bool
CallStaticBooleanMethod
(
jmethodID
methodId
,
const
V
ector
<
Dart_Handle
>&
args
);
const
std
::
v
ector
<
Dart_Handle
>&
args
);
int64_t
CallStaticByteMethod
(
jmethodID
methodId
,
const
V
ector
<
Dart_Handle
>&
args
);
const
std
::
v
ector
<
Dart_Handle
>&
args
);
int64_t
CallStaticCharMethod
(
jmethodID
methodId
,
const
V
ector
<
Dart_Handle
>&
args
);
const
std
::
v
ector
<
Dart_Handle
>&
args
);
int64_t
CallStaticShortMethod
(
jmethodID
methodId
,
const
V
ector
<
Dart_Handle
>&
args
);
const
std
::
v
ector
<
Dart_Handle
>&
args
);
int64_t
CallStaticIntMethod
(
jmethodID
methodId
,
const
V
ector
<
Dart_Handle
>&
args
);
const
std
::
v
ector
<
Dart_Handle
>&
args
);
int64_t
CallStaticLongMethod
(
jmethodID
methodId
,
const
V
ector
<
Dart_Handle
>&
args
);
const
std
::
v
ector
<
Dart_Handle
>&
args
);
double
CallStaticFloatMethod
(
jmethodID
methodId
,
const
V
ector
<
Dart_Handle
>&
args
);
const
std
::
v
ector
<
Dart_Handle
>&
args
);
double
CallStaticDoubleMethod
(
jmethodID
methodId
,
const
V
ector
<
Dart_Handle
>&
args
);
const
std
::
v
ector
<
Dart_Handle
>&
args
);
void
CallStaticVoidMethod
(
jmethodID
methodId
,
const
V
ector
<
Dart_Handle
>&
args
);
const
std
::
v
ector
<
Dart_Handle
>&
args
);
private:
JniClass
(
JNIEnv
*
env
,
jclass
clazz
);
...
...
sky/engine/bindings/jni/jni_object.cc
浏览文件 @
1f9858cb
...
...
@@ -56,7 +56,7 @@ fail:
PassRefPtr
<
JniObject
>
JniObject
::
CallObjectMethod
(
jmethodID
methodId
,
const
V
ector
<
Dart_Handle
>&
args
)
{
const
std
::
v
ector
<
Dart_Handle
>&
args
)
{
Dart_Handle
exception
=
nullptr
;
{
ENTER_JNI
();
...
...
@@ -78,7 +78,7 @@ fail:
}
bool
JniObject
::
CallBooleanMethod
(
jmethodID
methodId
,
const
V
ector
<
Dart_Handle
>&
args
)
{
const
std
::
v
ector
<
Dart_Handle
>&
args
)
{
Dart_Handle
exception
=
nullptr
;
{
ENTER_JNI
();
...
...
@@ -100,7 +100,7 @@ fail:
}
int64_t
JniObject
::
CallIntMethod
(
jmethodID
methodId
,
const
V
ector
<
Dart_Handle
>&
args
)
{
const
std
::
v
ector
<
Dart_Handle
>&
args
)
{
Dart_Handle
exception
=
nullptr
;
{
ENTER_JNI
();
...
...
@@ -133,7 +133,7 @@ jstring JniString::java_string() {
return
static_cast
<
jstring
>
(
java_object
());
}
S
tring
JniString
::
GetText
()
{
std
::
s
tring
JniString
::
GetText
()
{
Dart_Handle
exception
=
nullptr
;
{
ENTER_JNI
();
...
...
@@ -144,7 +144,7 @@ String JniString::GetText() {
const
jchar
*
chars
=
env
->
GetStringChars
(
java_string
(),
NULL
);
if
(
CheckJniException
(
env
,
&
exception
))
goto
fail
;
String
result
(
chars
,
length
);
std
::
string
result
(
reinterpret_cast
<
const
char
*>
(
chars
)
,
length
);
env
->
ReleaseStringChars
(
java_string
(),
chars
);
return
result
;
...
...
@@ -152,7 +152,7 @@ String JniString::GetText() {
fail:
Dart_ThrowException
(
exception
);
ASSERT_NOT_REACHED
();
return
S
tring
();
return
std
::
s
tring
();
}
}
// namespace blink
sky/engine/bindings/jni/jni_object.h
浏览文件 @
1f9858cb
...
...
@@ -10,6 +10,7 @@
#include "base/android/jni_android.h"
#include "sky/engine/tonic/dart_wrappable.h"
#include "sky/engine/wtf/PassRefPtr.h"
#include "sky/engine/wtf/RefCounted.h"
namespace
blink
{
...
...
@@ -27,11 +28,11 @@ class JniObject : public RefCounted<JniObject>, public DartWrappable {
int64_t
GetIntField
(
jfieldID
fieldId
);
PassRefPtr
<
JniObject
>
CallObjectMethod
(
jmethodID
methodId
,
const
V
ector
<
Dart_Handle
>&
args
);
const
std
::
v
ector
<
Dart_Handle
>&
args
);
bool
CallBooleanMethod
(
jmethodID
methodId
,
const
V
ector
<
Dart_Handle
>&
args
);
const
std
::
v
ector
<
Dart_Handle
>&
args
);
int64_t
CallIntMethod
(
jmethodID
methodId
,
const
V
ector
<
Dart_Handle
>&
args
);
const
std
::
v
ector
<
Dart_Handle
>&
args
);
protected:
JniObject
(
JNIEnv
*
env
,
jobject
object
);
...
...
@@ -47,7 +48,7 @@ class JniString : public JniObject {
public:
~
JniString
()
override
;
S
tring
GetText
();
std
::
s
tring
GetText
();
private:
JniString
(
JNIEnv
*
env
,
jstring
string
);
...
...
sky/engine/core/compositing/SceneBuilder.h
浏览文件 @
1f9858cb
...
...
@@ -18,7 +18,6 @@
#include "sky/engine/core/painting/Point.h"
#include "sky/engine/core/painting/Rect.h"
#include "sky/engine/core/painting/RRect.h"
#include "sky/engine/core/painting/Size.h"
#include "sky/engine/tonic/dart_wrappable.h"
#include "sky/engine/tonic/float64_list.h"
#include "sky/engine/wtf/PassRefPtr.h"
...
...
sky/engine/core/core.gni
浏览文件 @
1f9858cb
...
...
@@ -60,8 +60,6 @@ sky_core_files = [
"painting/RSTransform.h",
"painting/Shader.cpp",
"painting/Shader.h",
"painting/Size.cpp",
"painting/Size.h",
"painting/TransferMode.h",
"rendering/BidiRun.h",
"rendering/BidiRunForLine.cpp",
...
...
sky/engine/core/painting/Canvas.cpp
浏览文件 @
1f9858cb
...
...
@@ -279,35 +279,35 @@ void Canvas::drawPicture(Picture* picture)
}
void
Canvas
::
drawVertices
(
SkCanvas
::
VertexMode
vertexMode
,
const
V
ector
<
Point
>&
vertices
,
const
V
ector
<
Point
>&
textureCoordinates
,
const
V
ector
<
CanvasColor
>&
colors
,
const
std
::
v
ector
<
Point
>&
vertices
,
const
std
::
v
ector
<
Point
>&
textureCoordinates
,
const
std
::
v
ector
<
CanvasColor
>&
colors
,
TransferMode
transferMode
,
const
V
ector
<
int
>&
indices
,
const
std
::
v
ector
<
int
>&
indices
,
const
Paint
&
paint
)
{
if
(
!
m_canvas
)
return
;
V
ector
<
SkPoint
>
skVertices
;
skVertices
.
reserve
InitialCapacity
(
vertices
.
size
());
std
::
v
ector
<
SkPoint
>
skVertices
;
skVertices
.
reserve
(
vertices
.
size
());
for
(
const
Point
&
point
:
vertices
)
skVertices
.
append
(
point
.
sk_point
);
skVertices
.
push_back
(
point
.
sk_point
);
V
ector
<
SkPoint
>
skTextureCoordinates
;
skVertices
.
reserve
InitialCapacity
(
textureCoordinates
.
size
());
std
::
v
ector
<
SkPoint
>
skTextureCoordinates
;
skVertices
.
reserve
(
textureCoordinates
.
size
());
for
(
const
Point
&
point
:
textureCoordinates
)
skTextureCoordinates
.
append
(
point
.
sk_point
);
skTextureCoordinates
.
push_back
(
point
.
sk_point
);
V
ector
<
SkColor
>
skColors
;
skColors
.
reserve
InitialCapacity
(
colors
.
size
());
std
::
v
ector
<
SkColor
>
skColors
;
skColors
.
reserve
(
colors
.
size
());
for
(
const
CanvasColor
&
color
:
colors
)
skColors
.
append
(
color
);
skColors
.
push_back
(
color
);
V
ector
<
uint16_t
>
skIndices
;
skIndices
.
reserve
InitialCapacity
(
indices
.
size
());
std
::
v
ector
<
uint16_t
>
skIndices
;
skIndices
.
reserve
(
indices
.
size
());
for
(
uint16_t
i
:
indices
)
skIndices
.
append
(
i
);
skIndices
.
push_back
(
i
);
RefPtr
<
SkXfermode
>
transferModePtr
=
adoptRef
(
SkXfermode
::
Create
(
transferMode
));
...
...
@@ -315,18 +315,18 @@ void Canvas::drawVertices(SkCanvas::VertexMode vertexMode,
vertexMode
,
skVertices
.
size
(),
skVertices
.
data
(),
skTextureCoordinates
.
isE
mpty
()
?
nullptr
:
skTextureCoordinates
.
data
(),
skColors
.
isE
mpty
()
?
nullptr
:
skColors
.
data
(),
skTextureCoordinates
.
e
mpty
()
?
nullptr
:
skTextureCoordinates
.
data
(),
skColors
.
e
mpty
()
?
nullptr
:
skColors
.
data
(),
transferModePtr
.
get
(),
skIndices
.
isE
mpty
()
?
nullptr
:
skIndices
.
data
(),
skIndices
.
e
mpty
()
?
nullptr
:
skIndices
.
data
(),
skIndices
.
size
(),
*
paint
.
paint
()
);
}
void
Canvas
::
drawAtlas
(
CanvasImage
*
atlas
,
const
Vector
<
RSTransform
>&
transforms
,
const
V
ector
<
Rect
>&
rects
,
const
V
ector
<
CanvasColor
>&
colors
,
TransferMode
mode
,
const
std
::
vector
<
RSTransform
>&
transforms
,
const
std
::
v
ector
<
Rect
>&
rects
,
const
std
::
v
ector
<
CanvasColor
>&
colors
,
TransferMode
mode
,
const
Rect
&
cullRect
,
const
Paint
&
paint
)
{
if
(
!
m_canvas
)
...
...
@@ -334,26 +334,26 @@ void Canvas::drawAtlas(CanvasImage* atlas,
RefPtr
<
SkImage
>
skImage
=
atlas
->
image
();
V
ector
<
SkRSXform
>
skXForms
;
skXForms
.
reserve
InitialCapacity
(
transforms
.
size
());
std
::
v
ector
<
SkRSXform
>
skXForms
;
skXForms
.
reserve
(
transforms
.
size
());
for
(
const
RSTransform
&
transform
:
transforms
)
skXForms
.
append
(
transform
.
sk_xform
);
skXForms
.
push_back
(
transform
.
sk_xform
);
V
ector
<
SkRect
>
skRects
;
skRects
.
reserve
InitialCapacity
(
rects
.
size
());
std
::
v
ector
<
SkRect
>
skRects
;
skRects
.
reserve
(
rects
.
size
());
for
(
const
Rect
&
rect
:
rects
)
skRects
.
append
(
rect
.
sk_rect
);
skRects
.
push_back
(
rect
.
sk_rect
);
V
ector
<
SkColor
>
skColors
;
skColors
.
reserve
InitialCapacity
(
colors
.
size
());
std
::
v
ector
<
SkColor
>
skColors
;
skColors
.
reserve
(
colors
.
size
());
for
(
const
CanvasColor
&
color
:
colors
)
skColors
.
append
(
color
);
skColors
.
push_back
(
color
);
m_canvas
->
drawAtlas
(
skImage
.
get
(),
skXForms
.
data
(),
skRects
.
data
(),
skColors
.
isE
mpty
()
?
nullptr
:
skColors
.
data
(),
skColors
.
e
mpty
()
?
nullptr
:
skColors
.
data
(),
skXForms
.
size
(),
mode
,
cullRect
.
is_null
?
nullptr
:
&
cullRect
.
sk_rect
,
...
...
sky/engine/core/painting/Canvas.h
浏览文件 @
1f9858cb
...
...
@@ -14,7 +14,6 @@
#include "sky/engine/core/painting/Point.h"
#include "sky/engine/core/painting/RRect.h"
#include "sky/engine/core/painting/Rect.h"
#include "sky/engine/core/painting/Size.h"
#include "sky/engine/core/painting/RSTransform.h"
#include "sky/engine/tonic/dart_wrappable.h"
#include "sky/engine/tonic/float64_list.h"
...
...
@@ -69,16 +68,18 @@ public:
void
drawPicture
(
Picture
*
picture
);
void
drawVertices
(
SkCanvas
::
VertexMode
vertexMode
,
const
V
ector
<
Point
>&
vertices
,
const
V
ector
<
Point
>&
textureCoordinates
,
const
V
ector
<
CanvasColor
>&
colors
,
const
std
::
v
ector
<
Point
>&
vertices
,
const
std
::
v
ector
<
Point
>&
textureCoordinates
,
const
std
::
v
ector
<
CanvasColor
>&
colors
,
TransferMode
transferMode
,
const
V
ector
<
int
>&
indices
,
const
std
::
v
ector
<
int
>&
indices
,
const
Paint
&
paint
);
void
drawAtlas
(
CanvasImage
*
atlas
,
const
Vector
<
RSTransform
>&
transforms
,
const
Vector
<
Rect
>&
rects
,
const
Vector
<
CanvasColor
>&
colors
,
TransferMode
mode
,
const
std
::
vector
<
RSTransform
>&
transforms
,
const
std
::
vector
<
Rect
>&
rects
,
const
std
::
vector
<
CanvasColor
>&
colors
,
TransferMode
mode
,
const
Rect
&
cullRect
,
const
Paint
&
paint
);
SkCanvas
*
skCanvas
()
{
return
m_canvas
;
}
...
...
sky/engine/core/painting/CanvasColor.h
浏览文件 @
1f9858cb
...
...
@@ -27,11 +27,6 @@ struct DartConverter<CanvasColor> {
static
CanvasColor
FromArguments
(
Dart_NativeArguments
args
,
int
index
,
Dart_Handle
&
exception
);
static
CanvasColor
FromArgumentsWithNullCheck
(
Dart_NativeArguments
args
,
int
index
,
Dart_Handle
&
exception
)
{
return
FromArguments
(
args
,
index
,
exception
);
}
static
void
SetReturnValue
(
Dart_NativeArguments
args
,
CanvasColor
val
);
};
...
...
sky/engine/core/painting/CanvasGradient.cpp
浏览文件 @
1f9858cb
...
...
@@ -36,9 +36,9 @@ PassRefPtr<CanvasGradient> CanvasGradient::create() {
return
adoptRef
(
new
CanvasGradient
());
}
void
CanvasGradient
::
initLinear
(
const
V
ector
<
Point
>&
end_points
,
const
V
ector
<
CanvasColor
>&
colors
,
const
V
ector
<
float
>&
color_stops
,
void
CanvasGradient
::
initLinear
(
const
std
::
v
ector
<
Point
>&
end_points
,
const
std
::
v
ector
<
CanvasColor
>&
colors
,
const
std
::
v
ector
<
float
>&
color_stops
,
SkShader
::
TileMode
tile_mode
)
{
ASSERT
(
end_points
.
size
()
==
2
);
ASSERT
(
colors
.
size
()
==
color_stops
.
size
()
||
color_stops
.
data
()
==
nullptr
);
...
...
@@ -46,10 +46,10 @@ void CanvasGradient::initLinear(const Vector<Point>& end_points,
for
(
int
i
=
0
;
i
<
2
;
++
i
)
sk_end_points
[
i
]
=
end_points
[
i
].
sk_point
;
V
ector
<
SkColor
>
sk_colors
;
sk_colors
.
reserve
InitialCapacity
(
colors
.
size
());
std
::
v
ector
<
SkColor
>
sk_colors
;
sk_colors
.
reserve
(
colors
.
size
());
for
(
const
CanvasColor
&
color
:
colors
)
sk_colors
.
append
(
color
);
sk_colors
.
push_back
(
color
);
SkShader
*
shader
=
SkGradientShader
::
CreateLinear
(
sk_end_points
,
sk_colors
.
data
(),
color_stops
.
data
(),
sk_colors
.
size
(),
...
...
@@ -59,15 +59,15 @@ void CanvasGradient::initLinear(const Vector<Point>& end_points,
void
CanvasGradient
::
initRadial
(
const
Point
&
center
,
double
radius
,
const
V
ector
<
CanvasColor
>&
colors
,
const
V
ector
<
float
>&
color_stops
,
const
std
::
v
ector
<
CanvasColor
>&
colors
,
const
std
::
v
ector
<
float
>&
color_stops
,
SkShader
::
TileMode
tile_mode
)
{
ASSERT
(
colors
.
size
()
==
color_stops
.
size
()
||
color_stops
.
data
()
==
nullptr
);
V
ector
<
SkColor
>
sk_colors
;
sk_colors
.
reserve
InitialCapacity
(
colors
.
size
());
std
::
v
ector
<
SkColor
>
sk_colors
;
sk_colors
.
reserve
(
colors
.
size
());
for
(
const
CanvasColor
&
color
:
colors
)
sk_colors
.
append
(
color
);
sk_colors
.
push_back
(
color
);
SkShader
*
shader
=
SkGradientShader
::
CreateRadial
(
center
.
sk_point
,
radius
,
sk_colors
.
data
(),
color_stops
.
data
(),
...
...
sky/engine/core/painting/CanvasGradient.h
浏览文件 @
1f9858cb
...
...
@@ -25,15 +25,15 @@ class CanvasGradient : public Shader {
~
CanvasGradient
()
override
;
static
PassRefPtr
<
CanvasGradient
>
create
();
void
initLinear
(
const
V
ector
<
Point
>&
end_points
,
const
V
ector
<
CanvasColor
>&
colors
,
const
V
ector
<
float
>&
color_stops
,
void
initLinear
(
const
std
::
v
ector
<
Point
>&
end_points
,
const
std
::
v
ector
<
CanvasColor
>&
colors
,
const
std
::
v
ector
<
float
>&
color_stops
,
SkShader
::
TileMode
tile_mode
);
void
initRadial
(
const
Point
&
center
,
double
radius
,
const
V
ector
<
CanvasColor
>&
colors
,
const
V
ector
<
float
>&
color_stops
,
const
std
::
v
ector
<
CanvasColor
>&
colors
,
const
std
::
v
ector
<
float
>&
color_stops
,
SkShader
::
TileMode
tile_mode
);
static
void
RegisterNatives
(
DartLibraryNatives
*
natives
);
...
...
sky/engine/core/painting/CanvasImage.h
浏览文件 @
1f9858cb
...
...
@@ -7,6 +7,7 @@
#include "sky/engine/tonic/dart_wrappable.h"
#include "sky/engine/wtf/PassRefPtr.h"
#include "sky/engine/wtf/RefCounted.h"
#include "third_party/skia/include/core/SkImage.h"
namespace
blink
{
...
...
sky/engine/core/painting/DrawLooperLayerInfo.h
浏览文件 @
1f9858cb
...
...
@@ -9,6 +9,7 @@
#include "sky/engine/core/painting/Offset.h"
#include "sky/engine/core/painting/TransferMode.h"
#include "sky/engine/tonic/dart_wrappable.h"
#include "sky/engine/wtf/RefCounted.h"
#include "third_party/skia/include/core/SkPoint.h"
#include "third_party/skia/include/effects/SkLayerDrawLooper.h"
...
...
sky/engine/core/painting/Offset.h
浏览文件 @
1f9858cb
...
...
@@ -23,11 +23,6 @@ struct DartConverter<Offset> {
static
Offset
FromArguments
(
Dart_NativeArguments
args
,
int
index
,
Dart_Handle
&
exception
);
static
Offset
FromArgumentsWithNullCheck
(
Dart_NativeArguments
args
,
int
index
,
Dart_Handle
&
exception
)
{
return
FromArguments
(
args
,
index
,
exception
);
}
};
}
// namespace blink
...
...
sky/engine/core/painting/Paint.h
浏览文件 @
1f9858cb
...
...
@@ -36,11 +36,6 @@ struct DartConverter<Paint> {
static
Paint
FromArguments
(
Dart_NativeArguments
args
,
int
index
,
Dart_Handle
&
exception
);
static
Paint
FromArgumentsWithNullCheck
(
Dart_NativeArguments
args
,
int
index
,
Dart_Handle
&
exception
)
{
return
FromArguments
(
args
,
index
,
exception
);
}
};
class
StrokeCap
{};
...
...
sky/engine/core/painting/Point.h
浏览文件 @
1f9858cb
...
...
@@ -23,11 +23,6 @@ struct DartConverter<Point> {
static
Point
FromArguments
(
Dart_NativeArguments
args
,
int
index
,
Dart_Handle
&
exception
);
static
Point
FromArgumentsWithNullCheck
(
Dart_NativeArguments
args
,
int
index
,
Dart_Handle
&
exception
)
{
return
FromArguments
(
args
,
index
,
exception
);
}
};
}
// namespace blink
...
...
sky/engine/core/painting/RRect.h
浏览文件 @
1f9858cb
...
...
@@ -23,11 +23,6 @@ struct DartConverter<RRect> {
static
RRect
FromArguments
(
Dart_NativeArguments
args
,
int
index
,
Dart_Handle
&
exception
);
static
RRect
FromArgumentsWithNullCheck
(
Dart_NativeArguments
args
,
int
index
,
Dart_Handle
&
exception
)
{
return
FromArguments
(
args
,
index
,
exception
);
}
};
}
// namespace blink
...
...
sky/engine/core/painting/RSTransform.cpp
浏览文件 @
1f9858cb
...
...
@@ -45,12 +45,4 @@ RSTransform DartConverter<RSTransform>::FromDart(Dart_Handle dart_xform) {
return
result
;
}
RSTransform
DartConverter
<
RSTransform
>::
FromArgumentsWithNullCheck
(
Dart_NativeArguments
args
,
int
index
,
Dart_Handle
&
exception
)
{
Dart_Handle
dart_xform
=
Dart_GetNativeArgument
(
args
,
index
);
DCHECK
(
!
LogIfError
(
dart_xform
));
return
FromDart
(
dart_xform
);
}
}
// namespace blink
sky/engine/core/painting/RSTransform.h
浏览文件 @
1f9858cb
...
...
@@ -22,9 +22,6 @@ class RSTransform {
template
<
>
struct
DartConverter
<
RSTransform
>
{
static
RSTransform
FromDart
(
Dart_Handle
handle
);
static
RSTransform
FromArgumentsWithNullCheck
(
Dart_NativeArguments
args
,
int
index
,
Dart_Handle
&
exception
);
};
}
// namespace blink
...
...
sky/engine/core/painting/Rect.h
浏览文件 @
1f9858cb
...
...
@@ -23,11 +23,6 @@ struct DartConverter<Rect> {
static
Rect
FromArguments
(
Dart_NativeArguments
args
,
int
index
,
Dart_Handle
&
exception
);
static
Rect
FromArgumentsWithNullCheck
(
Dart_NativeArguments
args
,
int
index
,
Dart_Handle
&
exception
)
{
return
FromArguments
(
args
,
index
,
exception
);
}
};
}
// namespace blink
...
...
sky/engine/core/painting/Size.cpp
已删除
100644 → 0
浏览文件 @
efa936c4
// Copyright 2015 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/core/painting/Size.h"
#include "sky/engine/core/script/dom_dart_state.h"
#include "sky/engine/tonic/dart_error.h"
#include "base/logging.h"
namespace
blink
{
// Convert handle.x,y ==> SkSize.
Size
DartConverter
<
Size
>::
FromDart
(
Dart_Handle
handle
)
{
DCHECK
(
!
LogIfError
(
handle
));
Dart_Handle
dx_value
=
Dart_GetField
(
handle
,
DOMDartState
::
Current
()
->
dx_handle
());
Dart_Handle
dy_value
=
Dart_GetField
(
handle
,
DOMDartState
::
Current
()
->
dy_handle
());
double
dx
=
0.0
,
dy
=
0.0
;
Dart_Handle
err
=
Dart_DoubleValue
(
dx_value
,
&
dx
);
DCHECK
(
!
LogIfError
(
err
));
err
=
Dart_DoubleValue
(
dy_value
,
&
dy
);
DCHECK
(
!
LogIfError
(
err
));
Size
result
;
result
.
sk_size
.
set
(
dx
,
dy
);
result
.
is_null
=
false
;
return
result
;
}
Size
DartConverter
<
Size
>::
FromArgumentsWithNullCheck
(
Dart_NativeArguments
args
,
int
index
,
Dart_Handle
&
exception
)
{
return
FromDart
(
Dart_GetNativeArgument
(
args
,
index
));
}
}
// namespace blink
sky/engine/core/painting/Size.h
已删除
100644 → 0
浏览文件 @
efa936c4
// Copyright 2015 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_ENGINE_CORE_PAINTING_SIZE_H_
#define SKY_ENGINE_CORE_PAINTING_SIZE_H_
#include "dart/runtime/include/dart_api.h"
#include "sky/engine/tonic/dart_converter.h"
#include "third_party/skia/include/core/SkSize.h"
namespace
blink
{
// Very simple wrapper for SkSize to add a null state.
class
Size
{
public:
SkSize
sk_size
;
bool
is_null
;
};
template
<
>
struct
DartConverter
<
Size
>
{
static
Size
FromDart
(
Dart_Handle
handle
);
static
Size
FromArgumentsWithNullCheck
(
Dart_NativeArguments
args
,
int
index
,
Dart_Handle
&
exception
);
};
}
// namespace blink
#endif // SKY_ENGINE_CORE_PAINTING_SIZE_H_
sky/engine/core/painting/painting.cc
浏览文件 @
1f9858cb
...
...
@@ -35,17 +35,17 @@ void DecodeImage(scoped_ptr<DartPersistentValue> callback,
// decoder can be null if the buffer was empty and we couldn't even guess
// what type of image to decode.
if
(
!
decoder
)
{
DartInvoke
AppClosure
(
callback
->
value
(),
{
Dart_Null
()});
DartInvoke
(
callback
->
value
(),
{
Dart_Null
()});
return
;
}
decoder
->
setData
(
buffer
.
get
(),
true
);
if
(
decoder
->
failed
()
||
decoder
->
frameCount
()
==
0
)
{
DartInvoke
AppClosure
(
callback
->
value
(),
{
Dart_Null
()});
DartInvoke
(
callback
->
value
(),
{
Dart_Null
()});
return
;
}
ImageFrame
*
imageFrame
=
decoder
->
frameBufferAtIndex
(
0
);
if
(
decoder
->
failed
())
{
DartInvoke
AppClosure
(
callback
->
value
(),
{
Dart_Null
()});
DartInvoke
(
callback
->
value
(),
{
Dart_Null
()});
return
;
}
...
...
@@ -54,7 +54,7 @@ void DecodeImage(scoped_ptr<DartPersistentValue> callback,
SkImage
::
NewFromBitmap
(
imageFrame
->
getSkBitmap
()));
resultImage
->
setImage
(
skImage
.
release
());
DartInvoke
AppClosure
(
callback
->
value
(),
{
ToDart
(
resultImage
)});
DartInvoke
(
callback
->
value
(),
{
ToDart
(
resultImage
)});
}
...
...
@@ -62,7 +62,7 @@ void DecodeImageFromDataPipe(Dart_NativeArguments args) {
Dart_Handle
exception
=
nullptr
;
mojo
::
ScopedDataPipeConsumerHandle
consumer
=
DartConverter
<
mojo
::
ScopedDataPipeConsumerHandle
>::
FromArguments
WithNullCheck
(
DartConverter
<
mojo
::
ScopedDataPipeConsumerHandle
>::
FromArguments
(
args
,
0
,
exception
);
if
(
exception
)
{
Dart_ThrowException
(
exception
);
...
...
@@ -84,8 +84,7 @@ void DecodeImageFromDataPipe(Dart_NativeArguments args) {
void
DecodeImageFromList
(
Dart_NativeArguments
args
)
{
Dart_Handle
exception
=
nullptr
;
Uint8List
list
=
DartConverter
<
Uint8List
>::
FromArgumentsWithNullCheck
(
args
,
0
,
exception
);
Uint8List
list
=
DartConverter
<
Uint8List
>::
FromArguments
(
args
,
0
,
exception
);
if
(
exception
)
{
Dart_ThrowException
(
exception
);
return
;
...
...
sky/engine/core/script/dart_controller.cc
浏览文件 @
1f9858cb
...
...
@@ -78,13 +78,13 @@ DartController::~DartController() {
}
}
void
DartController
::
DidLoadMainLibrary
(
S
tring
name
)
{
void
DartController
::
DidLoadMainLibrary
(
std
::
s
tring
name
)
{
DCHECK
(
Dart_CurrentIsolate
()
==
dart_state
()
->
isolate
());
DartApiScope
dart_api_scope
;
CHECK
(
!
LogIfError
(
Dart_FinalizeLoading
(
true
)));
Dart_Handle
library
=
Dart_LookupLibrary
(
StringToDart
(
dart_state
(),
name
));
Dart_Handle
library
=
Dart_LookupLibrary
(
ToDart
(
name
));
if
(
LogIfError
(
library
))
exit
(
1
);
if
(
DartInvokeField
(
library
,
"main"
,
{}))
...
...
@@ -127,7 +127,7 @@ void DartController::RunFromSnapshotBuffer(const uint8_t* buffer, size_t size) {
DartInvokeField
(
library
,
"main"
,
{});
}
void
DartController
::
RunFromLibrary
(
const
S
tring
&
name
,
void
DartController
::
RunFromLibrary
(
const
std
::
s
tring
&
name
,
DartLibraryProvider
*
library_provider
)
{
DartState
::
Scope
scope
(
dart_state
());
CreateEmptyRootLibraryIfNeeded
();
...
...
@@ -136,7 +136,7 @@ void DartController::RunFromLibrary(const String& name,
loader
.
set_library_provider
(
library_provider
);
DartDependencyCatcher
dependency_catcher
(
loader
);
loader
.
LoadLibrary
(
name
.
toUTF8
()
);
loader
.
LoadLibrary
(
name
);
loader
.
WaitForDependencies
(
dependency_catcher
.
dependencies
(),
base
::
Bind
(
&
DartController
::
DidLoadMainLibrary
,
weak_factory_
.
GetWeakPtr
(),
name
));
...
...
@@ -146,7 +146,7 @@ void DartController::CreateIsolateFor(std::unique_ptr<DOMDartState> state) {
char
*
error
=
nullptr
;
dom_dart_state_
=
std
::
move
(
state
);
Dart_Isolate
isolate
=
Dart_CreateIsolate
(
dom_dart_state_
->
url
().
utf8
().
data
(),
"main"
,
dom_dart_state_
->
url
().
c_str
(),
"main"
,
reinterpret_cast
<
uint8_t
*>
(
DART_SYMBOL
(
kDartIsolateSnapshotBuffer
)),
nullptr
,
static_cast
<
DartState
*>
(
dom_dart_state_
.
get
()),
&
error
);
Dart_SetMessageNotifyCallback
(
MessageNotifyCallback
);
...
...
sky/engine/core/script/dart_controller.h
浏览文件 @
1f9858cb
...
...
@@ -31,7 +31,7 @@ class DartController {
static
void
InitVM
();
void
RunFromLibrary
(
const
S
tring
&
name
,
void
RunFromLibrary
(
const
std
::
s
tring
&
name
,
DartLibraryProvider
*
library_provider
);
void
RunFromPrecompiledSnapshot
();
void
RunFromSnapshot
(
mojo
::
ScopedDataPipeConsumerHandle
snapshot
);
...
...
@@ -43,7 +43,7 @@ class DartController {
DOMDartState
*
dart_state
()
const
{
return
dom_dart_state_
.
get
();
}
private:
void
DidLoadMainLibrary
(
S
tring
url
);
void
DidLoadMainLibrary
(
std
::
s
tring
url
);
void
DidLoadSnapshot
();
std
::
unique_ptr
<
DOMDartState
>
dom_dart_state_
;
...
...
sky/engine/core/script/dart_service_isolate.cc
浏览文件 @
1f9858cb
...
...
@@ -8,7 +8,6 @@
#include "dart/runtime/include/dart_api.h"
#include "sky/engine/tonic/dart_error.h"
#include "sky/engine/tonic/dart_library_natives.h"
#include "sky/engine/tonic/dart_string.h"
#define RETURN_ERROR_HANDLE(handle) \
if (Dart_IsError(handle)) { \
...
...
sky/engine/core/script/dom_dart_state.cc
浏览文件 @
1f9858cb
...
...
@@ -9,7 +9,7 @@
namespace
blink
{
DOMDartState
::
DOMDartState
(
std
::
unique_ptr
<
Window
>
window
,
const
S
tring
&
url
)
DOMDartState
::
DOMDartState
(
std
::
unique_ptr
<
Window
>
window
,
const
std
::
s
tring
&
url
)
:
window_
(
std
::
move
(
window
)),
url_
(
url
)
{
}
...
...
sky/engine/core/script/dom_dart_state.h
浏览文件 @
1f9858cb
...
...
@@ -17,13 +17,13 @@ class Window;
class
DOMDartState
:
public
DartState
{
public:
DOMDartState
(
std
::
unique_ptr
<
Window
>
window
,
const
S
tring
&
url
);
DOMDartState
(
std
::
unique_ptr
<
Window
>
window
,
const
std
::
s
tring
&
url
);
~
DOMDartState
()
override
;
virtual
void
DidSetIsolate
();
Window
*
window
()
const
{
return
window_
.
get
();
}
const
S
tring
&
url
()
const
{
return
url_
;
}
const
std
::
s
tring
&
url
()
const
{
return
url_
;
}
static
DOMDartState
*
Current
();
...
...
@@ -37,7 +37,7 @@ class DOMDartState : public DartState {
private:
std
::
unique_ptr
<
Window
>
window_
;
S
tring
url_
;
std
::
s
tring
url_
;
DartPersistentValue
x_handle_
;
DartPersistentValue
y_handle_
;
...
...
sky/engine/core/text/ParagraphBuilder.cpp
浏览文件 @
1f9858cb
...
...
@@ -136,7 +136,7 @@ ParagraphBuilder::~ParagraphBuilder()
{
}
void
ParagraphBuilder
::
pushStyle
(
Int32List
&
encoded
,
const
S
tring
&
fontFamily
,
double
fontSize
,
double
letterSpacing
,
double
wordSpacing
,
double
lineHeight
)
void
ParagraphBuilder
::
pushStyle
(
Int32List
&
encoded
,
const
std
::
s
tring
&
fontFamily
,
double
fontSize
,
double
letterSpacing
,
double
wordSpacing
,
double
lineHeight
)
{
DCHECK
(
encoded
.
num_elements
()
==
7
);
RefPtr
<
RenderStyle
>
style
=
RenderStyle
::
create
();
...
...
@@ -169,7 +169,7 @@ void ParagraphBuilder::pushStyle(Int32List& encoded, const String& fontFamily, d
if
(
mask
&
tsFontFamilyMask
)
{
FontFamily
family
;
family
.
setFamily
(
fontFamily
);
family
.
setFamily
(
String
::
fromUTF8
(
fontFamily
)
);
fontDescription
.
setFamily
(
family
);
}
...
...
@@ -207,11 +207,11 @@ void ParagraphBuilder::pop()
m_currentRenderObject
=
m_currentRenderObject
->
parent
();
}
void
ParagraphBuilder
::
addText
(
const
S
tring
&
text
)
void
ParagraphBuilder
::
addText
(
const
std
::
s
tring
&
text
)
{
if
(
!
m_currentRenderObject
)
return
;
RenderText
*
renderText
=
new
RenderText
(
text
.
impl
());
RenderText
*
renderText
=
new
RenderText
(
String
::
fromUTF8
(
text
)
.
impl
());
RefPtr
<
RenderStyle
>
style
=
RenderStyle
::
create
();
style
->
inheritFrom
(
m_currentRenderObject
->
style
());
renderText
->
setStyle
(
style
.
release
());
...
...
sky/engine/core/text/ParagraphBuilder.h
浏览文件 @
1f9858cb
...
...
@@ -23,10 +23,10 @@ public:
~
ParagraphBuilder
()
override
;
void
pushStyle
(
Int32List
&
encoded
,
const
S
tring
&
fontFamily
,
double
fontSize
,
double
letterSpacing
,
double
wordSpacing
,
double
lineHeight
);
void
pushStyle
(
Int32List
&
encoded
,
const
std
::
s
tring
&
fontFamily
,
double
fontSize
,
double
letterSpacing
,
double
wordSpacing
,
double
lineHeight
);
void
pop
();
void
addText
(
const
S
tring
&
text
);
void
addText
(
const
std
::
s
tring
&
text
);
PassRefPtr
<
Paragraph
>
build
(
Int32List
&
encoded
,
double
lineHeight
);
...
...
sky/engine/core/window/window.cc
浏览文件 @
1f9858cb
...
...
@@ -20,8 +20,7 @@ void ScheduleFrame(Dart_NativeArguments args) {
void
Render
(
Dart_NativeArguments
args
)
{
Dart_Handle
exception
=
nullptr
;
Scene
*
scene
=
DartConverter
<
Scene
*>::
FromArgumentsWithNullCheck
(
args
,
1
,
exception
);
Scene
*
scene
=
DartConverter
<
Scene
*>::
FromArguments
(
args
,
1
,
exception
);
if
(
exception
)
{
Dart_ThrowException
(
exception
);
return
;
...
...
sky/engine/public/sky/sky_headless.cc
浏览文件 @
1f9858cb
...
...
@@ -17,7 +17,7 @@ SkyHeadless::SkyHeadless(Client* client) : client_(client) {
SkyHeadless
::~
SkyHeadless
()
{
}
void
SkyHeadless
::
Init
(
const
S
tring
&
name
)
{
void
SkyHeadless
::
Init
(
const
std
::
s
tring
&
name
)
{
DCHECK
(
!
dart_controller_
);
dart_controller_
=
WTF
::
MakeUnique
<
DartController
>
();
...
...
sky/engine/public/sky/sky_headless.h
浏览文件 @
1f9858cb
...
...
@@ -32,7 +32,7 @@ class SkyHeadless : public WindowClient {
SkyHeadless
(
Client
*
client
);
~
SkyHeadless
();
void
Init
(
const
S
tring
&
name
);
void
Init
(
const
std
::
s
tring
&
name
);
void
RunFromSnapshotBuffer
(
const
uint8_t
*
buffer
,
size_t
size
);
private:
...
...
sky/engine/public/sky/sky_view.cc
浏览文件 @
1f9858cb
...
...
@@ -51,7 +51,7 @@ void SkyView::PopRoute() {
GetWindow
()
->
PopRoute
();
}
void
SkyView
::
CreateView
(
const
S
tring
&
name
)
{
void
SkyView
::
CreateView
(
const
std
::
s
tring
&
name
)
{
DCHECK
(
!
dart_controller_
);
dart_controller_
=
WTF
::
MakeUnique
<
DartController
>
();
...
...
@@ -67,7 +67,7 @@ void SkyView::CreateView(const String& name) {
GetWindow
()
->
UpdateLocale
(
language_code_
,
country_code_
);
}
void
SkyView
::
RunFromLibrary
(
const
WebS
tring
&
name
,
void
SkyView
::
RunFromLibrary
(
const
std
::
s
tring
&
name
,
DartLibraryProvider
*
library_provider
)
{
dart_controller_
->
RunFromLibrary
(
name
,
library_provider
);
}
...
...
@@ -76,7 +76,7 @@ void SkyView::RunFromPrecompiledSnapshot() {
dart_controller_
->
RunFromPrecompiledSnapshot
();
}
void
SkyView
::
RunFromSnapshot
(
const
WebS
tring
&
name
,
void
SkyView
::
RunFromSnapshot
(
const
std
::
s
tring
&
name
,
mojo
::
ScopedDataPipeConsumerHandle
snapshot
)
{
dart_controller_
->
RunFromSnapshot
(
snapshot
.
Pass
());
}
...
...
sky/engine/public/sky/sky_view.h
浏览文件 @
1f9858cb
...
...
@@ -47,12 +47,12 @@ class SkyView : public WindowClient {
std
::
unique_ptr
<
flow
::
LayerTree
>
BeginFrame
(
base
::
TimeTicks
frame_time
);
void
CreateView
(
const
S
tring
&
name
);
void
CreateView
(
const
std
::
s
tring
&
name
);
void
RunFromLibrary
(
const
WebS
tring
&
name
,
void
RunFromLibrary
(
const
std
::
s
tring
&
name
,
DartLibraryProvider
*
library_provider
);
void
RunFromPrecompiledSnapshot
();
void
RunFromSnapshot
(
const
WebS
tring
&
name
,
void
RunFromSnapshot
(
const
std
::
s
tring
&
name
,
mojo
::
ScopedDataPipeConsumerHandle
snapshot
);
void
HandlePointerPacket
(
const
pointer
::
PointerPacketPtr
&
packet
);
...
...
sky/engine/tonic/BUILD.gn
浏览文件 @
1f9858cb
...
...
@@ -41,10 +41,6 @@ source_set("tonic") {
"dart_snapshot_loader.h",
"dart_state.cc",
"dart_state.h",
"dart_string.cc",
"dart_string.h",
"dart_string_cache.cc",
"dart_string_cache.h",
"dart_timer_heap.cc",
"dart_timer_heap.h",
"dart_wrappable.cc",
...
...
sky/engine/tonic/dart_converter.h
浏览文件 @
1f9858cb
...
...
@@ -6,11 +6,8 @@
#define SKY_ENGINE_TONIC_DART_CONVERTER_H_
#include <string>
#include <vector>
#include "sky/engine/tonic/dart_state.h"
#include "sky/engine/tonic/dart_string.h"
#include "sky/engine/tonic/dart_string_cache.h"
#include "sky/engine/wtf/text/StringUTF8Adaptor.h"
#include "sky/engine/wtf/text/WTFString.h"
namespace
blink
{
...
...
@@ -190,79 +187,28 @@ struct DartConverterEnum {
// Strings
template
<
>
struct
DartConverter
<
String
>
{
static
Dart_Handle
ToDart
(
DartState
*
state
,
const
String
&
val
)
{
if
(
val
.
isEmpty
())
return
Dart_EmptyString
();
return
Dart_HandleFromWeakPersistent
(
state
->
string_cache
().
Get
(
val
.
impl
()));
struct
DartConverter
<
std
::
string
>
{
static
Dart_Handle
ToDart
(
const
std
::
string
&
val
)
{
return
Dart_NewStringFromUTF8
(
reinterpret_cast
<
const
uint8_t
*>
(
val
.
data
()),
val
.
length
());
}
static
void
SetReturnValue
(
Dart_NativeArguments
args
,
const
String
&
val
,
bool
auto_scope
=
true
)
{
// TODO(abarth): What should we do with auto_scope?
if
(
val
.
isEmpty
())
{
Dart_SetReturnValue
(
args
,
Dart_EmptyString
());
return
;
}
DartState
*
state
=
DartState
::
Current
();
Dart_SetWeakHandleReturnValue
(
args
,
state
->
string_cache
().
Get
(
val
.
impl
()));
}
static
void
SetReturnValueWithNullCheck
(
Dart_NativeArguments
args
,
const
String
&
val
,
bool
auto_scope
=
true
)
{
if
(
val
.
isNull
())
Dart_SetReturnValue
(
args
,
Dart_Null
());
else
SetReturnValue
(
args
,
val
,
auto_scope
);
}
static
String
FromDart
(
Dart_Handle
handle
)
{
intptr_t
char_size
=
0
;
intptr_t
length
=
0
;
void
*
peer
=
nullptr
;
Dart_Handle
result
=
Dart_StringGetProperties
(
handle
,
&
char_size
,
&
length
,
&
peer
);
if
(
peer
)
return
String
(
static_cast
<
StringImpl
*>
(
peer
));
if
(
Dart_IsError
(
result
))
return
String
();
return
ExternalizeDartString
(
handle
);
}
static
String
FromArguments
(
Dart_NativeArguments
args
,
int
index
,
Dart_Handle
&
exception
)
{
// TODO(abarth): What should we do with auto_scope?
void
*
peer
=
nullptr
;
Dart_Handle
handle
=
Dart_GetNativeStringArgument
(
args
,
index
,
&
peer
);
if
(
peer
)
return
reinterpret_cast
<
StringImpl
*>
(
peer
);
if
(
Dart_IsError
(
handle
))
return
String
();
return
ExternalizeDartString
(
handle
);
const
std
::
string
&
val
)
{
Dart_SetReturnValue
(
args
,
ToDart
(
val
));
}
static
String
FromArgumentsWithNullCheck
(
Dart_NativeArguments
args
,
int
index
,
Dart_Handle
&
exception
,
bool
auto_scope
=
true
)
{
// TODO(abarth): What should we do with auto_scope?
void
*
peer
=
nullptr
;
Dart_Handle
handle
=
Dart_GetNativeStringArgument
(
args
,
index
,
&
peer
);
if
(
peer
)
return
reinterpret_cast
<
StringImpl
*>
(
peer
);
if
(
Dart_IsError
(
handle
)
||
Dart_IsNull
(
handle
))
return
String
();
return
ExternalizeDartString
(
handle
);
static
std
::
string
FromDart
(
Dart_Handle
handle
)
{
uint8_t
*
data
=
nullptr
;
intptr_t
length
=
0
;;
Dart_StringToUTF8
(
handle
,
&
data
,
&
length
);
return
std
::
string
(
reinterpret_cast
<
char
*>
(
data
),
length
);
}
};
template
<
>
struct
DartConverter
<
AtomicString
>
{
static
Dart_Handle
ToDart
(
DartState
*
state
,
const
AtomicString
&
val
)
{
return
DartConverter
<
String
>::
ToDart
(
state
,
val
.
string
(
));
static
std
::
string
FromArguments
(
Dart_NativeArguments
args
,
int
index
,
Dart_Handle
&
exception
)
{
return
FromDart
(
Dart_GetNativeArgument
(
args
,
index
));
}
};
...
...
@@ -293,11 +239,11 @@ struct DartConverter<const char*> {
// Collections
template
<
typename
T
>
struct
DartConverter
<
V
ector
<
T
>>
{
struct
DartConverter
<
std
::
v
ector
<
T
>>
{
using
ValueType
=
typename
DartConverterTypes
<
T
>::
ValueType
;
using
ConverterType
=
typename
DartConverterTypes
<
T
>::
ConverterType
;
static
Dart_Handle
ToDart
(
const
V
ector
<
ValueType
>&
val
)
{
static
Dart_Handle
ToDart
(
const
std
::
v
ector
<
ValueType
>&
val
)
{
Dart_Handle
list
=
Dart_NewList
(
val
.
size
());
if
(
Dart_IsError
(
list
))
return
list
;
...
...
@@ -311,35 +257,35 @@ struct DartConverter<Vector<T>> {
return
list
;
}
static
Vector
<
ValueType
>
FromDart
(
Dart_Handle
handle
)
{
Vector
<
ValueType
>
result
;
static
std
::
vector
<
ValueType
>
FromDart
(
Dart_Handle
handle
)
{
std
::
vector
<
ValueType
>
result
;
if
(
!
Dart_IsList
(
handle
))
return
result
;
intptr_t
length
=
0
;
Dart_ListLength
(
handle
,
&
length
);
if
(
length
==
0
)
{
if
(
length
==
0
)
return
result
;
}
result
.
reserve
Capacity
(
length
);
result
.
reserve
(
length
);
V
ector
<
Dart_Handle
>
items
(
length
);
std
::
v
ector
<
Dart_Handle
>
items
(
length
);
Dart_Handle
items_result
=
Dart_ListGetRange
(
handle
,
0
,
length
,
items
.
data
());
DCHECK
(
!
Dart_IsError
(
items_result
));
for
(
intptr_t
i
=
0
;
i
<
length
;
++
i
)
{
DCHECK
(
items
[
i
]);
result
.
append
(
DartConverter
<
ConverterType
>::
FromDart
(
items
[
i
]));
result
.
push_back
(
DartConverter
<
ConverterType
>::
FromDart
(
items
[
i
]));
}
return
result
;
}
static
V
ector
<
ValueType
>
FromArguments
(
Dart_NativeArguments
args
,
static
std
::
v
ector
<
ValueType
>
FromArguments
(
Dart_NativeArguments
args
,
int
index
,
Dart_Handle
&
exception
)
{
// TODO(abarth): What should we do with auto_scope?
return
FromDart
(
Dart_GetNativeArgument
(
args
,
index
));
}
};
...
...
@@ -370,27 +316,7 @@ struct DartConverter<Dart_Handle> {
};
////////////////////////////////////////////////////////////////////////////////
// Convience wrappers for commonly used conversions
inline
Dart_Handle
StringToDart
(
DartState
*
state
,
const
String
&
val
)
{
return
DartConverter
<
String
>::
ToDart
(
state
,
val
);
}
inline
Dart_Handle
StringToDart
(
DartState
*
state
,
const
AtomicString
&
val
)
{
return
DartConverter
<
AtomicString
>::
ToDart
(
state
,
val
);
}
inline
String
StringFromDart
(
Dart_Handle
handle
)
{
return
DartConverter
<
String
>::
FromDart
(
handle
);
}
////////////////////////////////////////////////////////////////////////////////
// Convience wrappers using type inference for ease of code generation
template
<
typename
T
>
inline
Dart_Handle
VectorToDart
(
const
Vector
<
T
>&
val
)
{
return
DartConverter
<
Vector
<
T
>>::
ToDart
(
val
);
}
// Convience wrappers using type inference
template
<
typename
T
>
Dart_Handle
ToDart
(
const
T
&
object
)
{
...
...
@@ -398,20 +324,16 @@ Dart_Handle ToDart(const T& object) {
}
////////////////////////////////////////////////////////////////////////////////
// std::string support
(slower, but more convienent for some clients)
// std::string support
inline
Dart_Handle
StdStringToDart
(
const
std
::
string
&
val
)
{
return
Dart_NewStringFromUTF8
(
reinterpret_cast
<
const
uint8_t
*>
(
val
.
data
()),
val
.
length
());
return
DartConverter
<
std
::
string
>::
ToDart
(
val
);
}
inline
std
::
string
StdStringFromDart
(
Dart_Handle
handle
)
{
String
string
=
StringFromDart
(
handle
);
StringUTF8Adaptor
utf8
(
string
);
return
std
::
string
(
utf8
.
data
(),
utf8
.
length
());
return
DartConverter
<
std
::
string
>::
FromDart
(
handle
);
}
// Alias Dart_NewStringFromCString for less typing.
inline
Dart_Handle
ToDart
(
const
char
*
val
)
{
return
Dart_NewStringFromCString
(
val
);
...
...
sky/engine/tonic/dart_invoke.cc
浏览文件 @
1f9858cb
...
...
@@ -19,20 +19,20 @@ bool DartInvokeField(Dart_Handle target,
target
,
field
,
args
.
size
(),
const_cast
<
Dart_Handle
*>
(
args
.
begin
())));
}
bool
DartInvokeAppClosure
(
Dart_Handle
closure
,
int
number_of_arguments
,
Dart_Handle
*
arguments
)
{
TRACE_EVENT0
(
"flutter"
,
"DartInvoke::DartInvokeAppClosure"
);
Dart_Handle
handle
=
Dart_InvokeClosure
(
closure
,
number_of_arguments
,
arguments
);
bool
result
=
LogIfError
(
handle
);
void
DartInvoke
(
Dart_Handle
closure
,
std
::
initializer_list
<
Dart_Handle
>
args
)
{
TRACE_EVENT0
(
"flutter"
,
"DartInvoke"
);
int
argc
=
args
.
size
();
Dart_Handle
*
argv
=
const_cast
<
Dart_Handle
*>
(
args
.
begin
()
);
Dart_Handle
handle
=
Dart_InvokeClosure
(
closure
,
argc
,
argv
);
LogIfError
(
handle
);
CHECK
(
!
Dart_IsCompilationError
(
handle
));
return
result
;
}
bool
DartInvokeAppClosure
(
Dart_Handle
closure
,
std
::
initializer_list
<
Dart_Handle
>
args
)
{
return
DartInvokeAppClosure
(
closure
,
args
.
size
(),
const_cast
<
Dart_Handle
*>
(
args
.
begin
()));
void
DartInvokeVoid
(
Dart_Handle
closure
)
{
TRACE_EVENT0
(
"flutter"
,
"DartInvokeVoid"
);
Dart_Handle
handle
=
Dart_InvokeClosure
(
closure
,
0
,
nullptr
);
LogIfError
(
handle
);
CHECK
(
!
Dart_IsCompilationError
(
handle
));
}
}
// namespace blink
sky/engine/tonic/dart_invoke.h
浏览文件 @
1f9858cb
...
...
@@ -15,12 +15,8 @@ bool DartInvokeField(Dart_Handle target,
const
char
*
name
,
std
::
initializer_list
<
Dart_Handle
>
args
);
bool
DartInvokeAppClosure
(
Dart_Handle
closure
,
int
number_of_arguments
,
Dart_Handle
*
arguments
);
bool
DartInvokeAppClosure
(
Dart_Handle
closure
,
std
::
initializer_list
<
Dart_Handle
>
args
);
void
DartInvoke
(
Dart_Handle
closure
,
std
::
initializer_list
<
Dart_Handle
>
args
);
void
DartInvokeVoid
(
Dart_Handle
closure
);
}
// namespace blink
...
...
sky/engine/tonic/dart_library_loader.cc
浏览文件 @
1f9858cb
...
...
@@ -56,7 +56,7 @@ class DartLibraryLoader::Job : public DartDependency,
loader_
->
DidFailJob
(
this
);
return
;
}
drainer_
=
adoptPtr
(
new
DataPipeDrainer
(
this
,
pipe
.
Pass
()));
drainer_
=
std
::
unique_ptr
<
DataPipeDrainer
>
(
new
DataPipeDrainer
(
this
,
pipe
.
Pass
()));
}
// DataPipeDrainer::Client
...
...
@@ -67,7 +67,7 @@ class DartLibraryLoader::Job : public DartDependency,
// Subclasses must implement OnDataComplete.
std
::
string
name_
;
OwnP
tr
<
DataPipeDrainer
>
drainer_
;
std
::
unique_p
tr
<
DataPipeDrainer
>
drainer_
;
base
::
WeakPtrFactory
<
Job
>
weak_factory_
;
};
...
...
@@ -150,7 +150,7 @@ class DartLibraryLoader::WatcherSignaler {
WatcherSignaler
(
DartLibraryLoader
&
loader
,
DartDependency
*
resolved_dependency
)
:
loader_
(
loader
),
catcher_
(
adoptPtr
(
new
DartDependencyCatcher
(
loader
)
)),
catcher_
(
new
DartDependencyCatcher
(
loader
)),
resolved_dependency_
(
resolved_dependency
)
{}
~
WatcherSignaler
()
{
...
...
@@ -164,7 +164,7 @@ class DartLibraryLoader::WatcherSignaler {
// Notice that we remove the dependency catcher and extract all the
// callbacks before running any of them. We don't want to be re-entered
// below the callbacks and end up in an inconsistent state.
catcher_
.
clear
()
;
catcher_
=
nullptr
;
std
::
vector
<
base
::
Closure
>
callbacks
;
for
(
const
auto
&
watcher
:
completed_watchers
)
{
callbacks
.
push_back
(
watcher
->
callback
());
...
...
@@ -178,7 +178,7 @@ class DartLibraryLoader::WatcherSignaler {
private:
DartLibraryLoader
&
loader_
;
OwnP
tr
<
DartDependencyCatcher
>
catcher_
;
std
::
unique_p
tr
<
DartDependencyCatcher
>
catcher_
;
DartDependency
*
resolved_dependency_
;
};
...
...
sky/engine/tonic/dart_microtask_queue.cc
浏览文件 @
1f9858cb
...
...
@@ -36,7 +36,7 @@ void DartMicrotaskQueue::RunMicrotasks() {
if
(
!
dart_state
.
get
())
continue
;
DartState
::
Scope
dart_scope
(
dart_state
.
get
());
DartInvoke
AppClosure
(
callback
.
value
(),
0
,
nullptr
);
DartInvoke
Void
(
callback
.
value
()
);
}
}
}
...
...
sky/engine/tonic/dart_state.cc
浏览文件 @
1f9858cb
...
...
@@ -8,7 +8,6 @@
#include "sky/engine/tonic/dart_converter.h"
#include "sky/engine/tonic/dart_exception_factory.h"
#include "sky/engine/tonic/dart_library_loader.h"
#include "sky/engine/tonic/dart_string_cache.h"
#include "sky/engine/tonic/dart_timer_heap.h"
namespace
blink
{
...
...
@@ -22,14 +21,9 @@ DartState::Scope::~Scope() {
DartState
::
DartState
()
:
isolate_
(
NULL
),
class_library_
(
std
::
unique_ptr
<
DartClassLibrary
>
(
new
DartClassLibrary
)),
exception_factory_
(
std
::
unique_ptr
<
DartExceptionFactory
>
(
new
DartExceptionFactory
(
this
))),
library_loader_
(
std
::
unique_ptr
<
DartLibraryLoader
>
(
new
DartLibraryLoader
(
this
))),
string_cache_
(
std
::
unique_ptr
<
DartStringCache
>
(
new
DartStringCache
)),
timer_heap_
(
std
::
unique_ptr
<
DartTimerHeap
>
(
new
DartTimerHeap
())),
exception_factory_
(
new
DartExceptionFactory
(
this
)),
library_loader_
(
new
DartLibraryLoader
(
this
)),
timer_heap_
(
new
DartTimerHeap
()),
weak_factory_
(
this
)
{
}
...
...
sky/engine/tonic/dart_state.h
浏览文件 @
1f9858cb
...
...
@@ -17,7 +17,6 @@ namespace blink {
class
DartClassLibrary
;
class
DartExceptionFactory
;
class
DartLibraryLoader
;
class
DartStringCache
;
class
DartTimerHeap
;
// DartState represents the state associated with a given Dart isolate. The
...
...
@@ -51,7 +50,6 @@ class DartState : public base::SupportsUserData {
DartClassLibrary
&
class_library
()
{
return
*
class_library_
;
}
DartExceptionFactory
&
exception_factory
()
{
return
*
exception_factory_
;
}
DartLibraryLoader
&
library_loader
()
{
return
*
library_loader_
;
}
DartStringCache
&
string_cache
()
{
return
*
string_cache_
;
}
DartTimerHeap
&
timer_heap
()
{
return
*
timer_heap_
;
}
Dart_Handle
index_handle
()
{
return
index_handle_
.
value
();
}
...
...
@@ -63,7 +61,6 @@ class DartState : public base::SupportsUserData {
std
::
unique_ptr
<
DartClassLibrary
>
class_library_
;
std
::
unique_ptr
<
DartExceptionFactory
>
exception_factory_
;
std
::
unique_ptr
<
DartLibraryLoader
>
library_loader_
;
std
::
unique_ptr
<
DartStringCache
>
string_cache_
;
std
::
unique_ptr
<
DartTimerHeap
>
timer_heap_
;
DartPersistentValue
index_handle_
;
...
...
sky/engine/tonic/dart_string.cc
已删除
100644 → 0
浏览文件 @
efa936c4
// Copyright 2015 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/tonic/dart_string.h"
#include "base/logging.h"
namespace
blink
{
namespace
{
void
FinalizeString
(
void
*
string_impl
)
{
DCHECK
(
string_impl
);
reinterpret_cast
<
StringImpl
*>
(
string_impl
)
->
deref
();
}
template
<
typename
CharType
>
String
Externalize
(
Dart_Handle
handle
,
intptr_t
length
)
{
if
(
!
length
)
return
StringImpl
::
empty
();
CharType
*
buffer
=
nullptr
;
RefPtr
<
StringImpl
>
string_impl
=
StringImpl
::
createUninitialized
(
length
,
buffer
);
string_impl
->
ref
();
// Balanced in FinalizeString.
Dart_Handle
result
=
Dart_MakeExternalString
(
handle
,
buffer
,
length
*
sizeof
(
CharType
),
string_impl
.
get
(),
FinalizeString
);
DCHECK
(
!
Dart_IsError
(
result
));
return
String
(
string_impl
.
release
());
}
}
// namespace
Dart_Handle
CreateDartString
(
StringImpl
*
string_impl
)
{
if
(
!
string_impl
)
return
Dart_EmptyString
();
string_impl
->
ref
();
// Balanced in FinalizeString.
if
(
string_impl
->
is8Bit
())
{
return
Dart_NewExternalLatin1String
(
string_impl
->
characters8
(),
string_impl
->
length
(),
string_impl
,
FinalizeString
);
}
else
{
return
Dart_NewExternalUTF16String
(
string_impl
->
characters16
(),
string_impl
->
length
(),
string_impl
,
FinalizeString
);
}
}
String
ExternalizeDartString
(
Dart_Handle
handle
)
{
DCHECK
(
Dart_IsString
(
handle
));
DCHECK
(
!
Dart_IsExternalString
(
handle
));
bool
is_latin1
=
Dart_IsStringLatin1
(
handle
);
intptr_t
length
;
Dart_StringLength
(
handle
,
&
length
);
if
(
is_latin1
)
return
Externalize
<
LChar
>
(
handle
,
length
);
return
Externalize
<
UChar
>
(
handle
,
length
);
}
}
// namespace blink
sky/engine/tonic/dart_string.h
已删除
100644 → 0
浏览文件 @
efa936c4
// Copyright 2015 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_ENGINE_TONIC_DART_STRING_H_
#define SKY_ENGINE_TONIC_DART_STRING_H_
#include "base/logging.h"
#include "dart/runtime/include/dart_api.h"
#include "sky/engine/wtf/text/WTFString.h"
namespace
blink
{
Dart_Handle
CreateDartString
(
StringImpl
*
string_impl
);
String
ExternalizeDartString
(
Dart_Handle
handle
);
}
// namespace blink
#endif // SKY_ENGINE_TONIC_DART_STRING_H_
sky/engine/tonic/dart_string_cache.cc
已删除
100644 → 0
浏览文件 @
efa936c4
// 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/tonic/dart_string_cache.h"
#include "sky/engine/tonic/dart_state.h"
#include "sky/engine/tonic/dart_string.h"
namespace
blink
{
DartStringCache
::
DartStringCache
()
:
last_dart_string_
(
nullptr
)
{
}
DartStringCache
::~
DartStringCache
()
{
}
Dart_WeakPersistentHandle
DartStringCache
::
GetSlow
(
StringImpl
*
string_impl
,
bool
auto_scope
)
{
if
(
Dart_WeakPersistentHandle
string
=
cache_
.
get
(
string_impl
))
{
last_dart_string_
=
string
;
last_string_impl_
=
string_impl
;
return
string
;
}
if
(
!
auto_scope
)
Dart_EnterScope
();
Dart_Handle
string
=
CreateDartString
(
string_impl
);
DCHECK
(
!
Dart_IsError
(
string
));
intptr_t
size_in_bytes
=
string_impl
->
sizeInBytes
();
Dart_WeakPersistentHandle
wrapper
=
Dart_NewWeakPersistentHandle
(
string
,
string_impl
,
size_in_bytes
,
FinalizeCacheEntry
);
string_impl
->
ref
();
// Balanced in FinalizeCacheEntry.
cache_
.
set
(
string_impl
,
wrapper
);
last_dart_string_
=
wrapper
;
last_string_impl_
=
string_impl
;
if
(
!
auto_scope
)
Dart_ExitScope
();
return
wrapper
;
}
void
DartStringCache
::
FinalizeCacheEntry
(
void
*
isolate_callback_data
,
Dart_WeakPersistentHandle
handle
,
void
*
peer
)
{
DartState
*
state
=
reinterpret_cast
<
DartState
*>
(
isolate_callback_data
);
StringImpl
*
string_impl
=
reinterpret_cast
<
StringImpl
*>
(
peer
);
DartStringCache
&
cache
=
state
->
string_cache
();
Dart_WeakPersistentHandle
cached_handle
=
cache
.
cache_
.
take
(
string_impl
);
ASSERT_UNUSED
(
cached_handle
,
handle
==
cached_handle
);
if
(
cache
.
last_dart_string_
==
handle
)
{
cache
.
last_dart_string_
=
nullptr
;
cache
.
last_string_impl_
=
nullptr
;
}
string_impl
->
deref
();
}
}
// namespace blink
sky/engine/tonic/dart_string_cache.h
已删除
100644 → 0
浏览文件 @
efa936c4
// Copyright 2015 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_ENGINE_TONIC_DART_STRING_CACHE_H_
#define SKY_ENGINE_TONIC_DART_STRING_CACHE_H_
#include "base/logging.h"
#include "dart/runtime/include/dart_api.h"
#include "sky/engine/wtf/HashMap.h"
#include "sky/engine/wtf/RefPtr.h"
#include "sky/engine/wtf/text/StringHash.h"
#include "sky/engine/wtf/text/StringImpl.h"
namespace
blink
{
// DartStringCache maintains a mapping between WTF Strings and Dart strings.
// When you create a Dart string from a WTF String, the underlying character
// data is shared between the two systems.
class
DartStringCache
{
public:
DartStringCache
();
~
DartStringCache
();
Dart_WeakPersistentHandle
Get
(
StringImpl
*
string_impl
,
bool
auto_scope
=
true
)
{
DCHECK
(
string_impl
);
if
(
last_string_impl_
.
get
()
==
string_impl
)
return
last_dart_string_
;
return
GetSlow
(
string_impl
,
auto_scope
);
}
private:
Dart_WeakPersistentHandle
GetSlow
(
StringImpl
*
string_impl
,
bool
auto_scope
);
static
void
FinalizeCacheEntry
(
void
*
,
Dart_WeakPersistentHandle
,
void
*
peer
);
typedef
HashMap
<
StringImpl
*
,
Dart_WeakPersistentHandle
>
StringCache
;
StringCache
cache_
;
Dart_WeakPersistentHandle
last_dart_string_
;
RefPtr
<
StringImpl
>
last_string_impl_
;
DISALLOW_COPY_AND_ASSIGN
(
DartStringCache
);
};
}
// namespace blink
#endif // SKY_ENGINE_TONIC_DART_STRING_CACHE_H_
sky/engine/tonic/dart_timer_heap.cc
浏览文件 @
1f9858cb
...
...
@@ -41,13 +41,12 @@ void DartTimerHeap::Run(int id) {
auto
it
=
heap_
.
find
(
id
);
if
(
it
==
heap_
.
end
())
return
;
std
::
unique_ptr
<
Task
>
task
=
std
::
unique_ptr
<
Task
>
(
it
->
second
.
release
()
);
std
::
unique_ptr
<
Task
>
task
=
std
::
move
(
it
->
second
);
heap_
.
erase
(
it
);
if
(
!
task
->
closure
.
dart_state
())
return
;
DartIsolateScope
scope
(
task
->
closure
.
dart_state
()
->
isolate
());
DartApiScope
api_scope
;
DartInvokeAppClosure
(
task
->
closure
.
value
(),
0
,
nullptr
);
DartState
::
Scope
dart_scope
(
task
->
closure
.
dart_state
().
get
());
DartInvokeVoid
(
task
->
closure
.
value
());
if
(
task
->
repeating
)
Schedule
(
id
,
std
::
move
(
task
));
}
...
...
sky/engine/tonic/dart_wrappable.cc
浏览文件 @
1f9858cb
...
...
@@ -105,23 +105,4 @@ DartWrappable* DartConverterWrappable::FromArguments(Dart_NativeArguments args,
native_fields
[
DartWrappable
::
kPeerIndex
]);
}
DartWrappable
*
DartConverterWrappable
::
FromArgumentsWithNullCheck
(
Dart_NativeArguments
args
,
int
index
,
Dart_Handle
&
exception
)
{
Dart_Handle
handle
=
Dart_GetNativeArgument
(
args
,
index
);
if
(
Dart_IsNull
(
handle
))
{
DartState
*
state
=
DartState
::
Current
();
exception
=
state
->
exception_factory
().
CreateNullArgumentException
(
index
);
return
nullptr
;
}
intptr_t
native_fields
[
DartWrappable
::
kNumberOfNativeFields
];
Dart_Handle
result
=
Dart_GetNativeFieldsOfArgument
(
args
,
index
,
DartWrappable
::
kNumberOfNativeFields
,
native_fields
);
if
(
Dart_IsError
(
result
))
{
exception
=
Dart_NewStringFromCString
(
DartError
::
kInvalidArgument
);
return
nullptr
;
}
return
reinterpret_cast
<
DartWrappable
*>
(
native_fields
[
DartWrappable
::
kPeerIndex
]);
}
}
// namespace blink
sky/engine/tonic/dart_wrappable.h
浏览文件 @
1f9858cb
...
...
@@ -12,6 +12,8 @@
#include "sky/engine/tonic/dart_error.h"
#include "sky/engine/tonic/dart_state.h"
#include "sky/engine/tonic/dart_wrapper_info.h"
#include "sky/engine/wtf/PassRefPtr.h"
#include "sky/engine/wtf/RefPtr.h"
namespace
blink
{
class
DartGCVisitor
;
...
...
@@ -87,9 +89,6 @@ struct DartConverterWrappable {
static
DartWrappable
*
FromArguments
(
Dart_NativeArguments
args
,
int
index
,
Dart_Handle
&
exception
);
static
DartWrappable
*
FromArgumentsWithNullCheck
(
Dart_NativeArguments
args
,
int
index
,
Dart_Handle
&
exception
);
};
template
<
typename
T
>
...
...
@@ -129,15 +128,6 @@ struct DartConverter<
return
static_cast
<
T
*>
(
DartConverterWrappable
::
FromArguments
(
args
,
index
,
exception
));
}
static
T
*
FromArgumentsWithNullCheck
(
Dart_NativeArguments
args
,
int
index
,
Dart_Handle
&
exception
,
bool
auto_scope
=
true
)
{
// TODO(abarth): We're missing a type check.
return
static_cast
<
T
*>
(
DartConverterWrappable
::
FromArgumentsWithNullCheck
(
args
,
index
,
exception
));
}
};
template
<
typename
T
>
...
...
sky/engine/tonic/float32_list.cc
浏览文件 @
1f9858cb
...
...
@@ -19,7 +19,7 @@ Float32List::Float32List(Dart_Handle list)
Dart_TypedDataAcquireData
(
list
,
&
type
,
reinterpret_cast
<
void
**>
(
&
data_
),
&
num_elements_
);
DCHECK
(
!
LogIfError
(
list
));
ASSERT
(
type
==
Dart_TypedData_kFloat32
);
DCHECK
(
type
==
Dart_TypedData_kFloat32
);
}
Float32List
::
Float32List
(
Float32List
&&
other
)
...
...
sky/engine/tonic/float32_list.h
浏览文件 @
1f9858cb
...
...
@@ -54,11 +54,6 @@ struct DartConverter<Float32List> {
static
Float32List
FromArguments
(
Dart_NativeArguments
args
,
int
index
,
Dart_Handle
&
exception
);
static
Float32List
FromArgumentsWithNullCheck
(
Dart_NativeArguments
args
,
int
index
,
Dart_Handle
&
exception
)
{
return
FromArguments
(
args
,
index
,
exception
);
}
};
}
// namespace blink
...
...
sky/engine/tonic/float64_list.cc
浏览文件 @
1f9858cb
...
...
@@ -19,7 +19,7 @@ Float64List::Float64List(Dart_Handle list)
Dart_TypedDataAcquireData
(
list
,
&
type
,
reinterpret_cast
<
void
**>
(
&
data_
),
&
num_elements_
);
DCHECK
(
!
LogIfError
(
list
));
ASSERT
(
type
==
Dart_TypedData_kFloat64
);
DCHECK
(
type
==
Dart_TypedData_kFloat64
);
}
Float64List
::
Float64List
(
Float64List
&&
other
)
...
...
sky/engine/tonic/float64_list.h
浏览文件 @
1f9858cb
...
...
@@ -54,11 +54,6 @@ struct DartConverter<Float64List> {
static
Float64List
FromArguments
(
Dart_NativeArguments
args
,
int
index
,
Dart_Handle
&
exception
);
static
Float64List
FromArgumentsWithNullCheck
(
Dart_NativeArguments
args
,
int
index
,
Dart_Handle
&
exception
)
{
return
FromArguments
(
args
,
index
,
exception
);
}
};
}
// namespace blink
...
...
sky/engine/tonic/int32_list.cc
浏览文件 @
1f9858cb
...
...
@@ -19,7 +19,7 @@ Int32List::Int32List(Dart_Handle list)
Dart_TypedDataAcquireData
(
list
,
&
type
,
reinterpret_cast
<
void
**>
(
&
data_
),
&
num_elements_
);
DCHECK
(
!
LogIfError
(
list
));
ASSERT
(
type
==
Dart_TypedData_kInt32
);
DCHECK
(
type
==
Dart_TypedData_kInt32
);
}
Int32List
::
Int32List
(
Int32List
&&
other
)
...
...
sky/engine/tonic/int32_list.h
浏览文件 @
1f9858cb
...
...
@@ -56,11 +56,6 @@ struct DartConverter<Int32List> {
static
Int32List
FromArguments
(
Dart_NativeArguments
args
,
int
index
,
Dart_Handle
&
exception
);
static
Int32List
FromArgumentsWithNullCheck
(
Dart_NativeArguments
args
,
int
index
,
Dart_Handle
&
exception
)
{
return
FromArguments
(
args
,
index
,
exception
);
}
};
}
// namespace blink
...
...
sky/engine/tonic/mojo_converter.h
浏览文件 @
1f9858cb
...
...
@@ -13,12 +13,12 @@ namespace blink {
template
<
typename
HandleType
>
struct
DartConverter
<
mojo
::
ScopedHandleBase
<
HandleType
>>
{
static
mojo
::
ScopedHandleBase
<
HandleType
>
FromDart
(
Dart_Handle
handle
)
{
uint64_t
mojo_handle64
=
0
;
Dart_Handle
result
=
Dart_IntegerToUint64
(
handle
,
&
mojo_handle64
);
if
(
Dart_IsError
(
result
)
||
!
mojo_handle64
)
uint64_t
raw_handle
=
0
;
Dart_Handle
result
=
Dart_IntegerToUint64
(
handle
,
&
raw_handle
);
if
(
Dart_IsError
(
result
)
||
!
raw_handle
)
return
mojo
::
ScopedHandleBase
<
HandleType
>
();
HandleType
mojo_handle
(
static_cast
<
MojoHandle
>
(
mojo_handle64
));
HandleType
mojo_handle
(
static_cast
<
MojoHandle
>
(
raw_handle
));
return
mojo
::
MakeScopedHandle
(
mojo_handle
);
}
...
...
@@ -26,17 +26,16 @@ struct DartConverter<mojo::ScopedHandleBase<HandleType>> {
return
Dart_NewInteger
(
static_cast
<
int64_t
>
(
mojo_handle
.
release
().
value
()));
}
static
mojo
::
ScopedHandleBase
<
HandleType
>
FromArguments
WithNullCheck
(
static
mojo
::
ScopedHandleBase
<
HandleType
>
FromArguments
(
Dart_NativeArguments
args
,
int
index
,
Dart_Handle
&
exception
,
bool
auto_scope
=
true
)
{
int64_t
mojo_handle64
=
0
;
Dart_Handle
result
=
Dart_GetNativeIntegerArgument
(
args
,
index
,
&
mojo_handle64
);
if
(
Dart_IsError
(
result
)
||
!
mojo_handle64
)
Dart_Handle
&
exception
)
{
int64_t
raw_handle
=
0
;
Dart_Handle
result
=
Dart_GetNativeIntegerArgument
(
args
,
index
,
&
raw_handle
);
if
(
Dart_IsError
(
result
)
||
!
raw_handle
)
return
mojo
::
ScopedHandleBase
<
HandleType
>
();
HandleType
mojo_handle
(
static_cast
<
MojoHandle
>
(
mojo_handle64
));
HandleType
mojo_handle
(
static_cast
<
MojoHandle
>
(
raw_handle
));
return
mojo
::
MakeScopedHandle
(
mojo_handle
);
}
};
...
...
sky/engine/tonic/uint8_list.cc
浏览文件 @
1f9858cb
...
...
@@ -19,7 +19,7 @@ Uint8List::Uint8List(Dart_Handle list)
Dart_TypedDataAcquireData
(
list
,
&
type
,
reinterpret_cast
<
void
**>
(
&
data_
),
&
num_elements_
);
DCHECK
(
!
LogIfError
(
list
));
ASSERT
(
type
==
Dart_TypedData_kUint8
);
DCHECK
(
type
==
Dart_TypedData_kUint8
);
}
Uint8List
::
Uint8List
(
Uint8List
&&
other
)
...
...
sky/engine/tonic/uint8_list.h
浏览文件 @
1f9858cb
...
...
@@ -54,12 +54,6 @@ struct DartConverter<Uint8List> {
static
Uint8List
FromArguments
(
Dart_NativeArguments
args
,
int
index
,
Dart_Handle
&
exception
);
static
Uint8List
FromArgumentsWithNullCheck
(
Dart_NativeArguments
args
,
int
index
,
Dart_Handle
&
exception
)
{
return
FromArguments
(
args
,
index
,
exception
);
}
static
Dart_Handle
ToDart
(
const
uint8_t
*
buffer
,
unsigned
int
length
);
};
...
...
sky/shell/ui/engine.cc
浏览文件 @
1f9858cb
...
...
@@ -169,9 +169,8 @@ void Engine::OnPointerPacket(pointer::PointerPacketPtr packet) {
void
Engine
::
RunFromLibrary
(
const
std
::
string
&
name
)
{
TRACE_EVENT0
(
"flutter"
,
"Engine::RunFromLibrary"
);
sky_view_
=
blink
::
SkyView
::
Create
(
this
);
sky_view_
->
CreateView
(
blink
::
WebString
::
fromUTF8
(
name
));
sky_view_
->
RunFromLibrary
(
blink
::
WebString
::
fromUTF8
(
name
),
dart_library_provider_
.
get
());
sky_view_
->
CreateView
(
name
);
sky_view_
->
RunFromLibrary
(
name
,
dart_library_provider_
.
get
());
sky_view_
->
SetDisplayMetrics
(
display_metrics_
);
sky_view_
->
SetLocale
(
language_code_
,
country_code_
);
if
(
!
initial_route_
.
empty
())
...
...
@@ -183,8 +182,8 @@ void Engine::RunFromSnapshotStream(
mojo
::
ScopedDataPipeConsumerHandle
snapshot
)
{
TRACE_EVENT0
(
"flutter"
,
"Engine::RunFromSnapshotStream"
);
sky_view_
=
blink
::
SkyView
::
Create
(
this
);
sky_view_
->
CreateView
(
blink
::
WebString
::
fromUTF8
(
name
)
);
sky_view_
->
RunFromSnapshot
(
blink
::
WebString
::
fromUTF8
(
name
)
,
snapshot
.
Pass
());
sky_view_
->
CreateView
(
name
);
sky_view_
->
RunFromSnapshot
(
name
,
snapshot
.
Pass
());
sky_view_
->
SetDisplayMetrics
(
display_metrics_
);
sky_view_
->
SetLocale
(
language_code_
,
country_code_
);
if
(
!
initial_route_
.
empty
())
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录