1460 Commits

Author SHA1 Message Date
liyuqian
7c3dcee2e9
Revert "[fuchsia] Wire up OpacityLayer to Scenic (#11322)" (#12610)
This reverts commit fcc4ab32301396986dd5103d6d444bff35fe0f63.

Fixes https://github.com/flutter/flutter/issues/41394 and other
related correctness issues.

TBR: @arbreng @jason-simmons @mehmetf
2019-09-27 16:50:43 -07:00
gaaclarke
3c271bb942
Started asserting the FlutterEngine is running before communicating over channels. (#12469)
Started asserting the FlutterEngine is running before communicating
over channels.  This changes a null pointer exception to an
NSException that will provide some meaningful data to clients
incorrectly using the engine in an add-to-app situations.
2019-09-27 15:18:45 -07:00
gaaclarke
57f35d2763
Split out the logic to handle status bar touches into its own function (#12587)
Split out the logic to handle status bar touches into its own function.  This should make add-to-app clients' lives easier.
2019-09-27 15:10:28 -07:00
Kaushik Iska
6fcd795b4c
[flutter_runner] Refactor thread_application pair to ActiveApplication (#12573) 2019-09-27 13:38:25 -07:00
George Wright
d1901a2d15
Reword confusing messaging surrounding unhandled exception in flutter_runner on Fuchsia (#12428)
- Don't use 'unhandled' as that implies fatality which this is not
- Don't mention shutdown because this is not necessarily an exception-after-shutdown issue

Follow-up issue filed https://github.com/flutter/flutter/issues/41506 to implement the unit test for this.
2019-09-27 12:50:20 -07:00
Jonah Williams
6f5eb1332f
Add support for JIT release mode (#12446) 2019-09-27 11:20:54 -07:00
Kaushik Iska
c25cdfee2b
Remove references to topaz (#12565)
* Add clangd directory to gitignore

* Remove references to TOPAZ_ from #ifdefs

We missed these in the migration.
2019-09-27 10:24:44 -07:00
gaaclarke
92d30c0cc8
Added a default entrypoint variable to match android syntax. (#12370)
Made creating and using a FlutterEngine a bit easier, to try to get it get it as easy to use as Android's equivalent.
* Added a default entrypoint variable.
* I added `run` to and `initWithName:` to FlutterEngine.
2019-09-26 17:11:45 -07:00
Matt Carroll
5b952f286f
Forwards Flutter View to platform views and detaches when needed. (#12359) 2019-09-26 15:34:01 -07:00
Francisco Magdaleno
a5b23d8176
Adds support for 5 mouse buttons (#12450) 2019-09-26 15:23:58 -07:00
Chinmay Garde
5b5fd7508c
Revert "Support accessibility labels on iOS switches. (#12404)" (#12466)
This reverts commit 147d0c3805499f5302f763da01fc40259b1a22ee.
2019-09-26 12:52:52 -07:00
brandondiamond
147d0c3805 Support accessibility labels on iOS switches. (#12404) 2019-09-26 11:14:44 -07:00
Greg Spencer
b3f2aad1c6
Revert "Send TYPE_VIEW_FOCUSED for views with input focus. (#12410)" (#12455)
This reverts commit c1773f3c57eb957fbc1702b8353b35648c38e372 because it breaks the Flutter framework build.
2019-09-25 20:35:55 -07:00
Greg Spencer
c1773f3c57
Send TYPE_VIEW_FOCUSED for views with input focus. (#12410)
This change modifies the accessibility bridge so that if a node has input focus, then it will tell TalkBack so that it will request the accessibility focus for the view.

It also sets the content change types bit field to include CONTENT_CHANGE_TYPE_SUBTREE to indicate that the subtree for the view has changed for API levels after, and including, KitKat (19)
2019-09-25 14:14:00 -07:00
Michael Klimushyn
efb7bf434f
Work around Samsung keyboard issue (#12432)
Samsung's Korean keyboard has a bug where it always attempts to combine
characters based on its internal state, ignoring if and when the cursor
is moved programmatically. EG typing "ㄴㅇ" and then moving the cursor
back to the front of the text and typing "ㄴ" again would result in
"ㄴㅇㄴ", not "ㄴㄴㅇ".

Fully restarting the IMM works around this because it flushes the
keyboard's internal state and stops it from trying to incorrectly
combine characters. However this also has some negative performance
implications, so we only apply the workaround on Samsung devices set
to use Korean input.

This also effectively disables the feature on Samsung keyboards that
allowed users to re-open a composing region for previously typed
characters. See https://github.com/flutter/flutter/issues/29341#issuecomment-531283508.

Fixes flutter/flutter#29341.
2019-09-25 11:16:32 -07:00
David Worsham
fcc4ab3230
[fuchsia] Wire up OpacityLayer to Scenic (#11322)
On Fuchsia, add a build flag for compositing OpacityLayers using the system
compositor vs Skia, which exposes a fastpath for opacity via Scenic.
This will only work under certain circumstances, in particular nested
OpacityLayers will not render correctly!

On Fuchsia, add a build flag for compositing PhysicalShapeLayers using
the system compositor vs Skia. Set to off by default, which restores
performant shadows on Fuchsia.

Remove the opacity exposed from ChildView, as that was added mistakenly.

Finally, we centralize the logic for switching between the
system-composited and in-process-composited paths inside of
ContainerLayer. We also centralize the logic for computing elevation
there. This allows the removal of many OS_FUCHSIA-specific code-paths.

Test: Ran workstation on Fuchsia; benchmarked before and after
Bug: 23711
Bug: 24163

* Fix broken tests
2019-09-25 12:48:42 -04:00
Jonas Uekötter
d2c1514084 Write MINIMAL_SDK to exception message (#11345)
This changes writes the required and current Android SDK level to the exception message. This enables Crash Reporting tools to capture more information about this crash.
2019-09-23 17:20:26 -07:00
Francisco Magdaleno
035c9dbfcf
Track "mouse leave" event (#12363) 2019-09-23 16:44:44 -07:00
chunhtai
aadd5a346b
Add system font change listener for windows (#12276)
* Add windows font change logic

* update

* fix comment
2019-09-23 13:23:46 -07:00
gaaclarke
933f83e303
Added unit tests for method channels. (#12373)
Added unit tests for method channels.
2019-09-20 14:25:56 -07:00
Dan Field
819a9f5898
Sync dart_runner (#12375) 2019-09-20 12:58:08 -07:00
liyuqian
c2879cae2e
Revert "Reland "Smooth out iOS irregular input events delivery (#11817)" (#12280)" (#12364)
This reverts commit aac33d1bced7a9d15e1feb19f73eef6da16470f0.

Reason: flutter/flutter#40863

TBR: chinmaygarde, iskakaushik
2019-09-19 19:39:36 -07:00
Matt Carroll
70f21b0edb Fixes race condition that was reported internally. (#12362) 2019-09-19 16:36:17 -07:00
Siva
50b3538399
 Roll src/third_party/dart 7c1821c4aa...ea969c358e (#12339)
* Roll src/third_party/dart 7c1821c4aa...ea969c358e (6 commits)

dart-lang/sdk@7c1821c4aa [NNBD/VM] Restructure VM patch files for the NNBD dart sdk split
dart-lang/sdk@0c23664c8f [vm/fuzzer] Reduce number of methods per class
dart-lang/sdk@3135eb569d [vm/bytecode] Fix initial scope in field initializers
dart-lang/sdk@1345fb80ac Use TypeParameterElement instead of TypeParameterType in inference.
dart-lang/sdk@430ff6d649 Migration: fix "matching" functionality of edge testing infrastructure.
dart-lang/sdk@f1bff1b512 Add option to run ddb with observatory
2019-09-19 16:07:34 -07:00
Dan Field
7fb14000fd
java lints (#12354) 2019-09-18 21:20:04 -07:00
Kaushik Iska
8dcd105f66
[flutter_runner] Port vulkan surface changes (#12350)
[flutter_runner] use dedicated allocation info

    This informs the vulkan driver that we're allocating memory
    dedicated to a single image. This is required for aemu and
    might also allow future drivers to make optimizations currently
    not possible.

    No change in behavior. Existing tests (modular_tests,
    scenic_tests, etc.) are sufficient and regressions will be
    prevented by running these tests on aemu.

    DX-939 #comment

    Test: fx shell run fuchsia-pkg://fuchsia.com/basemgr#meta/basemgr.cmx --base_shell=fuchsia-pkg://fuchsia.com/spinning_cube#meta/spinning_cube.cmx
    Change-Id: If4ecd9aaa09f12f94654a68e8e9fe979748f44af

    [flutter_runner] use external image create info

    DX-939 #progress
    MA-394 #progress

    This informs the vulkan driver that we're creating an image
    that will be backed by external memory. The driver driver can
    decide to use different memory requirements based on the if
    memory for the image can be exported or not.

    No change in behavior. Existing tests (modular_tests,
    scenic_tests, etc.) are sufficient and regressions will be
    prevented by running these tests on aemu.

    Test: fx shell run fuchsia-pkg://fuchsia.com/basemgr#meta/basemgr.cmx --base_shell=fuchsia-pkg://fuchsia.com/spinning_cube#meta/spinning_cube.cmx
    Change-Id: I489318c2e31f752f76c80a81245e203861d44d94
2019-09-18 19:06:12 -07:00
Kaushik Iska
eed16d34bd
[flutter_runner] Explicitly set |trace_skia| to false (#12349)
Explicitly set |Application|'s |flutter::Settings| |trace_skia| field to
false (it currently defaults to false), in order to slightly simplify
the enabling skia trace events workflow.

PT-145 #comment-patch

Change-Id: Ib40f9ed3dc6f824056465db2cd45309c78b7e3b4
2019-09-18 18:02:43 -07:00
Kaushik Iska
c33f2d2885
[flutter_runner] Port the new compilation trace from topaz (#12348) 2019-09-18 18:02:34 -07:00
Kaushik Iska
9036234cfe
[flutter_runner][async] Migrate dart/flutter to new async-loop APIs (#12347)
Change-Id: I11ca124878d2652798ed49958c42aa10ae019ef9
2019-09-18 17:45:53 -07:00
Kaushik Iska
725dc259cd
[flutter_runner] Move from runner context to component context (#12346)
* [flutter_runner] Move from runner context to component context

* remove the file references
2019-09-18 17:45:46 -07:00
Kaushik Iska
33ad6757e8
[flutter_runner] Port over the tuning advice (#12345) 2019-09-18 17:32:08 -07:00
Kaushik Iska
e0a24d6369
[flutter_runner] Remove usages of shared snapshots from CC sources (#12343)
Build rules still reference creating share snapshot data and instructions. This makes the engine to always pass them as empty to the dart vm. To be followed up with a change to alter the build rules to stop referencing the shared snapshots.

This is not being used currently and the fact that the runner will be built outside of the flutter tree means that the apps will not have much to gain via shared snapshots. The rationale behind this change is to partially make migrating the runner out of topaz tree easier.

Change-Id: Ibc4dd6a298d65082416af753522f5a17c88a750a
2019-09-18 17:31:54 -07:00
Kaushik Iska
7f7250f476
[flutter_runner] Do not use prebuilts just yet (#12340) 2019-09-18 15:31:57 -07:00
Dan Field
00a12c411f
Add missing CL, fix targets for Fuchsia (#12338) 2019-09-18 15:06:50 -07:00
Tamir Duberstein
00f23b2e73 [fuchsia] add fuchsia.netstack.Netstack (#12325)
Needed in preparation for
https://dart-review.googlesource.com/c/sdk/+/117620.

Test:
  git grep -l -E '(socket\.Provider|NameLookup)' | \
  xargs grep -L fuchsia.netstack.Netstack
2019-09-18 12:01:49 -07:00
Matt Carroll
36be89da49
Added javadoc comments to FlutterActivity and FlutterFragmentActivity. (#12328) 2019-09-17 16:22:13 -07:00
Ankit Dave
3b09d9f1ec [flutter] Remove old A11y API's. (#12308) 2019-09-17 15:40:17 -07:00
Chinmay Garde
1c7300ed1e
Account for root surface transformation on the surfaces managed by the external view embedder. (#11384)
The earlier design speculated that embedders could affect the same
transformations on the layers post engine compositor presentation but before
final composition.

However, the linked issue points out that this design is not suitable for use
with hardware overlay planes. When rendering to the same, to affect the
transformation before composition, embedders would have to render to an
off-screen render target and then apply the transformation before presentation.
This patch negates the need for that off-screen render pass.

To be clear, the previous architecture is still fully viable. Embedders still
have full control over layer transformations before composition. This is an
optimization for the hardware overlay planes use-case.

Fixes b/139758641
2019-09-17 15:16:59 -07:00
Matt Carroll
f38f3a2f79
Introduce FlutterFragmentActivity (#12305) 2019-09-17 15:09:38 -07:00
Chinmay Garde
b4d8158316
Shuffle test order and repeat test runs once. (#12275)
The tests we write must be resilient to the order in which they are run in the
harness. That is, they must not rely on global state set by other tests that
have already run in the process. Also, these tests must themselves be
repeatable. That is, they must correctly clean up after themselves and be able
to run successfully again in the same process.

This patch adds some safeguards against (but does NOT guarantee) the addition of
tests that violate the dictum.

Additionally, test failures must be easily reproducible for folks investigating
the test failure. Also, tests that assert correctness of unrelated code must not
stop progress on the authors patch.

This changes does not hinder reproducibility of test failures because the random
seed is printed in the logs before running each test. Developers attempting to
reproduce the failure locally can do the same via the following invocation
`--gtest_shuffle --gtest_repeat=<the count> --gtest_random_seed=<seed from failing run>`.

This change does introduce potential burden on patch authors that may see
failures in unrelated code as a newly failing shuffle seed is used on their
runs. To ameliorate this, we will formulate guidance for them to aggressively
mark such tests as disabled and file bugs to enable the same.

The test seed is intentionally kept low because it’s purpose is to test that
individual tests are repeatable. It must not be used as a replacement for
fuzzing.
2019-09-17 14:50:51 -07:00
Jason Simmons
b4d7655522
Fix continuous event polling in the GLFW event loop (#12320)
* Do not pass a milliseconds::max() timeout that will overflow when converted
  to nanoseconds
* Avoid holding the task_queue_mutex_ while calling glfwWaitEventsTimeout
* Use a signed type to hold the difference between a task's timestamp and
  the current engine time

Fixes https://github.com/flutter/flutter/issues/40281
2019-09-17 13:54:38 -07:00
rafern
caf1df6b58 Tests for #11283 (#12322)
Added tests for #11283. The itEncodesNullObjects test fails with the branch before the merge and succeeds with the master branch
2019-09-17 13:52:40 -07:00
xster
4159c2bfed
Make iOS FlutterViewController stop sending inactive/pause on app lifecycle events when not visible (#12128) 2019-09-17 12:00:46 -07:00
stuartmorgan
709fc6e00c
Adds PluginRegistry to the C++ client wrapper API (#12287)
Makes the plugin registration structure consistent with macOS. This will
be used in generated plugin registrant files rather than a specific
implemenation class, so this helps unblock the creation of generated
registrants on Windows and Linux.
2019-09-17 11:41:22 -07:00
Jason Simmons
783deab110
Fix the declaration of setSystemGestureExclusionRects to match the PlatformMessageHandler interface (#12306) 2019-09-16 16:26:39 -07:00
George Wright
5a8da65592
Manage resource and onscreen contexts using separate IOSGLContext objects (#12277)
Manage resource and onscreen contexts using separate IOSGLContext objects.

FlutterView owns the onscreen context, and PlatformViewIOS owns the resource context.
2019-09-16 16:17:46 -07:00
rafern
63873d9f42 Fix objects equal to null not being detected as null (#11283) 2019-09-16 12:16:38 -07:00
Qxyat
7d42bc70cf Reset NSNetService delegate to nil,when stop service. (#11270) 2019-09-16 10:45:52 -07:00
liyuqian
aac33d1bce
Reland "Smooth out iOS irregular input events delivery (#11817)" (#12280)
Additionally, we now use the engine directly as a delegate instead of storing potentially dead runtime_controller.

Unit tests have been updated to include an engine restart check which would fail before the fix.

This fixes https://github.com/flutter/flutter/issues/40303
2019-09-16 10:42:44 -07:00
Michael Goderbauer
ef7bcafd5c
a11y: expose max character count for text fields (#12269) 2019-09-16 09:37:25 -07:00