This applies commit 88441bfc0f712ad451784851bfcf0b0cc418ad75 from the
skia_rev_130a118cc68f8f9973e9572356011de378463fea branch to master so
master works in the Fuchsia build again.
Previously we had passed a local generator to flow::BitmapImageCreate /
SkImage::MakeFromGenerator, which takes ownership of the generator.
That generator in turn referenced an SkData backed by a local vector.
The result was an SkImage backed by a deleted buffer.
In a previous change I re-included the observatory assets in the Fuchsia build, but didn't notice this bit here.
After this, if Settings::enable_observatory can be set to true somehow, the Observatory will come up in Flutter apps on Fuchsia. Unfortunately, I'm not sure how to do that.
Provide a default status bar tap handler for FlutterAppDelegate.
By default, taps are passed to the key window's rootViewController if
it's a FlutterViewController. Apps with custom app delegates can
customize this behaviour to send the tap to the FlutterViewController(s)
they prefer by overriding touchesBegan:withEvent.
The PlatformView superclass constructor was posting a task to the UI thread
that adds the view to the shell's global list. This could result in UI thread
operations seeing PlatformView instances that are not fully constructed and do
not yet have an engine.
This was happening in https://github.com/flutter/flutter/issues/7735
On iOS, when a tap is detected in the status bar, provide a means to
pass that touch event through to one or more FlutterViewControllers to
trigger a scroll to top. In iOS apps, scroll to top should occur under
the following conditions:
1. There is one and only one UIScrollView visible with
scrollsToTop == YES.
2. The status-bar is in standard height mode, not in double-height mode.
In double-height mode, the expected behaviour is to trigger a switch
to the application associated with the double-height status bar.
3. A tap or a drag gesture occurs that is entirely constrained to the
status bar frame. (We currently only handle the tap scenario).
Unfortunately, AppDelegates only get touchesBegan events for status bar
taps, though get get touchesBegan and touchesEnded events for drags
within the status bar frame. As such, we currently synthesise the
touchesEnded event for taps.