418 Commits

Author SHA1 Message Date
Chris Yang
cea2c3617f
Mutators Stack refactoring (#9663)
Rename methods in the MutatorsStack to Pascal case to match standard cpp style
Refactor the operator== for Mutator class
2019-07-03 11:18:14 -07:00
Kaushik Iska
791143f172
ExternalViewEmbedder can CancelFrame after pre-roll (#9660)
* ExternalViewEmbedder can CancelFrame after pre-roll

- Resets the state so next pre-roll can be successful.
- Commit any pending `CATransaction` so we don't create
  nested transactions.

* Update flow/embedded_views.h
2019-07-03 08:38:19 -07:00
Kaushik Iska
d637f291a9
External view embedder can tell if embedded views have mutated (#9653)
* refactoring to move the mutator stack handling to preroll

* more review fixes

* Add support for external view embedded to know if it has changed

* remove the need to reset

* address comments

* Rename to HasPendingViewOperations
2019-07-03 07:28:53 -07:00
Chris Yang
8306ee68c7 Move the mutators stack handling to preroll (#9651)
* refactoring to move the mutator stack handling to preroll

* more review fixes
2019-07-02 16:35:47 -07:00
Chris Yang
8deeb77f05
make EmbeddedViewParams a unique ptr (#9640) 2019-07-02 13:27:12 -07:00
Chris Yang
a9ee687ac9
iOS PlatformView clip path (#9478) 2019-07-02 10:56:59 -07:00
gaaclarke
4e48fc47c4
Switched preprocessor logic for exporting symbols for testing. (NDEBUG (#9562)
wasn't working for Luci builds).
2019-06-27 18:03:59 -07:00
gaaclarke
50a8e73615
Has a binary messenger (#9419)
Made the engine and the view controllers have BinaryMessengers, not be
BinaryMessengers.  This allows us to break retain cycles and makes the
leaking channels we have not less dire.
2019-06-27 17:25:32 -07:00
Qxyat
6f7700fc83 fix FlutterOverlayView doesn't remove from superview in some cases (#9532) 2019-06-27 09:07:52 -07:00
Dan Field
da82361dad
Purge caches on low memory on iOS (#9491) 2019-06-25 20:47:55 -07:00
Chris Yang
2f1d4f03b5
fix build breakage on PlatformViews.mm (#9495) 2019-06-25 18:26:31 -07:00
Chris Yang
1ab99fb355
fix a bug where the platform view's transform is not reset before set frame (#9490) 2019-06-25 17:43:21 -07:00
Chris Yang
aa9b3a180a
Reland "IOS Platform view transform/clipping (#9075)" and fix the breakage. (#9483)
* Revert "Revert "IOS Platform view transform/clipping (#9075)" (#9480)"

This reverts commit 00d929f7f6088375b006746718a65b84678d01c0.

* fix fuschia buid
2019-06-25 15:29:47 -07:00
Chris Bracken
00d929f7f6
Revert "IOS Platform view transform/clipping (#9075)" (#9480)
This reverts commit ebb5b909fbb10dad2275acd4fc8ec1d9744a0bf6.

Seeing the following breakage on host build:
```
../../flutter/flow/scene_update_context.cc:205:36: error: non-const lvalue reference to type 'flutter::MutatorsStack' cannot bind to a value of unrelated type 'const flutter::Stopwatch'
                                   frame.context().raster_time(),
                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../flutter/flow/scene_update_context.cc:207:36: error: no viable conversion from 'flutter::TextureRegistry' to 'const flutter::Stopwatch'
                                   frame.context().texture_registry(),
                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../flutter/flow/instrumentation.h:55:32: note: candidate constructor not viable: no known conversion from 'flutter::TextureRegistry' to 'const flutter::Stopwatch &' for 1st argument
  FML_DISALLOW_COPY_AND_ASSIGN(Stopwatch);
                               ^
../../flutter/fml/macros.h:28:3: note: expanded from macro 'FML_DISALLOW_COPY_AND_ASSIGN'
  TypeName(const TypeName&) = delete;          \
  ^
../../flutter/flow/scene_update_context.cc:208:36: error: non-const lvalue reference to type 'flutter::TextureRegistry' cannot bind to a temporary of type 'flutter::RasterCache *'
                                   &frame.context().raster_cache(),
                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../flutter/flow/scene_update_context.cc:209:36: error: cannot initialize a member subobject of type 'const flutter::RasterCache *' with an rvalue of type 'bool'
                                   false};
                                   ^~~~~
```
2019-06-25 10:48:37 -07:00
Chris Yang
ebb5b909fb
IOS Platform view transform/clipping (#9075) 2019-06-25 09:33:50 -07:00
gaaclarke
cd973f8aae
Added unit tests for the ios code. (#9388)
* Added unit tests for the ios code.

* Moved the tests to live next to the source.

* Added mocking library.

* Fixed formatting and removed third_party from the format check.

* fixed formatting 2

* Removed ocmock from third_party.

* Added ocmock to third_party, compile from source.

* removed ocmock from license checking

* updated licenses_flutter

* updated tool_signature
2019-06-20 17:37:03 -07:00
gaaclarke
54f88ab5da
Revert "Surrogate binary messenger (#9347)" (#9375)
This reverts commit 2f36285bc8d486a584e0ea917fae90245f2c5168.

This was crashing the integration test `- (void)testDualFlutterView`.
2019-06-19 12:29:08 -07:00
chunhtai
9ab6550b45
Introduce read only text field semantics (#9281) 2019-06-19 09:42:23 -07:00
gaaclarke
2f36285bc8
Surrogate binary messenger (#9347)
Created FlutterSurrogateBinaryMessenger to make sure that channels are
holding onto engines and not viewcontrollers.  This doesn't change the
public API but makes clients do what we want them to be doing, using
Engine for FlutterBinaryMessenger.
2019-06-18 17:58:45 -07:00
stuartmorgan
e00ac47f49
Reorganize darwin for shared ios/macOS (#9255)
When the macOS framework was initially landed, it included some iOS code
using a localized hack. This reorganizes the code structure to clearly
indicate which files are shared between iOS and macOS, vs. those that
are platform-specific.
2019-06-17 11:24:41 -07:00
gaaclarke
a0f85546f4
Removed an unused class definition for iOS code. (#9346) 2019-06-17 10:20:35 -07:00
Jenn Magder
1caff8d073
Decorate UIApplicationDelegate wrappers with matching UIKit deprecation (#9304) 2019-06-13 10:16:42 -07:00
Zachary Anderson
0a2e28d797
Revert tracing changes (#9296)
* Revert "[fuchsia] Fix alignment of Fuchsia/non-Fuchsia tracing (#9289)"

This reverts commit f80ac5f571479053b134e60bca77603269b2ce2a.

* Revert "Align fuchsia and non-fuchsia tracing (#9199)"

This reverts commit 78265484623037c6544dfd5380367bca29fa27b0.
2019-06-12 10:25:49 -07:00
Dan Field
9baf589d19
[iOS] [a11y] Don't allow scroll views to grab a11y focus (#9282) 2019-06-11 18:02:47 -07:00
Wu Zhong
2091467418 Correct typo (#9244) 2019-06-09 09:06:43 -07:00
liyuqian
9f088c65ee
Add onReportTimings and FrameRasterizedCallback API (#8983)
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.
2019-06-06 10:42:48 -07:00
Dan Field
7826548462
Align fuchsia and non-fuchsia tracing (#9199) 2019-06-05 15:14:27 -07:00
Chris Yang
2fcd4e799b
Do nothing if the params didn't change when compositing iOS platform views. (#8999) 2019-06-03 13:08:29 -07:00
Dan Field
79c6ce19a1
Preserve safe area (#8848)
Preserve safe area on Window regardless of insets.
2019-05-31 09:24:38 -07:00
Chris Yang
49b6de8c5c
Dynamically add certain iOS AppDelegate methods. (#8843) 2019-05-30 09:06:49 -07:00
Chris Bracken
0f1ff3bdb3
Correct typos, adopt US spellings (#9081)
Corects a bnuch of typeos throughout teh engien codebsae. Also makes
a couple minor Commonwealth -> US spelling adjustments for consistency
with the rest of Flutter's codebase.

Made use of `misspell` tool:
https://github.com/client9/misspell
2019-05-25 13:14:46 -07:00
Matthew Dempsky
ee5915fbb0 Avoid unnecessary copying of vectors in AccessibilityBridge (#9033) 2019-05-21 12:39:11 -07:00
Dan Field
9d7cd70ce5
add observatoryUrl property to FlutterEngine (#8987) 2019-05-16 13:14:34 -07:00
stupidfive
47fd66c89b Terminate debug background task on expiry (#8930)
When backgrounding an app in debug mode, we make a request for
additional background time for the app with a background task. This
prevents us from losing the devfs session used for hot reload. In the
case where the app is backgrounded beyond the additional time provided
by iOS, it's required that we end the background task or the app will
be terminated by the OS.

We previously ended the background task only on foregrounding, but
failed to do so on expiry of the task.
2019-05-13 11:29:05 -07:00
Chinmay Garde
5526884e78
Wire up the Skia Metal backend on iOS. (#8936) 2019-05-11 15:21:26 -07:00
Chris Yang
0bc6dc9746
Platform_views gesture: let flutter view controller be the media to pass the touches. (#8685)
This PR updated the forwarding gesture recognizer to pass the touch events directly to the FlutterViewContoller instead of FlutterView which ensures the touches events are passed to the framework.
2019-05-10 09:58:33 -07:00
Chris Yang
d8646ed07c
Fix the iOS accessibility tree structure of platform views. (#8731)
Partially fix the issue in flutter/flutter#30804. This only fixes the focus issue for other platform views (Google maps and other custom platform views), but the same issue on WebView is not fixed.

Before the change, the a11y tree with platform view looks like

```
<some parent a11y container>
     <SemanticsObject for platform view>
     <FlutterPlatformViewSemanticsContainer>
          <platform view>
```
After the change, it looks like

```
<some parent a11y container>
     <FlutterPlatformViewSemanticsContainer>
          <SemanticsObject>
          <platform view>
```

This PR also updated the implementation of FlutterPlatformViewSemanticsContainer to use A11yContainer protocol to implement the details on various a11y attribute including the accessibilityFrame and accessibilityScroll.
2019-05-09 16:52:46 -07:00
Dan Field
ac4f3c9945
Prevent iOS from autofilling password into wrong text box (#8894) 2019-05-08 01:00:05 -07:00
Dan Field
57bf1c0968
Fix crash when cursor ends up at invalid position (#8747) 2019-04-26 15:43:44 -07:00
liyuqian
1c9457cedc
Revert "Only allow mappings for ICU initialization. (#8656)" (#8682)
This reverts commit bd8c5b135e4d41842d0d5d42ff4943a18b8f4f0c.

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
2019-04-22 10:28:54 -07:00
Chinmay Garde
bd8c5b135e
Only allow mappings for ICU initialization. (#8656)
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.
2019-04-19 15:01:40 -07:00
Ben Konyi
763bbca0cc
Add support for authentication codes via MDNS on iOS (#8625) 2019-04-18 12:12:29 -07:00
liyuqian
8ff631f3df
Rename flow namespace to flutter (#8615)
This follows our namespace change from shell to flutter: https://github.com/flutter/engine/pull/8520.
2019-04-17 14:38:45 -07:00
Chris Bracken
f53e477a65
Correct nullability for FlutterStandardReader (#8537)
FlutterStandardReader's `readValueOfType:` method returns nil when
called with `FlutterStandardFieldNil`. By extension, `readValue` can
also return nil values.
2019-04-11 09:59:08 -07:00
Chinmay Garde
56052c70af
Rename the shell namespace to flutter. (#8520) 2019-04-09 17:10:46 -07:00
Chinmay Garde
eec74e5c92
Rename the blink namespace to flutter. (#8517)
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.
2019-04-09 12:44:42 -07:00
KyleWong
0bf708ee1a Refactor ios play input sound logic. (#7783)
As there are extra requirement to use playInputClick in iOS, use AudioServicesPlaySystemSound instead to play input sound.
2019-04-08 11:31:23 -07:00
xster
8b74cba20b
Make sure FlutterViewController flushs all pending touches when no longer active (#8400) 2019-04-04 16:22:37 -07:00
Chris Yang
cfe8675ff5
Delay platform view removal to submitFrame. (#8380)
Remove platform views inside OnDispose might cause issue if it happens before SubmitFrame and the active_composition_order has not been updated.
We will be left at a situation where the active_composition_order still contains the old view, but the view is actually removed from the UIView hierarchy.

We now cache the views need to be removed in OnDispose and actually remove them in SubmitFrame. At the same time, we remove stop detaching the subviews if they were disposed. 

As a side effect, this update will also fix flutter/flutter#30220
2019-04-01 17:06:32 -07:00
Dan Field
40eb74c50b
Make the resource context primary on iOS (#8387)
* Make resource context primary on iOS
2019-04-01 12:46:28 -07:00