- 18 11月, 2020 1 次提交
-
-
由 Greg Spencer 提交于
Reland #22505, now that flutter/flutter#70637 has landed. Removes references to dart:ui.Window, and switch usages to PlatformDispatcher or SingletonFlutterWindow, as appropriate.
-
- 22 10月, 2020 1 次提交
-
-
由 Chinmay Garde 提交于
Embedders that have access to the Dart native API (only Fuchsia now) may perform library setup in the isolate create callback. The engine used to depend on the fact the root isolate entrypoint is invoked in the next iteration of message loop (via the `_startIsolate` trampoline in `isolate_patch.dart`) to ensure that library setup occur before the main entrypoint was invoked. However, due to differences in the way in which message loops are setup in Fuchsia, this entrypoint was run before the callback could be executed. Dart code on Fuchsia also has the ability to access the underlying event loops directly. This patch moves the invocation of the create callback to before user dart code has a chance to run. This difference in behavior on Fuchsia became an issue when the isolate initialization was reworked in https://github.com/flutter/engine/pull/21820 for null-safety. Another issue was discovered in that the callback was being invoked twice, I fixed that too and added a test. Fixes https://github.com/flutter/flutter/issues/68732
-
- 21 10月, 2020 1 次提交
-
-
由 Chinmay Garde 提交于
-
- 17 10月, 2020 1 次提交
-
-
由 Chinmay Garde 提交于
Snapshots compiled with sound null-safety enabled require changes to the way in which isolates are launched. Specifically, the `Dart_IsolateFlags::null_safety` field needs to be known upfront. The value of this field can only be determined once the kernel snapshot is available. This poses a problem in the engine because the engine used to launch the isolate at shell initialization and only need the kernel mappings later at isolate launch (when transitioning the root isolate to the `DartIsolate::Phase::Running` phase). This patch delays launch of the isolate on the UI task runner till a kernel mapping is available. The side effects of this delay (callers no longer having access to the non-running isolate handle) have been addressed in this patch. The DartIsolate API has also been amended to hide the method that could return a non-running isolate to the caller. Instead, it has been replaced with a method that requires a valid isolate configuration that returns a running root isolate. The isolate will be launched by asking the isolate configuration for its null-safety characteristics. A side effect of enabling null-safety is that Dart APIs that work with legacy types will now terminate the process if used with an isolate that has sound null-safety enabled. These APIs may no longer be used in the engine. This primarily affects the Dart Convertors in Tonic that convert certain C++ objects into the Dart counterparts. All known Dart Converters have been updated to convert C++ objects to non-nullable Dart types inferred using type traits of the corresponding C++ object. The few spots in the engine that used the old Dart APIs directly have been manually updated. To ensure that no usage of the legacy APIs remain in the engine (as these would cause runtime process terminations), the legacy APIs were prefixed with the `DART_LEGACY_API` macro and the macro defined to `[[deprecated]]` in all engine translation units. While the engine now primarily works with non-nullable Dart types, callers can still use `Dart_TypeToNonNullableType` to acquire nullable types for use directly or with Tonic. One use case that is not addressed with the Tonic Dart Convertors is the creation of non-nullable lists of nullable types. This hasn’t come up so far in the engine. A minor related change is reworking tonic to define a single library target. This allows the various tonic subsystems to depend on one another. Primarily, this is used to make the Dart convertors use the logging utilities. This now allows errors to be more descriptive as the presence of error handles is caught (and logged) earlier. Fixes https://github.com/flutter/flutter/issues/59879
-
- 16 10月, 2020 3 次提交
-
-
由 Jenn Magder 提交于
-
由 Jenn Magder 提交于
This reverts commit dc848f15.
-
由 Jenn Magder 提交于
* Add flag to not publish the observatory port over mDNS * Review edits * Format
-
- 12 9月, 2020 1 次提交
-
-
由 Chris Bracken 提交于
We currently use a mix of C standard includes (e.g. limits.h) and their C++ variants (e.g. climits). This migrates to a consistent style for all cases where the C++ variants are acceptable, but leaves the C equivalents in place where they are required, such as in the embedder API and other headers that may be used from C.
-
- 01 9月, 2020 1 次提交
-
-
由 Emmanuel Garcia 提交于
This reverts commit 4de62c7c.
-
- 26 8月, 2020 1 次提交
-
-
由 Emmanuel Garcia 提交于
This reverts commit d16ba48e.
-
- 25 8月, 2020 1 次提交
-
-
由 Emmanuel Garcia 提交于
-
- 13 8月, 2020 1 次提交
-
-
由 Mehmet Fidanboylu 提交于
-
- 08 8月, 2020 1 次提交
-
-
由 Ming Lyu (CareF) 提交于
-
- 29 7月, 2020 1 次提交
-
-
- 25 6月, 2020 1 次提交
-
-
由 Chris Yang 提交于
-
- 16 6月, 2020 1 次提交
-
-
由 Michael Goderbauer 提交于
-
- 08 5月, 2020 1 次提交
-
-
由 Jason Simmons 提交于
The engine was using a global to store a timestamp representing the launch of the engine. This timestamp is initialized with a JNI call on Android and during shell setup on other platforms. Later the timestamp is added to a FlutterEngineMainEnter timeline event used to measure engine startup time in benchmarks. This PR removes the global and the JNI call and moves the timestamp into the settings object.
-
- 12 4月, 2020 1 次提交
-
-
由 Mehmet Fidanboylu 提交于
-
- 17 3月, 2020 1 次提交
-
-
由 gaaclarke 提交于
-
- 05 2月, 2020 1 次提交
-
-
由 Jonah Williams 提交于
-
- 25 1月, 2020 1 次提交
-
-
由 Dan Field 提交于
-
- 09 1月, 2020 1 次提交
-
-
由 gaaclarke 提交于
-
- 11 10月, 2019 1 次提交
-
-
由 Chinmay Garde 提交于
Since this is currently only meant to be used by the embedding internally, the setter in Objective-C is only exposed via the FlutterDartProject private class extension. Unit tests have been added to the shell_unittests harness. Fixes https://github.com/flutter/flutter/issues/37641
-
- 09 10月, 2019 1 次提交
-
-
由 liyuqian 提交于
For https://github.com/flutter/flutter/issues/40686 Unit tests added: - CacheSkSLWorks - VisitFilesCanBeCalledTwice - CanListFilesRecursively
-
- 06 8月, 2019 1 次提交
-
-
由 sjindel-google 提交于
-
- 12 7月, 2019 1 次提交
-
-
由 Jason Simmons 提交于
libapp.so contains compiled application Dart code. On most Android systems, this library can be loaded by calling dlopen("libapp.so"), which will search Android's default library directories. On some Android devices this does not work as expected. As a workaround, this patch provides a fallback path to libapp.so based on ApplicationInfo.nativeLibraryDir. Fixes https://github.com/flutter/flutter/issues/35838
-
- 26 6月, 2019 1 次提交
-
-
由 Chris Bracken 提交于
Adds --observatory-host, which allows callers to specify the localhost IP binding directly. Allows users to set 0.0.0.0 or the host IP address as is possible in the standalone VM, rather than restricting users to loopback. We retain the default behaviour of binding to loopback since the vast majority of observatory use-cases involve local access (e.g. host tests on flutter_tester) or port-forwarded local access (e.g. flutter driver device tests). However, some scenarios, such as QA test labs, may benefit from binding to a publicly-accessible IP address.
-
- 07 6月, 2019 1 次提交
-
-
由 liyuqian 提交于
Using it, a Flutter app can monitor missing frames in the release mode, and a custom Flutter runner (e.g., Fuchsia) can add a custom FrameRasterizedCallback. Related issues: https://github.com/flutter/flutter/issues/26154 https://github.com/flutter/flutter/issues/31444 https://github.com/flutter/flutter/issues/32447 Need review as soon as possible so we can merge this before the end of May to catch the milestone. Tests added: * NoNeedToReportTimingsByDefault * NeedsReportTimingsIsSetWithCallback * ReportTimingsIsCalled * FrameRasterizedCallbackIsCalled * FrameTimingSetsAndGetsProperly * onReportTimings preserves callback zone * FrameTiming.toString has the correct format This will need a manual engine roll as the TestWindow defined in the framework needs to implement onReportTimings.
-
- 25 4月, 2019 1 次提交
-
-
由 Zachary Anderson 提交于
-
- 23 4月, 2019 2 次提交
-
-
由 Chinmay Garde 提交于
This reverts commit 4ead9c8f. Reland tracked in https://github.com/flutter/flutter/issues/31433.
-
由 liyuqian 提交于
This reverts commit bd8c5b13. Reverts flutter/engine#8656 Reason: https://github.com/flutter/engine/pull/8656 seems to break the framework windows tests and the engine roll (see https://cirrus-ci.com/task/4704667236827136 and https://github.com/flutter/flutter/pull/31330). The failure has been consistent for 7 consecutive engine-to-framework auto-rolls. TBR: @chinmaygarde
-
- 20 4月, 2019 3 次提交
-
-
由 Chinmay Garde 提交于
The callbacks can be wired in via the Settings object. Both runtime and shell unit-tests have been patched to test this.
-
由 Chinmay Garde 提交于
If the mapping callback is not set or it the callback returns invalid data, ICU initialization will be embedder responsibility. This affects all embedders and the following have been audited: * Android: Via a symbol mapping. * iOS: Via a file mapping. * Embedder: Via a file mapping. * Fuchsia: Via a VMO mapping * Test shells and Flutter tester: Via file mapping with ICU data needing to be next to the executable.
-
由 Chinmay Garde 提交于
-
- 19 4月, 2019 1 次提交
-
-
由 Chinmay Garde 提交于
This was used in some embedder implementations. But that was a while ago.
-
- 11 4月, 2019 1 次提交
-
-
由 Ben Konyi 提交于
-
- 10 4月, 2019 1 次提交
-
-
由 Chinmay Garde 提交于
Some components in the Flutter engine were derived from the forked blink codebase. While the forked components have either been removed or rewritten, the use of the blink namespace has mostly (and inconsistently) remained. This renames the blink namesapce to flutter for consistency. There are no functional changes in this patch.
-
- 06 4月, 2019 2 次提交
-
-
由 Chinmay Garde 提交于
-
由 Chinmay Garde 提交于
This reverts commit 800ea0a4.
-
- 04 4月, 2019 1 次提交
-
-
由 Chinmay Garde 提交于
This reverts commit b59c4436.
-