935 Commits

Author SHA1 Message Date
Matej Knopp
acc246676c
Fix code style issues in MacOS embedder (#22270) 2020-11-04 14:49:03 -08:00
stuartmorgan
3d194fa545
Switch macOS embedding to proc table embedder API (#21811)
Converts the macOS embedding to use the new proc table version of the embedding API, and adds one example unit test using it to demonstrate and validate the approach.
2020-11-02 21:44:10 -08:00
gaaclarke
4e9459e007
Refactored the FlutterEngine to make it easier to implement spawn functionality (#21890) 2020-10-30 15:29:10 -07:00
Kaushik Iska
37d766c0dc
Fix includes to start with shell (#22227)
See b/172031915
2020-10-30 08:51:32 -07:00
Kaushik Iska
99cc50dfff
[ios] Surface factory holds the canonical reference to the external view embedder (#22206)
This furthers the refactor of making platform view hold the reference to
the external view embedder on iOS.
2020-10-29 16:47:31 -07:00
Kaushik Iska
f81bc371c0
[profiling] Handle thread_info to account for killed threads (#22170)
Fixes: https://github.com/flutter/flutter/issues/63025
2020-10-29 12:06:16 -07:00
Kaushik Iska
d6627c6a7d
Reland [ios] Refactor IOSSurface factory and unify surface creation (#22016) 2020-10-29 11:58:03 -07:00
Matej Knopp
e61e8c2482
Smooth window resizing on macOS (#21525) 2020-10-28 11:12:04 -07:00
stuartmorgan
c896d6d1bb
Defer macOS arrow and backspace handling to framework (#22063)
The Flutter framework now has handling for arrow keys and backspace
in its editable text, so they no longer need to be handled in the
embedding. This not only avoids duplicate work, but improves the
handling of complex unicode (surrogate pairs, grapheme clusters) which
are currently correctly handled in the framework but not the macOS
embedding.

Fixes https://github.com/flutter/flutter/issues/68497
2020-10-26 12:56:30 -07:00
Kaushik Iska
a598f23763
[ios] Convert FlutterPlatformViewsController to smart pointer (#22082)
* Convert FlutterPlatformViewsController to smart pointer

* have a const reference of platform views controller

* change more stuff to references
2020-10-26 09:45:09 -07:00
gaaclarke
25bb31ef68
Added the ability to set the initial route via launch urls. (#21336) 2020-10-26 09:31:23 -07:00
Greg Spencer
6bc70e4a11
Reland: Migration to PlatformDispatcher and multi-window (#21932)
This re-lands #20496 and #21780 after fixing the semantics-enabling code that was causing the post-submit web_smoke_test to fail.

Below is the description from the original PR:

This is a PR for converting the dart:ui code in the engine to use a multi-window API. The goal here is to convert from the window singleton to an API that has the concept of multiple windows. Also, I'm matching up the new PlatformDispatcher class to talk directly to the PlatformConfiguration class in the engine. I'm not attempting to actually enable creating multiple windows here, just migrate to an API that has a concept of multiple windows. The multi-window API in this PR currently only ever creates one window.

The design doc for this change is here.

The major changes in this PR:

Move the platfom-specific attributes out of Window, and into the new PlatformDispatcher class that holds all of the platform state, so that the platform code need only update the configuration on this class.
Create FlutterView, FlutterWindow, and SingletonFlutterWindow classes to separate out the concepts of a view (of which there may be multiple in a window), a window (of which there may be multiple on a screen, and they host views), and a window where there is only ever expected to be one (this hosts the entire API of the former Window class, and will eventually be the type of the window singleton).
Next step after this PR lands:

Remove the Window class entirely (it is replaced by SingletonFlutterWindow). Some minor changes in the Framework are needed to switch to using SingletonFlutterWindow directly first.

The Window class still exists in this PR, but will be removed as soon as the framework is converted to point to the SingletonFlutterWindow class instead. They share the same API, just have different names (Window is currently a subclass of SingletonFlutterWindow). The intention is that the Window name will be freed up to use as a widget class name in the framework for managing windows. The singleton called window will remain, and keep the same API it has now.
2020-10-22 14:54:25 -07:00
chunhtai
aed8e019be
Fixes Edge trigger route change announcement (#21975) 2020-10-22 14:22:03 -07:00
Wu Zhong
a82e917dc2
[iOS] Fixes leaks of presses key message (#21987)
Related PR: #20972
2020-10-20 10:15:44 -07:00
Jenn Magder
0c7c477245
Revert "[ios] Refactor IOSSurface factory and unify surface creation (#21877)" (#21970) 2020-10-19 16:32:03 -07:00
puelo
43b618e4bf
Added keyEvent support for iOS 13.4+ (#20972) 2020-10-19 16:22:02 -07:00
George Wright
04bf8791fe
Add plumbing to grab dart entrypoint args on macOS (#21789) 2020-10-16 16:07:02 -07:00
Chris Bracken
c449c8ee50
Eliminate FLUTTER_NOLINT where possible (#21904)
This removes most of the remaining FLUTTER_NOLINT comments and opts
these files back into linter enforcement.

I've filed https://github.com/flutter/flutter/issues/68273 to require
that all FLUTTER_NOLINT comments be followed by a GitHub issue URL
describing the problem to be fixed.
2020-10-16 12:44:49 -07:00
Kaushik Iska
6a3b5feb62
[ios] Refactor IOSSurface factory and unify surface creation (#21877) 2020-10-15 19:56:13 -07:00
Adlai Holler
8ec9b3a162
Update more class names from GrContext to GrDirectContext (#21864)
This name change has to do with SkDeferredDisplayList, which Flutter
does not use. As far as Flutter is concerned, this is a no-op.
2020-10-15 16:14:23 -07:00
Jenn Magder
4494a83742
Add flag to not publish the observatory port over mDNS (#21883) 2020-10-15 14:53:20 -07:00
Jenn Magder
40c226e253
Revert "Add flag to not publish the observatory port over mDNS (#21632)" (#21882)
This reverts commit dc848f154b9c5534262e5b8d3f0360a1beafdeb5.
2020-10-15 12:32:24 -07:00
Jenn Magder
dc848f154b
Add flag to not publish the observatory port over mDNS (#21632)
* Add flag to not publish the observatory port over mDNS

* Review edits

* Format
2020-10-15 10:48:50 -07:00
Kaushik Iska
279c1cffbe
[ios] Create a standalone external view embedder on iOS (#21798) 2020-10-13 17:56:31 -07:00
Dan Field
6ba6d81295
Ocmock dylib (#21786)
- Build OCMock as a dylib for iOS tests
- Set install_name for ios_flutter_test and ocmock dylibs
- Copy and sign dylibs during build process
2020-10-13 09:36:29 -07:00
Yuqian Li
c2938d06b1
Revert "Migration to PlatformDispatcher and multi-window #20496" (#21792)
* Revert "Fix documentation build for window changes. (#21780)"

This reverts commit 931a04683d6eb49fc92059b2384ac5b1618d5422.

* Revert "Migration to PlatformDispatcher and multi-window (#20496)"

This reverts commit 85b0031f73544e448354047dc6a236c0b0808252.
2020-10-12 19:26:41 -07:00
gaaclarke
a2046aeb6c
Revert "fix On iOS, dialog titles are announced twice (#19826)" (#21714) 2020-10-09 19:57:04 -07:00
Greg Spencer
85b0031f73
Migration to PlatformDispatcher and multi-window (#20496)
This is a PR for converting the dart:ui code in the engine to use a multi-window API. The goal here is to convert from the window singleton to an API that has the concept of multiple windows. Also, I'm matching up the new PlatformDispatcher class to talk directly to the PlatformConfiguration class in the engine. I'm not attempting to actually enable creating multiple windows here, just migrate to an API that has a concept of multiple windows. The multi-window API in this PR currently only ever creates one window.

The design doc for this change is here.

The major changes in this PR:

Move the platfom-specific attributes out of Window, and into the new PlatformDispatcher class that holds all of the platform state, so that the platform code need only update the configuration on this class.
Create FlutterView, FlutterWindow, and SingletonFlutterWindow classes to separate out the concepts of a view (of which there may be multiple in a window), a window (of which there may be multiple on a screen, and they host views), and a window where there is only ever expected to be one (this hosts the entire API of the former Window class, and will eventually be the type of the window singleton).
Next step after this PR lands:

Remove the Window class entirely (it is replaced by SingletonFlutterWindow). Some minor changes in the Framework are needed to switch to using SingletonFlutterWindow directly first.

The Window class still exists in this PR, but will be removed as soon as the framework is converted to point to the SingletonFlutterWindow class instead. They share the same API, just have different names (Window is currently a subclass of SingletonFlutterWindow). The intention is that the Window name will be freed up to use as a widget class name in the framework for managing windows. The singleton called window will remain, and keep the same API it has now.
2020-10-09 16:29:16 -07:00
Kaushik Iska
5c1960284a
Fix filesystem access prior to macOS 10.15 (#21740) 2020-10-09 13:42:01 -07:00
Kaushik Iska
8b1799b616
[macOS] Fix docs for loadAOTData and minor refactor (#21699) 2020-10-08 11:34:02 -07:00
Kaushik Iska
75bc9360d9
[macOS] flutter_desktop_darwin_unittests can be enabled for all runtime modes (#21681) 2020-10-08 10:12:03 -07:00
Dan Field
4c6f2ad747
Skip flaky test (#21694) 2020-10-08 08:25:48 -07:00
Pieter van Loon
85ed656722
Enabled metal on ios simulator (#17881) 2020-10-07 17:47:03 -07:00
Kaushik Iska
15739917f3
[macOS] Allow loading of AOT snapshots and instructions from elf bundle (#21670) 2020-10-07 16:34:49 -07:00
Kaushik Iska
2eac514f26
Run desktop darwin tests in debug mode (#21660) 2020-10-07 16:32:01 -07:00
LongCatIsLooong
77d0760a32
Use absolute path in ios_test_flutter target (#21578) 2020-10-05 10:27:02 -07:00
Chris Yang
9ede9bfa43
iOS: only add explicit transactions when there are platform views (only on main threads) (#21526) 2020-10-02 14:57:01 -07:00
Justin McCandless
69cbb2bbb8
iOS Text Editing Infinite Loop (#20160)
Fixes an infinite loop by eliminating an unnecessary engine/framework message.
2020-10-02 13:51:50 -07:00
stuartmorgan
41ce791926
[macos] Allow engine flags via environment vars (#21468)
Replaces the (temporary) compile-time option to pass engine switches
with the ability to pass them temporarily at runtime via environment
variables. This moves the recently-added code for doing this on Windows
to a shared location for use by all desktop embeddings.

This is enabled only for debug/profile to avoid potential issues with
tampering with released applications, but if there is a need for that in
the future it could be added (potentially with a whitelist, as is
currently used for Dart VM flags).

Temporarily adds a way to enable mirrors as a compile time option,
as is already provided in the Linux embedding, to provide a migration
path for the one remaining known need for compile-time options
that has been raised in flutter/flutter#38569.
2020-09-29 09:36:30 -07:00
Kaushik Iska
149df4318d
Reland multiple display support for embedder API (#21464) 2020-09-28 12:35:34 -07:00
Kaushik Iska
8d165faca1
Revert multiple display support for embedder API (#21456)
This reverts commits
- 67fdd7ededcbb161a857cc187619ae115c8c8e7f.
- 854943d5c8670a241524b71945b2c8ca77246556.

See: https://github.com/flutter/flutter/issues/66829
2020-09-28 09:46:46 -07:00
Kaushik Iska
2917a65011
[ios] Remove unused is_valid_ from IOS Metal Context (#21432) 2020-09-28 08:05:48 -07:00
Kaushik Iska
854943d5c8
[macOS] Set the display refresh rate (#21095)
Fixes: https://github.com/flutter/flutter/issues/49222
2020-09-26 06:47:26 -07:00
Jenn Magder
c9b40c67fc
Remove ASCII art from mDNS error log (#21397) 2020-09-25 11:34:26 -07:00
Kaushik Iska
67fdd7eded
Embedder API Support for display settings (#21355)
Embedders can now notify shell during startup about the various displays and their corresponding settings.
Adds a notion of Display update type which can later include chages to displays during runtime such as addition / removal / reconfiguration of displays.

We also remove the responsibility of providing the refresh rate from `vsync_waiter` to `DisplayManager`.
Rewires existing platform implementations of the said API to use `Shell::OnDisplayUpdate` to notify the display manager of the startup configuration.

DisplayManager is also thread-safe to account for rasterizer and UI thread accesses.
2020-09-25 11:04:10 -07:00
Tim Sneath
dd35b5b659
Update FlutterViewController.mm (#21362)
Tweaked the label here a little for style ("apps", not "application" -- plural and shorter); and "launching" rather than "re-launching"?
2020-09-23 13:52:52 -07:00
Mehmet Fidanboylu
2de96a2d5d
Remove spurious semicolon (#21333) 2020-09-22 22:53:53 -07:00
LongCatIsLooong
3f27800f5b
[iOS TextInput] Avoid Unnecessary UndateEditingClient Calls (#21303) 2020-09-21 15:27:02 -07:00
Chris Yang
678653bfb6
Fix iOS platform view's mask view blocking touch events. (#21286) 2020-09-21 15:22:47 -07:00
Jenn Magder
8360b13471
Dark mode friendly iOS debugging message (#21277) 2020-09-21 15:07:02 -07:00