1. 11 Mar, 2020 1 commit
    • Greg Spencer's avatar
      Convert Diagnosticable to a mixin (#51495) · 210f4d83
      Greg Spencer authored
      This converts Diagnosticable to be a mixin instead of an abstract class, so that it can be used to add diagnostics to classes which already have a base class.
      
      It leaves in place the DiagnosticableMixin mixin, since there are some plugins that are still using it, and removing it would mean that those plugins wouldn't work with master branch Flutter anymore. DiagnosticableMixin will be removed once this mixin version of Diagnosticable makes its way to the stable branch.
      210f4d83
  2. 04 Mar, 2020 1 commit
  3. 27 Feb, 2020 1 commit
  4. 26 Feb, 2020 1 commit
  5. 24 Feb, 2020 1 commit
  6. 20 Feb, 2020 1 commit
  7. 14 Feb, 2020 1 commit
  8. 30 Jan, 2020 1 commit
  9. 27 Jan, 2020 1 commit
  10. 17 Jan, 2020 2 commits
  11. 09 Jan, 2020 1 commit
  12. 07 Jan, 2020 1 commit
  13. 05 Dec, 2019 1 commit
  14. 27 Nov, 2019 1 commit
    • Ian Hickson's avatar
      License update (#45373) · 449f4a66
      Ian Hickson authored
      * Update project.pbxproj files to say Flutter rather than Chromium
      
      Also, the templates now have an empty organization so that we don't cause people to give their apps a Flutter copyright.
      
      * Update the copyright notice checker to require a standard notice on all files
      
      * Update copyrights on Dart files. (This was a mechanical commit.)
      
      * Fix weird license headers on Dart files that deviate from our conventions; relicense Shrine.
      
      Some were already marked "The Flutter Authors", not clear why. Their
      dates have been normalized. Some were missing the blank line after the
      license. Some were randomly different in trivial ways for no apparent
      reason (e.g. missing the trailing period).
      
      * Clean up the copyrights in non-Dart files. (Manual edits.)
      
      Also, make sure templates don't have copyrights.
      
      * Fix some more ORGANIZATIONNAMEs
      449f4a66
  15. 30 May, 2019 1 commit
  16. 23 May, 2019 1 commit
  17. 21 May, 2019 2 commits
    • Todd Volkert's avatar
      Add support for ImageStreamListener.onChunk() (#33092) · 27d3c2fc
      Todd Volkert authored
      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.
      
      https://github.com/flutter/flutter/issues/32374
      27d3c2fc
    • Todd Volkert's avatar
      Add some sanity to the ImageStream listener API (#32936) · 592f81e7
      Todd Volkert authored
      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/flutter#24722
      flutter/flutter#32374
      flutter/flutter#32935
      592f81e7
  18. 16 May, 2019 1 commit
  19. 01 May, 2019 1 commit
  20. 02 Apr, 2019 1 commit
    • Amir Hardon's avatar
      Make sure _handleAppFrame is only registered once per frame (#30346) · b6afc16a
      Amir Hardon authored
      There were 2 possible scenarios in which _handleAppFrame is added more than once as a frame callback. When this happens it is possible that the second invocation will try to access _nextFrame.image when _nextFrame is null and crash. The 2 scenarios are:
      
      Scenario 1
      
      A GIF frame is decoded and a Flutter frame is executed before it's time to show the next GIF frame.
      The timer that's waiting for enough time to elapse is invoked, and schedules a callback for the next Flutter frame(here).
      Before the next Flutter frame is executed, MultiFrameImageStreamCompleter#removeListener is called followed by ``MultiFrameImageStreamCompleter#addListenerthat is invoking_decodeNextFrameAndSchedule` which is adding `_handleAppFrame` again as a next frame callback.
      Scenario 2
      removeListener and addListener are called multiple times in succession, every call to addListener can result in another registration of _handleAppFrame to the next Flutter frame callbacks list.
      
      This patch fixes the issue by guarding against a second registration of _handleAppFrame.
      b6afc16a
  21. 01 Mar, 2019 1 commit
    • Alexandre Ardhuin's avatar
      Add missing trailing commas (#28673) · 387f8854
      Alexandre Ardhuin authored
      * add trailing commas on list/map/parameters
      
      * add trailing commas on Invocation with nb of arg>1
      
      * add commas for widget containing widgets
      
      * add trailing commas if instantiation contains trailing comma
      
      * revert bad change
      387f8854
  22. 28 Feb, 2019 1 commit
    • Greg Spencer's avatar
      Fix spelling errors. (#28657) · ccdd5057
      Greg Spencer authored
      Fix the spelling errors in the dartdocs for the framework.
      
      There are no functionality changes here, just documentation fixes.
      ccdd5057
  23. 31 Jan, 2019 1 commit
    • Ian Hickson's avatar
      [H] Add ImageStreamCompleter.hasListeners (and cleanup) (#25865) · d5d47f63
      Ian Hickson authored
      * Remove stray extra space
      
      * Add ImageStreamCompleter.hasListeners (and cleanup)
      
      This is mostly just some cleanup of stuff I ran into, but it makes
      `hasListeners` protected on `ImageStreamCompleter`, because otherwise
      there's no way to track if listeners are registered or not.
      
      * Address review comments
      d5d47f63
  24. 29 Jan, 2019 1 commit
  25. 04 Jan, 2019 1 commit
  26. 16 Oct, 2018 1 commit
  27. 14 Sep, 2018 1 commit
  28. 12 Sep, 2018 1 commit
  29. 15 Aug, 2018 1 commit
  30. 31 Jul, 2018 1 commit
  31. 13 Jun, 2018 1 commit
    • Chris Bracken's avatar
      Revert elimination of Dart 1 (#18460) · 2ae48845
      Chris Bracken authored
      fuchsia_tester.dart still assumes Dart 1. Previously, it ran tests directly
      from source, flutter_platform.dart automatically runs a kernel compile when
      operating in Dart 2 mode, but this assumes a functional Dart SDK is available
      in the artifacts directly, and fuchsia_tester.dart mocks out the artifacts
      directory with an empty temp dir.
      
      Remaining work is:
      1. Get the frontend server building as a dependency on Fuchsia.
      2. Patch fuchsia_tester.dart to use a valid Dart SDK and frontend server.
      
      This also reverts migration to Dart 2 typedef syntax.
      
      This reverts commit 6c56bb24. (#18362)
      This reverts commit 3daebd05. (#18316)
      2ae48845
  32. 11 Jun, 2018 1 commit
    • Greg Spencer's avatar
      Update typedef syntax to use Function notation and turn on lint for old notation. (#18362) · 6c56bb24
      Greg Spencer authored
      Now that Dart 1 is turned off, reapplying my change to turn on the prefer_generic_function_type_aliases analysis option, and fix all the typedefs to Dart 2 preferred syntax.
      
      Also eliminated the unused analysis_options_repo.yaml file and turned on public_member_api_docs in analysys_options.yaml.
      
      No logic changes, just changing the typedef syntax for all typedefs, and updating analysis options.
      6c56bb24
  33. 05 Jun, 2018 1 commit
  34. 30 May, 2018 2 commits
  35. 24 Jan, 2018 1 commit
  36. 10 Jan, 2018 1 commit
    • Ian Hickson's avatar
      Make DecoratedBox repaint after being reparented (#13927) · 316d8e1c
      Ian Hickson authored
      Fixes https://github.com/flutter/flutter/issues/12553
      
      The root cause of https://github.com/flutter/flutter/issues/12553 was that when the refresh indicator went away, which happened after the avatars had started their image loads but before the avatars had loaded, the DecoratedBoxes, along with the rest of the list, got GlobalKey-reparented, which caused the RenderDecoratedBox objects to unregister from the DecorationImagePainters, but they never re-registered since the whole subtree was in a RepaintBoundary and was therefore not explicitly repainted when the tree got reattached.
      
      This fixes the bug by explicitly requiring any RenderDecoratedBox to repaint when it's reattached. This is probably a little more aggressive than required; we could probably expose a flag on Decoration that says whether or not the onChanged handler will ever be invoked, and only call markNeedsPaint if that's true, but we'll do that if it turns out that there's a performance issue here.
      
      (This patch also introduces a bunch of improved debugging information that I used to track down the bug.)
      316d8e1c
  37. 07 Dec, 2017 1 commit
    • Ian Hickson's avatar
      Move image logic from services/ to painting/. (#13409) · 44e228eb
      Ian Hickson authored
      This allows the scheduler library to depend on the services library
      and the painting library to depend on the scheduler library without
      the services library having to depend on the scheduler library.
      
      While I was at it I also cleaned up some of the binding logic: the
      licenses logic can now be overridden (and the test library does so),
      and the image cache can now be overridden as well.
      44e228eb