552 Commits

Author SHA1 Message Date
LongCatIsLooong
104df6bba4
Add autofill support to ios text input plugin (#17493) 2020-04-16 02:47:53 -07:00
gaaclarke
3791f0bc8c
Added some tests after the fact for #17499 (#17714) 2020-04-15 11:52:52 -07:00
gaaclarke
6d17ce60cb
switched to using the ocmock build file in //build (#17707) 2020-04-14 14:43:29 -07:00
gaaclarke
61ec840edd
Made it so unit tests can be written against all ios engine code. (#17624) 2020-04-13 12:34:54 -07:00
Chris Yang
68fd833488
Reland "Improve iOS PlatformViews to better handle thread merging. #16935" (#17609) 2020-04-10 13:25:02 -07:00
gaaclarke
1c6934eaad
Enabled hiding the home indicator with SystemChrome.setEnabledSystemUIOverlays (#17574) 2020-04-09 09:43:38 -07:00
Chris Yang
caebc93e0c
Revert "Improve iOS PlatformViews to better handle thread merging. (#16935)" (#17600)
This reverts commit f6b8eda714680e308a801d15829a5f71abee75d1.
2020-04-08 21:15:38 -07:00
Chris Yang
f6b8eda714
Improve iOS PlatformViews to better handle thread merging. (#16935) 2020-04-08 17:33:33 -07:00
LongCatIsLooong
e59543708d
iOS UITextInput autocorrection prompt (#13959) 2020-04-07 14:45:59 -07:00
gaaclarke
8f6590cbbc
Added "unrecognized-selector" errors to match g3 builds (#17566)
Added "unrecognized-selector" errors to match g3 builds, added
"overriding-method-mismatch" to catch a common error.
2020-04-07 13:28:42 -07:00
Ryoichi Izumita
ac574e11a0
Fixed a bug that left a blank at the bottom of the screen (#17474)
I fixed a bug that left a blank at the bottom of the screen when the iPad's split keyboard was hidden.

I also had the same problem with this issue, so I fixed it.
iPad split keyboard cause a blank space problem

There is no function to change the space size at the bottom of the screen when the split keyboard is moved. This is because it's not clear what the keyboard should do when it's moved to the top of the screen.
2020-04-07 11:27:15 -07:00
Chris Bracken
b2cc00f078
Revert "Added errors to match g3 builds and simple errors (#17536)" (#17564)
Test failure:

    [ RUN      ] FlutterStringCodec.CanEncodeAndDecodeNil
    2020-04-07 10:21:25.091 flutter_channels_unittests[26965:163315] *** Assertion failure in -[FlutterStringCodec encode:], ../../flutter/shell/platform/darwin/common/framework/Source/FlutterCodecs.mm:36
    2020-04-07 10:21:25.118 flutter_channels_unittests[26965:163315] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: ''
    *** First throw call stack:
    (
    	0   CoreFoundation                      0x00007fff2ccabcf9 __exceptionPreprocess + 256
    	1   libobjc.A.dylib                     0x00007fff5785ea17 objc_exception_throw + 48
    	2   CoreFoundation                      0x00007fff2ccc6a16 +[NSException raise:format:arguments:] + 98
    	3   Foundation                          0x00007fff2ef58e11 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 194
    	4   flutter_channels_unittests          0x0000000105f1cce2 -[FlutterStringCodec encode:] + 290
    	5   flutter_channels_unittests          0x0000000105f01bbb _ZN45FlutterStringCodec_CanEncodeAndDecodeNil_Test8TestBodyEv + 107
    	6   flutter_channels_unittests          0x00000001081d1732 _ZN7testing8internal38HandleSehExceptionsInMethodIfSupportedINS_4TestEvEET0_PT_MS4_FS3_vEPKc + 146
    	7   flutter_channels_unittests          0x00000001081a76b0 _ZN7testing8internal35HandleExceptionsInMethodIfSupportedINS_4TestEvEET0_PT_MS4_FS3_vEPKc + 128
    	8   flutter_channels_unittests          0x00000001081a75c1 _ZN7testing4Test3RunEv + 209
    	9   flutter_channels_unittests          0x00000001081a8415 _ZN7testing8TestInfo3RunEv + 229
    	10  flutter_channels_unittests          0x00000001081a95aa _ZN7testing9TestSuite3RunEv + 266
    	11  flutter_channels_unittests          0x00000001081b4e43 _ZN7testing8internal12UnitTestImpl11RunAllTestsEv + 995
    	12  flutter_channels_unittests          0x00000001081d8572 _ZN7testing8internal38HandleSehExceptionsInMethodIfSupportedINS0_12UnitTestImplEbEET0_PT_MS4_FS3_vEPKc + 146
    	13  flutter_channels_unittests          0x00000001081b49b3 _ZN7testing8internal35HandleExceptionsInMethodIfSupportedINS0_12UnitTestImplEbEET0_PT_MS4_FS3_vEPKc + 131
    	14  flutter_channels_unittests          0x00000001081b4835 _ZN7testing8UnitTest3RunEv + 197
    	15  flutter_channels_unittests          0x0000000105f22e73 _Z13RUN_ALL_TESTSv + 35
    	16  flutter_channels_unittests          0x0000000105f22d79 main + 553
    	17  libdyld.dylib                       0x00007fff5908c3d5 start + 1
    )
    libc++abi.dylib: terminating with uncaught exception of type NSException
    [ERROR:flutter/fml/backtrace.cc(110)] Caught signal SIGABRT during program execution.
    Frame 0: 0x7fff591316a6 abort
    Frame 1: 0x7fff560ea641 __cxa_bad_cast
    Frame 2: 0x7fff560ea7df default_unexpected_handler()�
    Frame 3: 0x7fff57860ee3 _objc_terminate()�
    Frame 4: 0x7fff560f619e std::__terminate(void (*)())�
    Frame 5: 0x7fff560f5f86 __cxa_get_exception_ptr
    Frame 6: 0x7fff560e8f99 __cxa_get_globals
    Frame 7: 0x7fff5785eb51 objc_exception_throw
    Frame 8: 0x7fff2ccc6a16 +[NSException raise:format:arguments:]
    Frame 9: 0x7fff2ef58e11 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:]
    Frame 10: 0x105f1cce2 -[FlutterStringCodec encode:]
    Frame 11: 0x105f01bbb FlutterStringCodec_CanEncodeAndDecodeNil_Test::TestBody()�
    Frame 12: 0x1081d1732 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*)�
    Frame 13: 0x1081a76b0 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*)�
    Frame 14: 0x1081a75c1 testing::Test::Run()�
    Frame 15: 0x1081a8415 testing::TestInfo::Run()�
    Frame 16: 0x1081a95aa testing::TestSuite::Run()�
    Frame 17: 0x1081b4e43 testing::internal::UnitTestImpl::RunAllTests()�
    Frame 18: 0x1081d8572 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*)�
    Frame 19: 0x1081b49b3 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*)�
    Frame 20: 0x1081b4835 testing::UnitTest::Run()�
    Frame 21: 0x105f22e73 RUN_ALL_TESTS()�
    Frame 22: 0x105f22d79 main
    Frame 23: 0x7fff5908c3d5 start

This reverts commit d1c90b4284282f9745ecd7c65aa72c612df671c1.
2020-04-07 10:32:38 -07:00
gaaclarke
d1c90b4284
Added errors to match g3 builds and simple errors (#17536)
"unrecognized-selector" and "overriding-method-mismatch" added as errors.
2020-04-07 10:03:49 -07:00
gaaclarke
ba615d5269
Added missing declaration (only showed up in g3 builds). (#17535) 2020-04-06 15:02:47 -07:00
gaaclarke
19a7fbf02f
Fixed nullability in plugin header and overridden type mismatch error. (#17532) 2020-04-06 13:23:00 -07:00
gaaclarke
bac37de43d
refactor: split up accessibility bridge and semantics object (#17507) 2020-04-03 16:54:33 -07:00
gaaclarke
4cfbe45033
Started clearing out the parent of orphaned semantic objects. (#17499) 2020-04-03 14:35:48 -07:00
Dan Field
ff62dec5c9
Roll to clang11, mark 4 (#17483)
* "Reland Clang 11, roll buildroot to 1bc40a5f916adb93d87e2a2230a0ec43db876c1c, take 4 (#17467)" (#17482)"

This reverts commit 8166a91bca11b83c16fba8f8fd407e937a2ac89c.

* format code

* Roll buildroot to 3a27de1c5bb0f50be7d3efe3e00de4f6068c9f30
2020-04-02 13:04:49 -07:00
Dan Field
3002e25eb4
Initialize locale from FlutterEngine (#17473)
* Initialize locale from FlutterEngine
2020-04-02 10:06:06 -07:00
Chinmay Garde
6bdbe16760
Fix iOS builds on Xcode 11.4 for new enum values added in iOS 13.4. (#17429)
The following issues have been filed to track the handling of these enum values:

* Handle the UITouchTypeIndirectPointer enum value. https://github.com/flutter/flutter/issues/53696
* Handle the UITouchPhaseRegion enum values. https://github.com/flutter/flutter/issues/53695

No change in functionality. Only makes the iOS engine build on the latest
versions of Xcode and iOS SDK. The enum values cannot be used with the
API_AVAILABLE macro because the buildbots have not been updated yet.
2020-03-31 15:10:05 -07:00
liyuqian
807ca8543c
More rename from GPU thread to raster thread (#17408)
This PR touches variable names, class names, and file names so it's significantly more risky than its predecessor https://github.com/flutter/engine/pull/17329

Due to file name changes, this PR is expected to change the license files.

We haven't rename `shell/gpu` to `shell/raster` yet. It should be optional but I think it's better to have `raster_surface_software.cc` than `gpu_surface_software.cc`.
2020-03-31 14:05:28 -07:00
wqyfavor
915e63ecb7
Fix FlutterView's _delegate is not declared as ivar but a global variable. (#17206) 2020-03-30 14:26:03 -07:00
Emmanuel Garcia
b716cbba71
Reland unobstructed platform views (#17336) 2020-03-27 16:39:29 -07:00
liyuqian
b3075b3091
Rename GPU thread to raster thread in code comments (#17329)
1. Simple "GPU thread" to "raster thread" replacement.

2. Regex replace "GPU([\n\r\s]+//+ thread)" with "raster$1".

3. Regex replace "// gpu$" with "// raster".

4. Simple test change.

5. Run ci/format.sh
2020-03-25 22:49:59 -07:00
Emmanuel Garcia
b235233e9d
Revert unobstructed platform views (#17326) 2020-03-25 14:36:10 -07:00
Emmanuel Garcia
e2d9c60393
Flush background canvas before allocating a new surface (#17308) 2020-03-24 20:10:10 -07:00
gaaclarke
6fef0d0a0b
Removed a text input trait that causes VoiceOver to be incorrect when tapping a text input. (#17203) 2020-03-23 12:57:15 -07:00
gaaclarke
9343c5ed28
added missing mock to MockEngine for iOS unit tests (#17273) 2020-03-23 11:38:42 -07:00
gaaclarke
8a8b298405
Added a log message when sharing a FlutterEngine across multiple FlutterViewControllers. (#17186) 2020-03-23 10:44:53 -07:00
Emmanuel Garcia
f5d25da83c
Reland: Implement unobstructed Platform Views on iOS (#17237) 2020-03-20 18:58:55 -07:00
Emmanuel Garcia
70f6d18bfa
Revert "Implement unobstructed Platform Views on iOS (#17049)" (#17233)
This reverts commit 2627634be807a28f4d56c5d7cd878c3ff6ce07ac.
2020-03-20 14:46:09 -07:00
Emmanuel Garcia
2627634be8
Implement unobstructed Platform Views on iOS (#17049) 2020-03-20 12:38:58 -07:00
Chinmay Garde
17e07c537e
Implement asynchronous texture uploads when using the Metal backend on iOS. (#17046)
This moves the Metal `GrContext` creation utilities from `GPUSurfaceMetal` into
a separate `IOSContext` object subclass. An analogue of this object was used in
the GL regime for the management of onscreen and offscreen contexts that were
not tied to the lifecycle of the `GPUSurface`. This pattern has now been
generalized for use with all backends that need a resource context
(`IOSContextGL` and `IOContextMetal`).

The platform views controller management in the `ExternalViewEmbedder` interface
implementation was repeated three times for [Metal][metal], [OpenGL](opengl) and
[Software](software) rendering. This repetition has been removed and a single
implementation present in the base `IOSSurface` and used on all platforms.
Addition of new client rendering APIs should not affect how the engine renders
into the platform view interleaving levels.

All rendering API selection logic has been moved into a single set of utilities
in `rendering_api_selection.h`. This enables the removal of a lot of code blocks
guarded by `FLUTTER_SHELL_ENABLE_METAL`. The remaining uses of this will be
removed when unified builds are enabled.

The Metal backend now also adds traces similar to the GL backend.

The `IOGLContext` has been renamed to `IOContextGL` to be more in line with the
convention used in this library.

Fixes https://github.com/flutter/flutter/issues/41827
Adds https://github.com/flutter/flutter/issues/52150

[metal]: 1194ba2b21/shell/platform/darwin/ios/ios_surface_metal.mm (L55)
[opengl]: 1194ba2b21/shell/platform/darwin/ios/ios_surface_gl.mm (L95)
[software]: 1194ba2b21/shell/platform/darwin/ios/ios_surface_software.mm (L146)
2020-03-10 16:01:53 -07:00
Duong Nguyen
fe051e08ac
Fix issue viewdidload call while init FlutterViewController (#16672)
Co-authored-by: Aaron Clarke <aaclarke@google.com>
2020-03-06 09:35:40 -08:00
Kirill Nikolaev
7381ca8ddf
Avoid generating VSYNC trace events from Flutter common code. (#16248)
Chrome Trace viewer treats events labeled "VSYNC" as special and highlights them (when the "Highlight Vsync" checkbox is enabled). Ideally VSYNC events are generated by the host system at their source. System VSYNC events are indeed present in full-system systraces. Flutter-level traces (as seen in Observatory/Flutter devtools) do not contain the system VSYNC events, so we rely on the engine to generate them (as close to where they would be generated by the system ideally).

Currently the common (platform-independent code) generates VSYNC events at the time when the UI thread starts processing a frame. This has two drawbacks:
1. The traces are generated with a delay (we wait for the callback to be have been scheduled on the UI thread instead of tracing as soon as the system notified us.
2. When inspecting system-wide traces we'll have both the system and the Flutter app (or potentially multiple Flutter apps) generate VSYNC events at the same time. This confuses both the developers and the trace viewer.

This change moves the VSYNC event generation to the platform-specific embedder implementations:
1. On Android/iOS we always generate the VSYNC event since Android/iOS developers use Flutter tools to debug the apps.
2. On Fuchsia we do not generate VSYNC events since the systraces always contain them.
3. In the Embedder wrapper we don not generate VSYNC events and rely on the actual embedder to do this in a way appropriate for the target system.
2020-03-05 16:59:43 +01:00
gaaclarke
59b4d9b3b8
Fixed the ability to scroll to the top on iOS 13 (#16820) 2020-03-04 10:53:11 -08:00
Flutter GitHub Bot
3362c5fa9e
Remove debug log (#16932) 2020-03-04 10:36:03 -08:00
Chris Bracken
1aef7a4369
Delete FlutterAppDelegate_Internal.h (#16772) 2020-02-24 11:11:03 -08:00
Miguel Beltran
d0c2418dfe
Add support for Increase Contrast on iOS (#15343) 2020-02-22 14:04:04 -08:00
Chris Yang
5fb0116d62
iOS platform view gesture blocking policy. (#15940) 2020-02-11 15:34:59 -08:00
Dan Field
d589ddea68
Fix text range logic for a11y (#16496)
Make sure that a text range at the end of the string is still valid.
2020-02-07 12:20:30 -08:00
gaaclarke
76b291a659
Added a plugin method that gets called when the engine is about to be deleted (#16336) 2020-02-05 16:12:16 -08:00
gaaclarke
036c370c34
Copied Apple's semantics for switches, made checkboxes the same. (#16211) 2020-02-05 10:13:31 -08:00
gaaclarke
71de21c7e7
Started coalescing updates to viewport metrics after foregrounding the app. (#16270) 2020-01-31 09:31:27 -08:00
Chris Yang
ec32966e03
Revert "Always make gpu thread different from platform thread regardless of platform view (#16068)" (#16161)
This reverts commit 0889e97889c80adfc260ada8d0b3b78a8f63bc06.
2020-01-28 15:12:25 -08:00
Chris Yang
0889e97889
Always make gpu thread different from platform thread regardless of platform view (#16068) 2020-01-28 11:36:43 -08:00
Dan Field
89f3471fa7
the the fix (#15973) 2020-01-24 12:43:32 -08:00
Wu Zhong
45fe095d09 Fixes FlutterCallbackInfomation leaks (#15089)
See: flutter/flutter#46750
2020-01-23 16:33:26 -08:00
Wu Zhong
e9be397484 Fixes oc leaks in platform plugin (#15041)
Some objc objects are not released in the iOS embedder. This fixes a
subset of those leaks in FlutterPlatformPlugin.mm.
2020-01-23 16:32:31 -08:00
Wu Zhong
439a21816e Fixes labelPrefix memory leak in FlutterEngine (#14674) 2020-01-23 14:07:51 -08:00