Ensure selection base is updated when deleting surrogates
This fixes a bug in which the selection base was not updated when
deleting at index of the trailing char of a Unicode surrogate,
introduced in d3149a5875404a4dacc7e4dde9c96045e2cbe6e5.
Minor refactor to consolidate logic around NSRange.
* Maintain FlutterTextInputView text in NSMutableString
We were converting from/to NSString at the interface of
FlutterTextInputView; instead use NSMutableString to maintain the
internal buffer.
Eliminates nsstring_utils.{h,mm} which no longer has any users.
* Name the platform thread in the timeline. This does not affect (nor is it affected by) the pthread name set by the embedder.
* Make it easier in the timeline to see not only when the frame was request, but also when that frame request was fulfilled.
* Trace message loop wakes.
FragmentActivity is required for plugins that use auto managed Google APIs, such as Google Sign-In. Requires flutter/flutter#9036 to land so that gradle builds include FragmentActivity.
The Android and iOS versions of this function had diverged. This patch
makes the iOS version match the Android version (and what the framework
expects).
Fixes https://github.com/flutter/flutter/issues/8878
Breaking change: removed facilities for JSON and string messaging from FlutterView/FlutterViewController, leaving only binary messaging there. All other use of flutter communication now goes through FlutterMessageChannel and FlutterMethodChannels. Retained use of String and JSON codecs for now.
Companion flutter PR: flutter/flutter#8837
* Perform all iOS logging through ASL
As of iOS 10, ASL is deprecated and replaced with os_log. ASL calls
continue to result in logging but as of iOS 10.3, only ASL_LOG_NOTICE
level and above are logged.
This change partially reverts d67972d649157582358876f90a99577cb3708e82,
adding back stdout and stderr redirection, which resulted in loss of
some direct writes to stdout that were necessary for debugging.
This change replaces the direct use of syslog with ASL on iOS, which
Apple has stated will continue to log on iOS >= 10. This eliminates the
need for the previous fwd-declaration of syslog.
ASL is deprecated and replaced by os_log() on iOS. As of iOS 10.3,
calling this function breaks our logging altogether. os_log isn't
available pre-iOS 10.0. Rather than implement version checks and
conditional logic, this change eliminates the existing redirection
altogether. All engine code should be logging via the syslog redirection
implemented in Logger_PrintString in dart_runtime_hooks.cc.
Since stdio redirection is eliminated, we eliminate the flag that
controls whether such redirection is enabled.
* Add podspec to Flutter iOS framework.
Flutter iOS apps are already pod-enabled, so we might as well turn the
engine framework into a pod, so we don't have to manually copy the
current Flutter.framework into the app directory on every build, but
rather let Cocoapods wire things up for us.
For that to happen, we need a pod spec for Flutter.framework. This spec
will not be published, but rather downloaded as part of the engine
artifacts, and the app's Podfile will have a local path dependency on
it.
* Update licenses_golden...
This change eliminates two previous assumptions:
1. If a Flutter view is embedded in a parent view, that the parent view
controller would apply any status bar padding necessary.
2. That we should not apply padding unless the flutter view is
fullscreen.
A simple case where the first assumption fails to hold is a Flutter view
embedded in a UINavigationController with a hidden toolbar. A simple
case where the second assumption fails to hold is a view in a window
whose top overlaps the status bar but isn't fullscreen.
I had added this initially as a means of making it easier to deal with OpenGL directly in Flow. However, we are moving away from dealing with the client rendering APIs directly. Instead, delegating everything to Skia. Besides, we only ever used this to log the GPU description in case of context setup failures. This has not proved to be useful so far. Also, having this in place is making it difficult to remove all dependencies on GL in Shell.