For flow to manipulate the embedded UIViews during the paint traversal
it needs some hook in PaintContext.
This PR introduces a ViewEmbeder interface that is implemented by the
iOS PlatformViewsController and plumbs it into PaintContext.
The ViewEmbedder interface is mainly a place holder at this point, as
this PR is focused on just the plumbing.
* Create FlutterEngine to manage a Shell to support maintaining execution state across instances of FlutterViewControllers
* Refactor PlatformViewIOS to support adding or removing a FlutterViewController dynamically
* Refactor FlutterDartHeadlessCodeRunner to implement FlutterEngine
* Refactor FlutterViewController to accept a FlutterEngine at initialization or to create one for backwards compatibility; any Shell related responsibilities are now passed through to the Engine instance
* Remove FlutterNavigationController (unused)
* Update all public Objective C doc comments to be consistent and formatable
* Add public documentation to all public headers
bf26f760b1 [infra] Ensure that core dump upload triggers on main builders
cdf6dde807 [gardening] bigint_test may still time out when interpreted (2nd try).
d3498a81be [vm] Cleanup int overflow checking
9e9746a83c [gardening] bigint_test may still time out when interpreted.
7de2510339 [VM interpreter] Do not interpret some Bigint intrinsics (fixes#34901).
816ab3208c Fix versions in spec titles to match the description below
c7c81af74e [vm/bytecode] Check for overflow of bytecode limits
655310ddf2 Add ArgumentError.checkNotNull utility
0170b8d529 Revert "[vm/compiler] Use loop framework for AOT inline heuristics"
9aff930924 Move test_methodCallTypeInference_mixinType into mixin_test.dart
3e750a7e79 [vm] Add test for certain cases of unreachable code
daae20d32e [vm/compiler] Use loop framework for AOT inline heuristics
28a8fa50f6 Upgrade package:http to 0.12.0.
b3055a1482 [gardening] Mark co19 LibTest/io/RawDatagramSocket/any_A01_t03 flaky
b8fd29e0bb Remove dartfix dependencies on analysis server
8a5405fc40 [build] Add //third_party/android_tools BUILD file needed by zlib
82c1f2aaa8 [vm] Eliminate dart_zlib_path from BUILD files
11ad25a1c3 Reland "[VM runtime] Support Smi instances in type test cache."
3dc911909b Generate analysis_server_client protocol_generated.dart and related protocol files
a902fc351f [gardening] Mark co19 LibTest/io/Stdin/readByteSync_A02_t01 flaky
cfecec5eec Fix yet another cloning bug
d8cb60d746 [infra] Improve clone command in analyze-flutter.sh script (#34739)
34d0801008 Generate analysis server protocol consts in analysis_server_client
2c83eb550e [vm] Integrate dart binary with Crashpad on Windows.
b9999b6c27 [gardening] Mark co19 LibTest/io/RawDatagramSocket/lastWhere_A01_t02 flaky
0b15595913 [gardening] Mark co19 LibTest/io/Link/rename_A02_t01 flaky
57f895c7a4 Bounds of a generic type alias ensure the body is regular-bounded
6efc58f069 [vm] Pass member name as a symbol in instantiateInvocation.
cf0a99a89b [fasta] Check type arguments in method invocations while doing inference
d693742648 Specify for all literals whether the object overrides `Object.==`.
5c9060283b Change parameter 'silent' => 'instrumented'
e4e82da85d Changed dartLangSpec errors to warnings
4695b5f138 Add "convert to int literal" to dartfix
0009ca7b1b In _matchInterfaceSubtypeOf, account for mixins having null superclass.
1d10e037ef [vm/bytecode] Remove unreachable bytecode
03eafc0b2e Add fromEntries on HashMap and LinkedHashMap
4f2a4e69a8 new convert-to-int-literal assist
58d73e08f4 [vm] Remove incorrect assert in Script::GetSnippet
6134ac8648 Revert "[VM runtime] Support Smi instances in type test cache."
4e49d19bd6 [gardening] Update status for #34901
6ba3e55ecc [VM runtime] Support Smi instances in type test cache.
e4566d3dbd LSP: Fix nulls and missing fromJson calls in unions
d91e0ad3d7 [VM] Make method extractors call a stub for creation of tear-off closure
4c9684f735 [vm] Ignore compilation errors in CorelibCompileAll
b73f7ed3d4 [infra] Add tools/bots/find_base_commit.dart
6443a8036d Remove flaky markers for standalone_2/io tests, MacOS upgrade seemed to have getten rid underlying OS issue
c04215d5f6 [fasta] Add a test case for issue #34899
03765ed6ec Update old mixin tests. Remove the --super-mixins flag from the tests.
a394e4f492 Fix handling of JSON with interfaces nested within Unions
2f90f8d0ef Issue 34896. Verify the superconstraint signature invoked by a mixin, not the mixin's one.
b82c1f979f Revert "[VM] Fix for issue 34839 - Dart_Cleanup may hang while shutting down"
289d2b003a [vm] Don't re-enqueue functions after unoptimized compiles
33accb510b [VM] : Cleanup the file modified and service stream callbacks in Dart_Cleanup so that the Flutter engine can restart the VM.
89c845eba2 [VM] Fix for issue 34839 - Dart_Cleanup may hang while shutting down the service isolate.
e648d63bed Revert "Compute unlinked API signatures without unlinked summaries."
74792f4b9c Revert "[vm] Revert service isolate setup in main.cc"
b4fbf1a065 [vm/bytecode] Wire up bytecode generation in kernel service
914065d80b [vm/compiler] Use loop framework for register allocator
7fd78ed5b6 [infra] Add analyzer branch alias for flutter-analyze builder (#34739)
9406b7b44e [vm/bytecode] Add versioning to bytecode format
a82e025739 Move dartfix to its own package
872e90106e Set to publish new analyzer_plugin.
2d14d9a313 Improve how dartfix finds the analysis server pkg root
a342cecffd Disable support for the old super mixins
cddc2d42e1 Handle generic types in LSP spec parsing
8b6f8969a6 Support post-inference serialization/deserialization
9c3834d41c Remove unused import that shows a warning
a1d61371d3 Exposes VM and Isolate Metrics in the API.
2c6eabd3c4 Compute substitution map on kernel objects instead of builders
704a43558d Move getSubstitutionMap to KernelClassBuilder
af8e29142b Respecify where type promotion happens.
393fe44f8f Resolve types from the class header earlier
1515d4fe34 [Gardening] Mark LibTest/io/RawDatagramSocket/timeout_A06_t01 as flaky
11adb81a77 Remove the last references to the analyzer package from kernel.
02651515eb Fix identifyWidgetExpression() for Flutter.
f5cd6ccfb7 More shared fasta/analyzer error codes
cecda9043b Update analyzer docs based on previous feedback
ab6eb9332f [VM] Fix flaky crash when unwinding the mutator stack during GC
* Revert "Dart SDK roll for 2018-10-24"
This reverts commit 416534836f73aaf42c0777ddc0052abeaa63415a.
* Revert "Dart SDK roll for 2018-10-23"
This reverts commit f836d339c29390e5e9240d7a0926bb063fc1a283.
d8cb60d746 [infra] Improve clone command in analyze-flutter.sh script (#34739)
34d0801008 Generate analysis server protocol consts in analysis_server_client
2c83eb550e [vm] Integrate dart binary with Crashpad on Windows.
b9999b6c27 [gardening] Mark co19 LibTest/io/RawDatagramSocket/lastWhere_A01_t02 flaky
0b15595913 [gardening] Mark co19 LibTest/io/Link/rename_A02_t01 flaky
57f895c7a4 Bounds of a generic type alias ensure the body is regular-bounded
6efc58f069 [vm] Pass member name as a symbol in instantiateInvocation.
cf0a99a89b [fasta] Check type arguments in method invocations while doing inference
d693742648 Specify for all literals whether the object overrides `Object.==`.
5c9060283b Change parameter 'silent' => 'instrumented'
e4e82da85d Changed dartLangSpec errors to warnings
4695b5f138 Add "convert to int literal" to dartfix
0009ca7b1b In _matchInterfaceSubtypeOf, account for mixins having null superclass.
1d10e037ef [vm/bytecode] Remove unreachable bytecode
03eafc0b2e Add fromEntries on HashMap and LinkedHashMap
4f2a4e69a8 new convert-to-int-literal assist
58d73e08f4 [vm] Remove incorrect assert in Script::GetSnippet
6134ac8648 Revert "[VM runtime] Support Smi instances in type test cache."
4e49d19bd6 [gardening] Update status for #34901
6ba3e55ecc [VM runtime] Support Smi instances in type test cache.
e4566d3dbd LSP: Fix nulls and missing fromJson calls in unions
d91e0ad3d7 [VM] Make method extractors call a stub for creation of tear-off closure
4c9684f735 [vm] Ignore compilation errors in CorelibCompileAll
b73f7ed3d4 [infra] Add tools/bots/find_base_commit.dart
6443a8036d Remove flaky markers for standalone_2/io tests, MacOS upgrade seemed to have getten rid underlying OS issue
Adds a FlutterPlatformViewFactory protocol - a simple factory protocol to be implemented by plugins
that exposes a UIView for embedding in Flutter apps.
* Adds a FlutterPlatformView protocol, which is used to associate a
dispose callback with a `UIView` created by a FlutterPlatformViewFactory.
* Exposes a registerViewFactory method in FlutterPluginRegistrar.
* Implements the `flutter/platform_views` system channel on iOS, allowing
Dart code to ask for creation/destruction of UIViews.
c04215d5f6 [fasta] Add a test case for issue #34899
03765ed6ec Update old mixin tests. Remove the --super-mixins flag from the tests.
a394e4f492 Fix handling of JSON with interfaces nested within Unions
2f90f8d0ef Issue 34896. Verify the superconstraint signature invoked by a mixin, not the mixin's one.
b82c1f979f Revert "[VM] Fix for issue 34839 - Dart_Cleanup may hang while shutting down"
289d2b003a [vm] Don't re-enqueue functions after unoptimized compiles
33accb510b [VM] : Cleanup the file modified and service stream callbacks in Dart_Cleanup so that the Flutter engine can restart the VM.
89c845eba2 [VM] Fix for issue 34839 - Dart_Cleanup may hang while shutting down the service isolate.
e648d63bed Revert "Compute unlinked API signatures without unlinked summaries."
74792f4b9c Revert "[vm] Revert service isolate setup in main.cc"
b4fbf1a065 [vm/bytecode] Wire up bytecode generation in kernel service
914065d80b [vm/compiler] Use loop framework for register allocator
7fd78ed5b6 [infra] Add analyzer branch alias for flutter-analyze builder (#34739)
9406b7b44e [vm/bytecode] Add versioning to bytecode format
a82e025739 Move dartfix to its own package
872e90106e Set to publish new analyzer_plugin.
2d14d9a313 Improve how dartfix finds the analysis server pkg root
a342cecffd Disable support for the old super mixins
cddc2d42e1 Handle generic types in LSP spec parsing
8b6f8969a6 Support post-inference serialization/deserialization
9c3834d41c Remove unused import that shows a warning
a1d61371d3 Exposes VM and Isolate Metrics in the API.
2c6eabd3c4 Compute substitution map on kernel objects instead of builders
704a43558d Move getSubstitutionMap to KernelClassBuilder
af8e29142b Respecify where type promotion happens.
393fe44f8f Resolve types from the class header earlier
1515d4fe34 [Gardening] Mark LibTest/io/RawDatagramSocket/timeout_A06_t01 as flaky
11adb81a77 Remove the last references to the analyzer package from kernel.
02651515eb Fix identifyWidgetExpression() for Flutter.
f5cd6ccfb7 More shared fasta/analyzer error codes
cecda9043b Update analyzer docs based on previous feedback
ab6eb9332f [VM] Fix flaky crash when unwinding the mutator stack during GC
TL;DR: Offscreen surface is created on the render thread and device to host
transfer performed there before task completion on the UI thread.
While attempting to snapshot layer trees, the engine was attempting to use the
IO thread context. The reasoning was that this would be safe to do because any
textures uploaded to the GPU as a result of async texture upload would have
originated from this context and hence the handles would be valid in either
context. As it turns out, while the handles are valid, Skia does not support
this use-case because cross-context images transfer ownership of the image from
one context to another. So, when we made the hop from the UI thread to the IO
thread (for snapshotting), if either the UI or GPU threads released the last
reference to the texture backed image, the image would be invalid. This led to
such images being absent from the layer tree snapshot.
Simply referencing the images as they are being used on the IO thread is not
sufficient because accessing images on one context after their ownership has
already been transferred to another is not safe behavior (from Skia's
perspective, the handles are still valid in the sharegroup).
To work around these issues, it was decided that an offscreen render target
would be created on the render thread. The color attachment of this render
target could then be transferred as a cross context image to the IO thread for
the device to host tranfer.
Again, this is currently not quite possible because the only way to create
cross context images is from encoded data. Till Skia exposes the functionality
to create cross-context images from textures in one context, we do a device to
host transfer on the GPU thread. The side effect of this is that this is now
part of the frame workload (image compression, which dominate the wall time,
is still done of the IO thread).
A minor side effect of this patch is that the GPU latch needs to be waited on
before the UI thread tasks can be completed before shell initialization.
According to the iOS docs, implementing
`- (id)insertDictationResultPlaceholder`
```Implementation of this method is optional but can be done when you want to provide a specific rectangle for the placeholder animation while the dictation results are being processed. ```
If you do not implement this method, UIKit will insert a default placeholder of 10 whitespace characters. By overriding this, no placeholder text will be inserted. If you implement the `insertDictationResultPlaceholder`, you must implement
`- (void)removeDictationResultPlaceholder:(id)placeholder willInsertResult:(BOOL)willInsertResult`
* Revert "Revert "Roll buildtools to 759274dd801b2f78ae0c4066101d0beca27ffc9a" (#6621)"
This reverts commit 12d4f7678b3522f649dfdef4f2403a279a706a80.
* Revert "Properly gate android API < 21 and remove extraneous data array. (#6619)"
This reverts commit 863ab7c18b5a26445865140b37a59ea3b7411238.
* Revert "Update Dart version in Dockerfile (#6618)"
This reverts commit 2b64ec9248bcf2f7d7e9d40b4fd6ee19e06d200e.
* Revert "Don't attempt to build any platform target on Fuchsia. (#6617)"
This reverts commit 1ce76760ae843c889b8d4c51f0fb53102888bf20.
* Revert "Roll Dart to 45f9462398ae7d2e80acd79d3f9c32c7ca6f6f97 (#6616)"
This reverts commit 4b7e5ce784ee037b8bb253447bb16ab80e121824.
* Revert "Pass null instead of 'none' locale (#6613)"
This reverts commit 9ae28b334fd3c85ee276fa6ee0eeac5824dc62d2.