263 Commits

Author SHA1 Message Date
Michael Goderbauer
e44cd55fc4
Manually given hint,value,label,trait has precedence for TextFields on iOS (#4777) 2018-03-12 17:56:08 -07:00
Chinmay Garde
5bffdefbbf
Use weak pointers to the accesibility bridge from objects vended to the UIKit accessibility framework. (#4761) 2018-03-08 17:23:01 -08:00
Michael Goderbauer
7f7634fa17
Add SemanticsFlag for Header (#4752) 2018-03-06 15:43:13 -08:00
Chris Bracken
269bab73b6
Add nil check for country code and language code (#4732)
NSLocale objectForKey: may return nil for NSLocaleLanguageCode and
NSLocateCountryCode in certain cases.

This adds a defensive nil check for such cases.
2018-03-01 13:46:22 -08:00
Sarah Zakarias
4d7065af2d
remove unavailabe API from FlutterDartProject.mm (#4724) 2018-02-28 14:04:14 +01:00
Sarah Zakarias
42bbef1d7e
Remove unavailable API in FlutterDartProject.h (#4723) 2018-02-28 13:37:00 +01:00
xster
ba98f2634b
Add more haptic feedback varieties (#4699)
* Add more haptic feedback varieties

* Make the specific feedback types do nothing on <iOS 10
2018-02-27 14:55:18 -08:00
Chris Bracken
a5134d878b
Re-enable Dart_TimelineGetMicros on init on macOS (#4712)
Previously, a call to Dart_TimelineGetMicros() before a call to
Dart_Initialize() resulted in a crash. This was fixed in
dart-lang/sdk@7434bcad57.

Related:
* flutter/flutter#4006: SkyShell.app on Mac crashes on startup
* dart-lang/sdk#26486:  [dart_tools_api.h] Dart_TimelineGetMicros crashes on Mac if called before Dart_Initialize
2018-02-24 10:21:40 -08:00
Yegor
3bbc71df69
fix naming of static function intToComparisonResult (#4685) 2018-02-22 11:24:51 -07:00
Mikkel Nygaard Ravn
13cf22c284
Place LICENSE as sibling of podspec (#4691) 2018-02-19 16:33:30 +01:00
Yegor
503f86d54c
iOS a11y: Implement strong down weak up reference management (#4602)
* fix iOS crash in a11y mode when used too fast

* clang-format
2018-02-15 16:33:05 -08:00
Brian Osman
f8778fce17
On iOS, render to an offscreen surface to avoid renderbuffer slowdown (#4680)
* On iOS, render to an offscreen surface to avoid renderbuffer slowdown

Fixes https://github.com/flutter/flutter/issues/14565

* null out old offscreen surface
2018-02-14 16:17:35 -05:00
Chris Bracken
439edca287
Fix unguarded availability warnings for iOS (#4664)
Place all iOS code that relies on APIs introduced in iOS versions later
than our base SDK version (iOS 8) behind @available checks. This allows
us to enable the -Wunguarded-availability compiler flag for iOS builds
in the buildroot repo.
2018-02-13 11:49:43 -08:00
Michael Goderbauer
a00f94582b
Add accessibilityFocus and loseAccessibilityFocus as a11y actions (#4655) 2018-02-09 17:47:52 -08:00
Michael Goderbauer
8ac6f6efa1
Encode scrolling status into tree (#4647) 2018-02-09 15:39:58 -08:00
Alexander Aprelev
c60d817093
Remove xibs (#4648) 2018-02-07 16:20:06 -08:00
Yegor
6dd49f0695
iOS a11y text entry (~70% of it) (#4575)
* implement iOS text field editing in a11y mode

* address Chinmay's comments

* replace node in child list when changing type
2018-02-05 15:14:13 -08:00
Chris Bracken
dbc071aa62
Use @available checks for iOS 11 features (#4619)
Use @available checks for iOS 11 features
2018-01-30 09:36:21 -08:00
Coder256
c92e3df2b1 Only implement application:performActionForShortcutItem:completionHandler: on iOS 9.0+. And fix some tests. (#4600) 2018-01-30 08:00:39 -08:00
Chris Bracken
521c73ded8
Revert "Use @available checks for iOS 11 features (#4596)" (#4597)
This reverts commit 89b6d435205d9bcdf8dde965dd1b0432482407c5.

Apparently the clang toolchain is still hitting issues. Will give this
another go after the next clang toolchain update.
2018-01-26 16:08:18 -08:00
Chris Bracken
89b6d43520
Use @available checks for iOS 11 features (#4596)
Guard code that deals with iOS safe area insets behind an @available
check.

This cleans up some old TODOs from before out clang toolchain supported
@available.
2018-01-26 15:51:00 -08:00
Chris Bracken
f937d93138
Extract common iOS asset path lookup code (#4594)
Consolidates the asset path lookup logic from FlutterDartProject and FlutterMain().
2018-01-26 14:27:46 -08:00
Alexander Aprelev
6921873c71
Lookup FTLAssetsPath when deducing assets path on ios (#4593)
* Lookup FTLAssetsPath when deducing assets path on ios

* WS

* Proper fix

* Another whitespace fix
2018-01-26 13:45:04 -08:00
Yegor
2fe8b648ed
use Human Interface Guidelines for a11y and non-a11y text sizes (#4586) 2018-01-24 15:46:35 -08:00
Alexander Aprelev
e582928a49
Accommodate flutter test --preview-dart-2 on windows and linux (#4564)
* Support .packages option in frontend_server, bundle_path in main_mac.

This is needed to be able to run  in  mode.

* Remove byte store tests

* Remove unused import

* Fix formatting

* Enable flutter test argument passing on win and linux.

* Fix formatting
2018-01-18 16:05:19 -08:00
Sarah Zakarias
73a9ea68b9
Mark deprecated API in FlutterDartProject.h as unavailable (#4552) 2018-01-15 13:29:43 +01:00
Alexander Aprelev
cdf869bcd7
When running on iOS deduce bundle path during engine initialization. (#4532) 2018-01-10 17:40:47 -08:00
Mikkel Nygaard Ravn
84fc920fde
Deprecate support for big integers in standard message codec (#4528) 2018-01-09 23:58:45 +01:00
Michael Goderbauer
12e0e38a8b
Split SemanticsFlags.isDisabled into two (#4517) 2018-01-04 15:15:54 -08:00
Alexander Aprelev
6bacf4522e
This adds RPC call to set asset path. (#4323)
* This adds rpc call to simply set asset path.

This is needed when doing hot reload to pick up updated assets.

* Move asset_directory fetch for after view_id. Clean up return. Fix formatting.

* Add SetAssetBundlePath methods implementations for mac and ios

* Fix mac mm

* Fix formatting

* Merge and use nullptr
2018-01-04 09:48:01 -08:00
Michael Goderbauer
26010cf483
Add SemanticsFlag.isDisabled (#4503) 2018-01-02 15:57:52 -08:00
Michael Goderbauer
937bde8f98
A11y nodes with only value or hint are focusable (#4481) 2017-12-20 11:15:10 -08:00
Sarah Zakarias
4cbe26dd37
Handle Flutter assets outside FLX (#4343) 2017-12-13 10:55:24 +01:00
Michael Goderbauer
e07eafae1d
Roll forward: Parameters for SemanticActions; a11y text selection (#4452)
Reverts the revert in #4448 with fixes to pass on the bot.

This change will require framework changes in flutter/flutter#13490.
2017-12-12 14:25:45 -08:00
najeira
4ea7075c1d Map iOS touches to Flutter view coordinate system (#4425)
This change ensures that touches are mapped to the Flutter view
co-ordinate system. In the case of a Flutter view that doesn't share the
same origin and orientation as the screen co-ordinate system, touches
were appled in the wrong location. This bug affected Flutter views whose
origin was not the screen origin and Flutter apps running with the
in-call status bar on iPhones other than the iPhone X.
2017-12-12 13:22:53 -08:00
Chris Bracken
edb0201fa2
Support iOS scroll-to-top tap on iPhone X (#4436)
This adds support for scrolling the primary scroll view to the top on
status bar touches, on the iPhone X.

Notes:
1. The iPhone X status bar doesn't change height when in in-call/etc.
   mode, and unlike other iPhones, does scroll to top when in in-call mode.
2. No matter which model of iOS device, the top safe area inset doesn't
   change when in in-call mode. In in-call mode, the OS reduces the app
   view height by 20px off the top, and the double-height 'in-call' status
   bar covers this new inset (outside the view) and there continues to be a
   20px safe area in the app.

On iOS 11, rather than comparing status bar height to a hardcoded 20px
'standard height' we now compare to the top safe area inset (which is
always the standard status bar height, regardless of device). On iOS
versions prior to iOS 11, we use the previous logic.

Fixes flutter/flutter#13439
2017-12-08 19:36:53 -08:00
Chinmay Garde
e8526e6fd3
Add macros to mark APIs as being deprecated or unavailable. (#4401) 2017-12-08 13:30:45 -08:00
Chris Bracken
8e39760168
Expose keyboard height as view inset on iOS (#4428)
Keyboard height is now treated as a view inset, which could be used to
shrink the content area of the app as is done in the Material Scaffold,
rather than padding, which is used to indicate content areas where user
interaction should be avoided.
2017-12-07 18:37:46 -08:00
Chris Bracken
a94e88200a
Set window.viewInsets.bottom to keyboard height on iOS (#4420)
This allows for us to start migrating framework classes (notably
Scaffold) to use window.viewInsets.bottom to get the keyboard height.
Once framework updates have landed, we will land an engine patch to
expose the iOS bottom safe area inset as padding.

This change is already landed for Android.

Related issue: flutter/flutter#12098
2017-12-06 15:06:12 -08:00
Chris Bracken
033daf152d
Update the iOS mark region on setTextInputState (#4418)
Previously, we failed to clear/update the mark text range on updates
from the framework. This resulted in a crash if the incoming text value
was shorter than the current mark range when iOS attempts to extract the
mark range substring from the text.

Fixes flutter/flutter#12585
2017-12-06 11:30:14 -08:00
Brian Osman
443c5e4c5b
Disable linear blending on iOS simulator (#4413)
Fixes flutter/flutter#13308

Overlooked this case when I previously removed linear blending. MakeS32 creates a surface with a color space attached (triggering the linear blending behavior). MakeN32 creates a legacy surface (no color space), which matches what the other backend bindings do (including the GL surface factory, and the raster cache).
2017-12-05 08:38:53 -05:00
xster
22e63c3d05
Block image decoding on iOS in the background (#4384)
* Add synchronization to ResourceContext usage

* debug

* Use unique ptr factory

* formatting

* left more notes for future readers
2017-12-01 12:09:00 -08:00
Chris Bracken
93648ef0ed
Expose Window.viewInsets in dart:ui (#4403)
Window.viewInsets is the set of window-relative insets that describe the
area of the window that an application may want to treat as effectively
reducing the size of the content. Typically this is due to system UI
that fully obscures underlying content, such as the keyboard.

This area differs from padding in that padding is the set of insets that
describe the area of the window that may be partially (or fully)
obscured by system UI or physical intrusions into the view area (e.g.
iPhone X sensor housing, status bar, or the iPhone X home indicator
widget).

This patch does not yet enable the iOS bottom edge safe area. Once the
framework has been updated to use viewInsets for bottom-edge occlusions
(today, the keyboard), the bottom safe area will be enabled and
framework patches that depend on it, landed.
2017-11-29 16:27:15 -08:00
Chris Bracken
82cd793ee5
Use iOS scale when computing render buffer size (#4171) (#4373)
When checking whether render buffer size has changed, apply the device
scale factor used to convert points to pixels to ensure we're not
needlessly re-allocating render buffer storage.

Adds trace + debug log to make this easier to detect in future.

Originally introduced in 2d530daeca438ca24562d290616c0aec5ab76b88, but
rolled back in 0a6e415b60581ef7934032df20401da1fae9ea9f to test whether
it was responsible for regressions to
flutter_gallery_ios__transition_perf benchmarks:
  * average_frame_build_time_millis
  * missed_frame_build_budget_count

Re-landed in d43d35347594c893687dec7402a525d83f57db10, and reverted in
459f722b86415da01386fe41f37bafa842f11ae8 after it appeared to regress
the above two benchmarks. After recent changes to microtask execution
order which fixed https://github.com/flutter/flutter/issues/9998,
re-introducing this fix results in benchmark improvements to the above
two benchmarks in local testing.
2017-11-20 14:15:26 -08:00
Sigurd Meldgaard
9b31717923
Avoid double retain of Texture on ios. (#4354)
The "raw" pointer is already managed by ARC.
2017-11-17 13:49:57 +01:00
Brian Osman
0a7155d4e1
Disable linear blending, use SkColorSpaceXformCanvas instead (#4355)
This retains gamut correction (adjusting colors for screens with different capabilities), but does all blending and interpolation with sRGB-encoded values. That matches the behavior expected by most users, as well as the behavior of nearly all other systems. It also greatly simplifies the EGL code.

A future Skia change will make this behavior more of a first-class citizen, so some of these implementation details will change again, but the behavior will not. The bulk of this change (elimination of complication from the GL surface code) is permanent - it's just the SkColorSpaceXformCanvas that will be replaced.
2017-11-14 13:33:26 -05:00
Mikkel Nygaard Ravn
1f0c959189
Align iOS event channel semantics to Android counterpart (#4353) 2017-11-13 15:34:29 +01:00
Chris Bracken
bc2acf7bdd
Revert "Roll Fuchsia buildtools to 85907c59e97527d79bbfdfd849d8e85c24959cc5 (#4331)" (#4340)
With the update to HEAD of the Fuchsia buildtools repo, the new clang
toolchain picked up caused link-time breakage in android x86_64
libFlutter.so builds.

Sample log:
https://build.chromium.org/p/client.flutter/builders/Linux%20Engine/builds/1974/steps/build%20android_debug_x64/logs/stdio

Sample failure:
FAILED: libflutter.so libflutter.so.TOC lib.stripped/libflutter.so
../../third_party/android_tools/ndk/toolchains/x86_64-4.9/prebuilt/linux-x86_64/lib/gcc/x86_64-linux-android/4.9.x/../../../../x86_64-linux-android/bin/ld.gold: error: obj/flutter/shell/platform/android/libflutter/android_context_gl.o: unsupported reloc 42 against global symbol std::__ndk1::num_put<char, std::__ndk1::ostreambuf_iterator<char, std::__ndk1::char_traits<char> > >::id

This reverts commit 8ad42f0dae3cb1267c2b9ab99db80e4696ddbc3d.
2017-11-08 16:48:00 -08:00
Chris Bracken
8ad42f0dae
Roll Fuchsia buildtools to 85907c59e97527d79bbfdfd849d8e85c24959cc5 (#4331)
* Roll Fuchsia buildtools to 85907c59e97527d79bbfdfd849d8e85c24959cc5

This also updates Flutter buildroot to a6e52dbb776c45cc8c57d7143b8eb8b2e762fdfb
which disables -Wtautological-constant-compare temporarily until
https://reviews.llvm.org/D39462 lands in clang. This is in line with
Fuchsia's compiler options.

* Apply clang-format diffs

No logical changes. This applies clang-format from the latest Fuchsia
buildtools to the engine codebase.
2017-11-08 11:18:17 -08:00
Chris Bracken
dd6585bb9a
Respond to safe area inset changes (#4330)
On iOS 11 and above, update viewport padding and notify the framework
when changes to safe area insets occur.
2017-11-07 18:26:59 -08:00