Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ability to display loading progress of an image #32374

Closed
tvolkert opened this issue May 9, 2019 · 2 comments

Comments

Projects
None yet
1 participant
@tvolkert
Copy link
Contributor

commented May 9, 2019

Fuchsia would like to be able to display the loading progress of an image that's loaded over the network. Below is a rough proposal of how we could accomplish that.

We'd need to change NetworkImage to load using Socket directly so that it could report the chunks as they came in, and we'd have to plumb those events through ImageStreamCompleter.

Rough API proposal:

class ImageChunkEvent {
  /// The number of bytes that have been loaded thus far.
  final int bytesLoaded;

  /// The number of bytes that are expected to have been
  /// loaded when the image is fully loaded.
  ///
  /// This value will be `null` if the total number of bytes
  /// is unknown.
  final int totalBytes;
}

/// Signature for callbacks reporting that an image has reached an
/// incremental step towards being fully loaded.
///
/// Used by [ImageStream].
///
/// The `event` specifies the progress towards fully loading the image.
typedef ImageChunkListener = void Function(ImageChunkEvent event);

class ImageStream extends Diagnosticable {
  /// ...
  ///
  /// An [ImageChunkListener] can also optionally be added
  /// along with the `listener`. If the stream produces images
  /// that are loaded in chunks, then the specified listener will
  /// be notified for every chunk of data that is loaded (e.g. over
  /// the file system or the network).
  void addListener(
    ImageListener listener, {
    ImageChunkListener chunkListener,
    ImageErrorListener onError,
  });
}

/// Signature for callbacks used to build a widget to display
/// while an image is loading (e.g. from the local file system
/// or the network).
///
/// This will be called to build a new widget for every
/// [ImageChunkEvent] that fires during image loading (see
/// [ImageChunkListener]).
///
/// For single-frame images, once the image loads, the
/// image chunk events will stop firing, the image provider's
/// stream will yield a completed [ImageInfo] object, and this
/// builder will not be consulted anymore.  For these cases,
/// the `currentRawImage` parameter will be `null`.
///
/// For multi-frame images, it's possible that image chunk
/// events will continue to fire after the first image frame has
/// loaded.  In that case, the `currentRawImage` parameter
/// will be set to the widget representing the current
/// fully-loaded image frame that is about to be replaced.
/// This allows callers the ability to overlay a loading progress
/// indicator over the current frame, for instance.
typedef ImageLoadingBuilder = Widget Function(
  BuildContext context,
  ImageChunkEvent imageChunkEvent,
  Widget currentRawImage,
);

class Image {
  const Image({
    ...
    this.imageLoadingBuilder,
  });

  /// A builder that specifies the widget to display to the user
  /// before the image provider's stream has yielded its first
  /// image.
  ///
  /// If provided, this widget will be sized to match the size of
  /// the image.
  final ImageLoadingBuilder imageLoadingBuilder;
}
@tvolkert

This comment has been minimized.

Copy link
Contributor Author

commented May 10, 2019

Proof of concept in #32465

imageLoadingBuilder: (BuildContext context, ImageChunkEvent event, Widget currentRawImage) {
  return Center(
    child: CircularProgressIndicator(
      value: event.bytesLoaded / event.totalBytes,
    ),
  );
},
...

5cd51b6369468978336874

tvolkert added a commit to tvolkert/flutter that referenced this issue May 11, 2019

tvolkert added a commit to tvolkert/flutter that referenced this issue May 11, 2019

@tvolkert tvolkert referenced this issue May 11, 2019

Closed

Add support for image loading progress #32465

8 of 9 tasks complete

tvolkert added a commit to tvolkert/flutter that referenced this issue May 11, 2019

tvolkert added a commit to tvolkert/flutter that referenced this issue May 13, 2019

tvolkert added a commit to tvolkert/flutter that referenced this issue May 13, 2019

tvolkert added a commit to tvolkert/assets-for-api-docs that referenced this issue May 13, 2019

Add animation for image loading progress.
The code to generate this animation will land in a separate PR,
since it depends on new Flutter Framework code that hasn't yet
landed.

flutter/flutter#32374

tvolkert added a commit to tvolkert/assets-for-api-docs that referenced this issue May 13, 2019

tvolkert added a commit to tvolkert/flutter that referenced this issue May 13, 2019

tvolkert added a commit to tvolkert/assets-for-api-docs that referenced this issue May 14, 2019

tvolkert added a commit to tvolkert/flutter that referenced this issue May 16, 2019

Add onBytesReceived callback to consolidateHttpClientResponseBytes()
This will allow us to plumb the chunks in a chunked response
up to the higher levels of the framework to notify interested
parties of network loading progress.

flutter#32374

tvolkert added a commit to tvolkert/flutter that referenced this issue May 16, 2019

Add onBytesReceived callback to consolidateHttpClientResponseBytes()
This will allow us to plumb the chunks in a chunked response
up to the higher levels of the framework to notify interested
parties of network loading progress.

flutter#32374

tvolkert added a commit to tvolkert/flutter that referenced this issue May 16, 2019

Add onBytesReceived callback to consolidateHttpClientResponseBytes()
This will allow us to plumb the chunks in a chunked response
up to the higher levels of the framework to notify interested
parties of network loading progress.

flutter#32374

tvolkert added a commit to tvolkert/flutter that referenced this issue May 17, 2019

Add debugNetworkImageUseFreshHttpClient
Currently, the fact that NetworkImage uses a static HttpClient
makes it impossible to properly test, as a mock in one test will
be reused in another test. This change fixes that.

flutter#32374

@tvolkert tvolkert referenced this issue May 17, 2019

Merged

Add debugNetworkImageHttpClientProvider #32857

8 of 9 tasks complete

tvolkert added a commit to tvolkert/flutter that referenced this issue May 17, 2019

Add some sanity to the ImageStream listener API
The current API was broken in that you registered multiple
callbacks at once, but when you removed listeners, only the
primary listener was used to determine what was removed.
This led to unintuitive cases where the caller could get
unexpected behavior.

flutter#24722
flutter#32374

tvolkert added a commit to tvolkert/flutter that referenced this issue May 17, 2019

Add some sanity to the ImageStream listener API
The current API was broken in that you registered multiple
callbacks at once, but when you removed listeners, only the
primary listener was used to determine what was removed.
This led to unintuitive cases where the caller could get
unexpected behavior.

flutter#24722
flutter#32374
flutter#32935

tvolkert added a commit to tvolkert/flutter that referenced this issue May 17, 2019

Add some sanity to the ImageStream listener API
The current API was broken in that you registered multiple
callbacks at once, but when you removed listeners, only the
primary listener was used to determine what was removed.
This led to unintuitive cases where the caller could get
unexpected behavior.

This updates the API to add and remove listeners using
a newly introduced [ImageStreamListener] object, a value
object that has references to the individual callbacks
that may fire.

flutter#24722
flutter#32374
flutter#32935

tvolkert added a commit that referenced this issue May 20, 2019

Add debugNetworkImageHttpClientProvider (#32857)
Currently, the fact that NetworkImage uses a static HttpClient
makes it impossible to properly test, as a mock in one test will
be reused in another test. This change fixes that.

#32374

tvolkert added a commit to tvolkert/flutter that referenced this issue May 20, 2019

Add some sanity to the ImageStream listener API
The current API was broken in that you registered multiple
callbacks at once, but when you removed listeners, only the
primary listener was used to determine what was removed.
This led to unintuitive cases where the caller could get
unexpected behavior.

This updates the API to add and remove listeners using
a newly introduced [ImageStreamListener] object, a value
object that has references to the individual callbacks
that may fire.

flutter#24722
flutter#32374
flutter#32935

tvolkert added a commit that referenced this issue May 20, 2019

Add onBytesReceived callback to consolidateHttpClientResponseBytes() (#…
…32853)

This will allow us to plumb the chunks in a chunked response
up to the higher levels of the framework to notify interested
parties of network loading progress.

#32374

@tvolkert tvolkert referenced this issue May 26, 2019

Merged

Update FadeInImage to use new Image APIs #33370

8 of 9 tasks complete

tvolkert added a commit to tvolkert/flutter that referenced this issue May 29, 2019

Add loading support to Image
This adds two new builders to the `Image` class:

* `frameBuilder`, which allows callers to control the widget
  created by an [Image].
* `loadingBuilder`, which allows callers fine-grained control
  over how to display loading progress of an image to the user.

`FadeInImage` can be simplified by migrating to the new API.
This is done in a follow-on commit.

flutter#32374

tvolkert added a commit that referenced this issue May 29, 2019

Add loading support to Image (#33369)
This adds two new builders to the `Image` class:

* `frameBuilder`, which allows callers to control the widget
  created by an [Image].
* `loadingBuilder`, which allows callers fine-grained control
  over how to display loading progress of an image to the user.

`FadeInImage` can be simplified by migrating to the new API.
This is done in a follow-on commit.

#32374

tvolkert added a commit to tvolkert/assets-for-api-docs that referenced this issue May 29, 2019

tvolkert added a commit to flutter/assets-for-api-docs that referenced this issue May 29, 2019

tvolkert added a commit to tvolkert/flutter that referenced this issue May 30, 2019

Remove assert from Image._handleImageFrame()
Tickers being disabled and re-enabled can cause the
condition of a synchronous notification happening after
image frames have been delivered, which is valid in that
case. As such, this removes the assert.

flutter#32374

@tvolkert tvolkert referenced this issue May 30, 2019

Merged

Remove assert from Image._handleImageFrame() #33602

8 of 9 tasks complete

tvolkert added a commit that referenced this issue May 30, 2019

Remove assert from Image._handleImageFrame() (#33602)
Tickers being disabled and re-enabled can cause the
condition of a synchronous notification happening after
image frames have been delivered, which is valid in that
case. As such, this removes the assert.

#32374

tvolkert added a commit to tvolkert/flutter that referenced this issue Jun 2, 2019

Update consolidateHttpClientResponseBytes() to use compressionState
This updates to use the new HttpClientResponse.compressionState
API that was recently added in the SDK.

flutter#32374
@tvolkert

This comment has been minimized.

Copy link
Contributor Author

commented Jun 2, 2019

This is implemented now in v1.6.7 or higher.

@tvolkert tvolkert closed this Jun 2, 2019

tvolkert added a commit that referenced this issue Jun 3, 2019

Update consolidateHttpClientResponseBytes() to use compressionState (#…
…33729)

This updates to use the new HttpClientResponse.compressionState
API that was recently added in the SDK.

#32374

tvolkert added a commit to tvolkert/flutter that referenced this issue Jun 12, 2019

Re-apply compressionState changes.
This re-applies the changes that were made in flutter#33697 and flutter#33729,
but which were reverted in flutter#33792 and flutter#33790, respectively due to
the Dart SDK not having received the update within Google yet.
The SDK has now rolled, so these changes can be re-applied.

flutter#32374
flutter#33791

@tvolkert tvolkert referenced this issue Jun 12, 2019

Merged

Re-apply compressionState changes. #34341

8 of 9 tasks complete

tvolkert added a commit that referenced this issue Jun 12, 2019

Re-apply compressionState changes. (#34341)
This re-applies the changes that were made in #33697 and #33729,
but which were reverted in #33792 and #33790, respectively due to
the Dart SDK not having received the update within Google yet.
The SDK has now rolled, so these changes can be re-applied.

#32374
#33791

jonahwilliams added a commit to jonahwilliams/flutter that referenced this issue Jun 12, 2019

Squashed commit of the following:
commit 92e52d5
Merge: 421e4e4 da6dde6
Author: jonahwilliams <jonahwilliams@google.com>
Date:   Wed Jun 12 14:12:36 2019 -0700

    Merge branch 'master' of github.com:flutter/flutter into add_network_image_impl

commit 421e4e4
Author: jonahwilliams <jonahwilliams@google.com>
Date:   Wed Jun 12 14:03:11 2019 -0700

    address comments

commit da6dde6
Author: engine-flutter-autoroll <engine-flutter-autoroll@skia.org>
Date:   Wed Jun 12 16:49:55 2019 -0400

    Roll engine ab5c14b9491a..67aadb62068a (2 commits) (flutter#34350)

    flutter/engine@ab5c14b...67aadb6

    git log ab5c14b9491a6650ec0c08e91f9e858cdab422b6..67aadb62068ad251c79affa2ae68d6579d8e2d93 --no-merges --oneline
    67aadb620 Roll src/third_party/skia d62d406aa24c..81756e4cae95 (5 commits) (flutter/engine#9300)
    0a2e28d79 Revert tracing changes (flutter/engine#9296)

    The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll

    Documentation for the AutoRoller is here:
    https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

    If the roll is causing failures, please contact the current sheriff (liyuqian@google.com), and stop
    the roller if necessary.

commit 8163c0a
Author: Todd Volkert <tvolkert@users.noreply.github.com>
Date:   Wed Jun 12 13:47:47 2019 -0700

    Re-apply compressionState changes. (flutter#34341)

    This re-applies the changes that were made in flutter#33697 and flutter#33729,
    but which were reverted in flutter#33792 and flutter#33790, respectively due to
    the Dart SDK not having received the update within Google yet.
    The SDK has now rolled, so these changes can be re-applied.

    flutter#32374
    flutter#33791

commit 25c8400
Author: Devon Carew <devoncarew@google.com>
Date:   Wed Jun 12 13:14:20 2019 -0700

    Revert "update the Flutter.Frame event to use new engine APIs (flutter#34243)" (flutter#34352)

    This reverts commit 446179f.

commit c40d701
Author: Jenn Magder <magder@google.com>
Date:   Wed Jun 12 11:31:17 2019 -0700

    Change Xcode project developmentRegion to 'en' and plist CFBundleDevelopmentRegion to DEVELOPMENT_LANGUAGE (flutter#34293)

commit 446179f
Author: Devon Carew <devoncarew@google.com>
Date:   Wed Jun 12 11:20:10 2019 -0700

    update the Flutter.Frame event to use new engine APIs (flutter#34243)

    * update the Flutter.Frame event to use new engine APIs

    * add a test

    * update test

commit 22ca3f9
Author: Zachary Anderson <zanderso@users.noreply.github.com>
Date:   Wed Jun 12 11:18:53 2019 -0700

    [flutter_tool] Don't truncate verbose logs from _flutter.listViews (flutter#34255)

commit 75b5cec
Author: engine-flutter-autoroll <engine-flutter-autoroll@skia.org>
Date:   Wed Jun 12 14:03:56 2019 -0400

    ab5c14b94 Set Dart version to git hash 3166bbf24b0c929eef33fd5d0f69e0f36a9009f3 (Dart 2.3.3-dev) (flutter/engine#9292) (flutter#34336)

    flutter/engine@d3c213e...ab5c14b

    git log d3c213e5cc634bbc60607cb618a64332bb278f90..ab5c14b9491a6650ec0c08e91f9e858cdab422b6 --no-merges --oneline
    ab5c14b94 Set Dart version to git hash 3166bbf24b0c929eef33fd5d0f69e0f36a9009f3 (Dart 2.3.3-dev) (flutter/engine#9292)

    The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll

    Documentation for the AutoRoller is here:
    https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

    If the roll is causing failures, please contact the current sheriff (liyuqian@google.com), and stop
    the roller if necessary.

commit fb2f18e
Author: Todd Volkert <tvolkert@users.noreply.github.com>
Date:   Wed Jun 12 10:22:50 2019 -0700

    Prepare for Uint8List SDK breaking changes (flutter#34295)

    dart-lang/sdk#36900

commit bdd0724
Author: engine-flutter-autoroll <engine-flutter-autoroll@skia.org>
Date:   Wed Jun 12 13:03:55 2019 -0400

    Roll engine b14d9719607a..d3c213e5cc63 (3 commits) (flutter#34331)

    flutter/engine@b14d971...d3c213e

    git log b14d9719607a876778b27149ec37ea170187bb97..d3c213e5cc634bbc60607cb618a64332bb278f90 --no-merges --oneline
    d3c213e5c Roll src/third_party/skia 698fa78b3cae..d62d406aa24c (1 commits) (flutter/engine#9295)
    4d7afb9ab Roll src/third_party/skia ed7966f179c6..698fa78b3cae (1 commits) (flutter/engine#9294)
    05e1b6e50 Roll src/third_party/skia d82ca0bf2c99..ed7966f179c6 (2 commits) (flutter/engine#9293)

    The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll

    Documentation for the AutoRoller is here:
    https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

    If the roll is causing failures, please contact the current sheriff (liyuqian@google.com), and stop
    the roller if necessary.

commit fa174a1
Author: engine-flutter-autoroll <engine-flutter-autoroll@skia.org>
Date:   Wed Jun 12 00:45:55 2019 -0400

    Roll engine 4fc95ebb294c..b14d9719607a (4 commits) (flutter#34310)

    flutter/engine@4fc95eb...b14d971

    git log 4fc95ebb294cf4f94fc8adf524408b15b054486a..b14d9719607a876778b27149ec37ea170187bb97 --no-merges --oneline
    b14d97196 Roll src/third_party/skia f39124b0764d..d82ca0bf2c99 (3 commits) (flutter/engine#9291)
    87c26ae1a Refactor Delayed Tasks to their own file (flutter/engine#9290)
    9baf589d1 [iOS] [a11y] Don&flutter#39;t allow scroll views to grab a11y focus (flutter/engine#9282)
    f80ac5f57 [fuchsia] Fix alignment of Fuchsia/non-Fuchsia tracing (flutter/engine#9289)

    The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll

    Documentation for the AutoRoller is here:
    https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

    If the roll is causing failures, please contact the current sheriff (liyuqian@google.com), and stop
    the roller if necessary.

commit 70840d4
Author: engine-flutter-autoroll <engine-flutter-autoroll@skia.org>
Date:   Tue Jun 11 23:41:58 2019 -0400

    4fc95ebb2 Fixed memory leaks within FlutterFragment and FlutterView (flutter#34268, flutter#34269, flutter#34270). (flutter/engine#9288) (flutter#34305)

commit d6425a2
Author: engine-flutter-autoroll <engine-flutter-autoroll@skia.org>
Date:   Tue Jun 11 21:54:55 2019 -0400

    Roll engine 2d2cfc0884ff..de350c4cbb4a (2 commits) (flutter#34302)

    flutter/engine@2d2cfc0...de350c4

    git log 2d2cfc0884ff58e3c4379adea1f5356893d475d3..de350c4cbb4aa3d4b3258fb8646f8723d3991096 --no-merges --oneline
    de350c4cb Report timings faster (100ms) in profile/debug (flutter/engine#9287)
    6dc4d6ca0 Add refresh callback to GLFW shell (flutter/engine#9280)

    The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll

    Documentation for the AutoRoller is here:
    https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

    If the roll is causing failures, please contact the current sheriff (liyuqian@google.com), and stop
    the roller if necessary.

commit 9a46b3e
Author: engine-flutter-autoroll <engine-flutter-autoroll@skia.org>
Date:   Tue Jun 11 20:17:55 2019 -0400

    Roll engine 02e6a130e7dd..2d2cfc0884ff (3 commits) (flutter#34292)

    flutter/engine@02e6a13...2d2cfc0

    git log 02e6a130e7dd23cd70ea0b2d947f3e1a0269190b..2d2cfc0884ff58e3c4379adea1f5356893d475d3 --no-merges --oneline
    2d2cfc088 Expose a hasRenderedFirstFrame() method in FlutterView (flutter#34275). (flutter/engine#9285)
    804011742 Fix TextInputPlugin NPE caused by PlatformViewsController ref in new embedding (flutter#34283). (flutter/engine#9283)
    c7b25f1c4 Roll src/third_party/skia df586b7d568d..f39124b0764d (11 commits) (flutter/engine#9284)

    The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll

    Documentation for the AutoRoller is here:
    https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

    If the roll is causing failures, please contact the current sheriff (liyuqian@google.com), and stop
    the roller if necessary.

commit 21a5326
Author: Emmanuel Garcia <egarciad@google.com>
Date:   Tue Jun 11 16:24:03 2019 -0700

    Split gradle_plugin_test.dart (flutter#34282)

    Fixes timeout when running gradle_plugin_test

commit 8247963
Author: engine-flutter-autoroll <engine-flutter-autoroll@skia.org>
Date:   Tue Jun 11 18:30:55 2019 -0400

    Roll engine 4d6847466d0b..02e6a130e7dd (4 commits) (flutter#34281)

    flutter/engine@4d68474...02e6a13

    git log 4d6847466d0b8223f2d3ba9572e397306b6debf4..02e6a130e7dd23cd70ea0b2d947f3e1a0269190b --no-merges --oneline
    02e6a130e Roll src/third_party/dart 7ecd81b0b8..b37aa3b036 (4 commits) (flutter/engine#9272)
    95f9b3db6 Fix crash on minimize with GLFW shell (flutter/engine#9278)
    8d017faea Roll src/third_party/skia a716809d5ad3..df586b7d568d (17 commits) (flutter/engine#9279)
    10a3ab085 Fix missing return lint (flutter/engine#9246)

    The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll

    Documentation for the AutoRoller is here:
    https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

    If the roll is causing failures, please contact the current sheriff (liyuqian@google.com), and stop
    the roller if necessary.

commit 9d724d4
Author: Jonah Williams <jonahwilliams@google.com>
Date:   Tue Jun 11 14:51:03 2019 -0700

    Compatibility pass on flutter/widgets tests for JavaScript compilation. (8) (flutter#33377)

commit d9c1962
Author: Emmanuel Garcia <egarciad@google.com>
Date:   Tue Jun 11 14:46:00 2019 -0700

    Instrument usage of include_flutter.groovy and xcode_backend.sh (flutter#34189)

    This is done via `flutter build bundle`.   As a consequence, this PR introduces a new way to disable analytics via the `FLUTTER_SUPPRESS_ANALYTICS` env flag.

commit 1eb8c64
Author: LongCatIsLooong <31859944+LongCatIsLooong@users.noreply.github.com>
Date:   Tue Jun 11 14:14:54 2019 -0700

    Fix CupertinoTabScaffold index out of range (flutter#33624)

commit 89d887f
Author: Jason Simmons <jason-simmons@users.noreply.github.com>
Date:   Tue Jun 11 13:34:24 2019 -0700

    Strip debug symbols from ELF library snapshots (flutter#34250)

    AOT compiled code is now packaged as an ELF library for Android targets.
    By default gen_snapshot's output contains debug symbols.  The symbols could
    be stripped as a separate step, but that requires NDK tools that the user
    may not have available.

    This change passes a gen_snapshot flag that omits the symbols, and it filters
    out a warning printed when that flag is used.

commit 6d0e618
Author: engine-flutter-autoroll <engine-flutter-autoroll@skia.org>
Date:   Tue Jun 11 15:55:56 2019 -0400

    Roll engine de420a0fc49a..4d6847466d0b (3 commits) (flutter#34258)

    flutter/engine@de420a0...4d68474

    git log de420a0fc49ac5d8d84e3dd446af800d672eff02..4d6847466d0b8223f2d3ba9572e397306b6debf4 --no-merges --oneline
    4d6847466 Load AOT compiled Dart assets only from ELF libraries (flutter/engine#9260)
    3e9ffe113 Whitelist the —enable_mirrors flag to fix regression in existing embedder. (flutter/engine#9266)
    7cde42cc1 Unbreak internal rolls (flutter/engine#9270)

    The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll

    Documentation for the AutoRoller is here:
    https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

    If the roll is causing failures, please contact the current sheriff (liyuqian@google.com), and stop
    the roller if necessary.

commit e59d9a8
Author: Ben Konyi <bkonyi@google.com>
Date:   Tue Jun 11 11:37:47 2019 -0700

    Reland "Added --dart-flags option to flutter run (flutter#33924)" (flutter#34181)

    Reland "Added --dart-flags option to flutter run (flutter#33924)"

    This reverts commit 587687e.

commit 7cc7161
Author: Jonah Williams <jonahwilliams@google.com>
Date:   Tue Jun 11 11:22:37 2019 -0700

    Compatibility pass on flutter/semantics tests for JavaScript compilation. (7) (flutter#33360)

commit 1bc8402
Author: guoskyhero <guojiex@users.noreply.github.com>
Date:   Tue Jun 11 11:15:50 2019 -0700

    Add hintStyle in SearchDelegate (flutter#30388)

    SearchDelegate hintStyle parameter

commit 336e4c4
Author: engine-flutter-autoroll <engine-flutter-autoroll@skia.org>
Date:   Tue Jun 11 14:12:56 2019 -0400

    Roll engine c9bbd0e680d9..de420a0fc49a (4 commits) (flutter#34247)

    flutter/engine@c9bbd0e...de420a0

    git log c9bbd0e680d9aa57fad27d8c67128633210a586e..de420a0fc49ac5d8d84e3dd446af800d672eff02 --no-merges --oneline
    de420a0fc Roll src/third_party/dart 97f91fecdb..7ecd81b0b8 (5 commits) (flutter/engine#9268)
    8812781d9 Roll src/third_party/skia bba5aa761cd5..a716809d5ad3 (1 commits) (flutter/engine#9269)
    b470913fb Roll src/third_party/skia 77cb2ca3c9aa..bba5aa761cd5 (3 commits) (flutter/engine#9267)
    48ecbca8a Roll src/third_party/skia bb74990a11d9..77cb2ca3c9aa (1 commits) (flutter/engine#9265)

    The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll

    Documentation for the AutoRoller is here:
    https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

    If the roll is causing failures, please contact the current sheriff (liyuqian@google.com), and stop
    the roller if necessary.

commit 7feddfd
Author: Jonah Williams <jonahwilliams@google.com>
Date:   Tue Jun 11 10:35:10 2019 -0700

    make sure this test doesnt run for real (flutter#34199)

commit d850d69
Author: Neevash Ramdial <mail@neevash.dev>
Date:   Tue Jun 11 12:57:17 2019 -0400

    Added tool sample for PageController (flutter#34137)

    * Added tool sample for PageController

    * Fixed text directionality bug

commit 05e92c8
Author: Jonah Williams <jonahwilliams@google.com>
Date:   Tue Jun 11 09:09:13 2019 -0700

    Compatibility pass on flutter/physics tests for JavaScript compilation. (6) (flutter#33359)

commit 30fb980
Author: engine-flutter-autoroll <engine-flutter-autoroll@skia.org>
Date:   Tue Jun 11 11:41:47 2019 -0400

    c9bbd0e68 Roll src/third_party/dart 7f146e431e..97f91fecdb (22 commits) (flutter#34203)

commit e9ca112
Author: LongCatIsLooong <31859944+LongCatIsLooong@users.noreply.github.com>
Date:   Mon Jun 10 19:17:55 2019 -0700

    update CupertinoDialogAction isDefaultAction documentation (flutter#34163)

commit fcaf96d
Author: engine-flutter-autoroll <engine-flutter-autoroll@skia.org>
Date:   Mon Jun 10 21:35:55 2019 -0400

    Roll engine f3ab2e412f07..4c0daaca2710 (2 commits) (flutter#34197)

    flutter/engine@f3ab2e4...4c0daac

    git log f3ab2e412f07a0fb82944d1f7af86c31e674e6c9..4c0daaca2710f617a0f9d8530f89a77aaad40836 --no-merges --oneline
    4c0daaca2 Roll src/third_party/skia cb1adb40d0f3..bb74990a11d9 (3 commits) (flutter/engine#9261)
    2d0103a8f Removed VIRTUAL_KEYBOARD check in TextInputPlugin because it&flutter#39;s blocking Espresso work and its purpose is unknown. (flutter/engine#9238)

    The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll

    Documentation for the AutoRoller is here:
    https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

    If the roll is causing failures, please contact the current sheriff (bmparr@google.com), and stop
    the roller if necessary.

commit 89b1533
Author: jonahwilliams <jonahwilliams@google.com>
Date:   Mon Jun 10 16:49:44 2019 -0700

    skip chunk test

commit c11b61f
Merge: b182271 1b3fc53
Author: jonahwilliams <jonahwilliams@google.com>
Date:   Mon Jun 10 16:49:34 2019 -0700

    Merge branch 'master' of github.com:flutter/flutter into add_network_image_impl

commit b182271
Author: jonahwilliams <jonahwilliams@google.com>
Date:   Mon Jun 10 16:14:06 2019 -0700

    update to remove extra asset image indirection

commit 96d7939
Merge: 3700e32 f530b80
Author: jonahwilliams <jonahwilliams@google.com>
Date:   Mon Jun 10 15:42:02 2019 -0700

    Merge branch 'master' of github.com:flutter/flutter into add_network_image_impl

commit 3700e32
Author: jonahwilliams <jonahwilliams@google.com>
Date:   Sat Jun 8 13:13:32 2019 -0700

    fix foundation import

commit e31b5e4
Author: jonahwilliams <jonahwilliams@google.com>
Date:   Sat Jun 8 13:09:19 2019 -0700

    add web and io implemenations of network and asset image

Kiku-Reise added a commit to Kiku-Reise/flutter that referenced this issue Jun 14, 2019

Add debugNetworkImageHttpClientProvider (flutter#32857)
Currently, the fact that NetworkImage uses a static HttpClient
makes it impossible to properly test, as a mock in one test will
be reused in another test. This change fixes that.

flutter#32374

Kiku-Reise added a commit to Kiku-Reise/flutter that referenced this issue Jun 14, 2019

Add onBytesReceived callback to consolidateHttpClientResponseBytes() (f…
…lutter#32853)

This will allow us to plumb the chunks in a chunked response
up to the higher levels of the framework to notify interested
parties of network loading progress.

flutter#32374

Kiku-Reise added a commit to Kiku-Reise/flutter that referenced this issue Jun 14, 2019

Add some sanity to the ImageStream listener API (flutter#32936)
The current API was broken in that you registered multiple
callbacks at once, but when you removed listeners, only the
primary listener was used to determine what was removed.
This led to unintuitive cases where the caller could get
unexpected behavior.

This updates the API to add and remove listeners using
a newly introduced [ImageStreamListener] object, a value
object that has references to the individual callbacks
that may fire.

flutter#24722
flutter#32374
flutter#32935

Kiku-Reise added a commit to Kiku-Reise/flutter that referenced this issue Jun 14, 2019

Add support for ImageStreamListener.onChunk() (flutter#33092)
This is another step towards supporting image loading
progress notification at the widgets layer.

This adds an `ImageChunkEvent` class along with associated
`ImageChunkListener` callback signature and an `onChunk`
property to `ImageStreamListener`. The events serve to
notify registered listeners when byte chunks are received
while loading an image.

flutter#32374

Kiku-Reise added a commit to Kiku-Reise/flutter that referenced this issue Jun 14, 2019

Add loading support to Image (flutter#33369)
This adds two new builders to the `Image` class:

* `frameBuilder`, which allows callers to control the widget
  created by an [Image].
* `loadingBuilder`, which allows callers fine-grained control
  over how to display loading progress of an image to the user.

`FadeInImage` can be simplified by migrating to the new API.
This is done in a follow-on commit.

flutter#32374

Kiku-Reise added a commit to Kiku-Reise/flutter that referenced this issue Jun 14, 2019

Remove assert from Image._handleImageFrame() (flutter#33602)
Tickers being disabled and re-enabled can cause the
condition of a synchronous notification happening after
image frames have been delivered, which is valid in that
case. As such, this removes the assert.

flutter#32374

Kiku-Reise added a commit to Kiku-Reise/flutter that referenced this issue Jun 14, 2019

Update consolidateHttpClientResponseBytes() to use compressionState (f…
…lutter#33729)

This updates to use the new HttpClientResponse.compressionState
API that was recently added in the SDK.

flutter#32374

Kiku-Reise added a commit to Kiku-Reise/flutter that referenced this issue Jun 14, 2019

Re-apply compressionState changes. (flutter#34341)
This re-applies the changes that were made in flutter#33697 and flutter#33729,
but which were reverted in flutter#33792 and flutter#33790, respectively due to
the Dart SDK not having received the update within Google yet.
The SDK has now rolled, so these changes can be re-applied.

flutter#32374
flutter#33791

goderbauer added a commit to goderbauer/flutter that referenced this issue Jul 3, 2019

Add loading support to Image (flutter#33369)
This adds two new builders to the `Image` class:

* `frameBuilder`, which allows callers to control the widget
  created by an [Image].
* `loadingBuilder`, which allows callers fine-grained control
  over how to display loading progress of an image to the user.

`FadeInImage` can be simplified by migrating to the new API.
This is done in a follow-on commit.

flutter#32374

goderbauer added a commit to goderbauer/flutter that referenced this issue Jul 3, 2019

Remove assert from Image._handleImageFrame() (flutter#33602)
Tickers being disabled and re-enabled can cause the
condition of a synchronous notification happening after
image frames have been delivered, which is valid in that
case. As such, this removes the assert.

flutter#32374

goderbauer added a commit to goderbauer/flutter that referenced this issue Jul 3, 2019

Update consolidateHttpClientResponseBytes() to use compressionState (f…
…lutter#33729)

This updates to use the new HttpClientResponse.compressionState
API that was recently added in the SDK.

flutter#32374

goderbauer added a commit to goderbauer/flutter that referenced this issue Jul 3, 2019

Re-apply compressionState changes. (flutter#34341)
This re-applies the changes that were made in flutter#33697 and flutter#33729,
but which were reverted in flutter#33792 and flutter#33790, respectively due to
the Dart SDK not having received the update within Google yet.
The SDK has now rolled, so these changes can be re-applied.

flutter#32374
flutter#33791
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.