1. 21 Feb, 2024 6 commits
    • Jonah Williams's avatar
    • engine-flutter-autoroll's avatar
      Roll Flutter Engine from cb12a8cc97a1 to 3557277c575c (2 revisions) (#143807) · 35bdc94d
      engine-flutter-autoroll authored
      https://github.com/flutter/engine/compare/cb12a8cc97a1...3557277c575c
      
      2024-02-21 jonahwilliams@google.com Disable framework smoke tests. (flutter/engine#50800)
      2024-02-20 jonahwilliams@google.com [Impeller] more nullchecks in image decoder. (flutter/engine#50787)
      
      If this roll has caused a breakage, revert this CL and stop the roller
      using the controls here:
      https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
      Please CC jimgraham@google.com,rmistry@google.com,zra@google.com on the revert to ensure that a human
      is aware of the problem.
      
      To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
      
      To report a problem with the AutoRoller itself, please file a bug:
      https://issues.skia.org/issues/new?component=1389291&template=1850622
      
      Documentation for the AutoRoller is here:
      https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
      35bdc94d
    • Kevin Moore's avatar
      [flutter_tools] enable wasm compile on beta channel (#143779) · bc334396
      Kevin Moore authored
      Wasm compilation is now available on `master` and `beta` channels.
      bc334396
    • Simon Friis Vindum's avatar
      Fix initialization of time in repeat on AnimationController (#142887) · 6c78e36c
      Simon Friis Vindum authored
      This PR fixes #142885.
      
      The issue is that in `_RepeatingSimulation` the initial time is calculated as follows:
      
      ```
      (initialValue / (max - min)) * (period.inMicroseconds / Duration.microsecondsPerSecond)
      ```
      
      This calculation does not work in general. For instance, if `max` is 300, `min` is 100, and `initialValue` is 100 then `initialValue / (max - min)` is 1/2 when it should be 0
      
      The current tests work by happenstance because the numbers used happen to work. To reveal the bug I've added some more tests similar to the existing ones but with different numbers.
      
      A "side-effect" of the incorrect calculation is that if `initialValue` is 0, then the animation will always start from `min` no matter what. For instance, in one of the tests, an `AnimationController` with the value 0 is told to `repeat` between 0.5 and 1.0, and this starts the animation from 0.5. To preserve this behavior, and to more generally handle the case where the initial value is out of bounds, this PR clamps the initial value to be within the lower and upper bounds of the repetition.
      
      Just for reference, this calculation was introduced at https://github.com/flutter/flutter/pull/25125.
      6c78e36c
    • Jonah Williams's avatar
      Disable debug banner to stabilize impeller goldens. (#143794) · 1e822ca2
      Jonah Williams authored
      Fixes some of https://github.com/flutter/flutter/issues/143616 by disabling the debug banner, which does not appear to be a critical part of the golden.
      1e822ca2
    • auto-submit[bot]'s avatar
      Reverts "Changing `TextPainter.getOffsetForCaret` implementation to remove the... · f9b3b84d
      auto-submit[bot] authored
      Reverts "Changing `TextPainter.getOffsetForCaret` implementation to remove the logarithmic search (#143281)" (#143801)
      
      Reverts flutter/flutter#143281
      
      Initiated by: LongCatIsLooong
      
      Reason for reverting: https://github.com/flutter/flutter/issues/143797
      
      Original PR Author: LongCatIsLooong
      
      Reviewed By: {justinmc, jason-simmons}
      
      This change reverts the following previous change:
      Original Description:
      The behavior largely remains the same, except:
      
      1. The EOT cursor `(textLength, downstream)` for text ending in the opposite writing direction as the paragraph is now placed at the visual end of the last line. 
        For example, in a LTR paragraph, the EOT cursor for `aA` (lowercase for LTR and uppercase for RTL) is placed to the right of the line: `aA|` (it was `a|A` before). 
        This matches the behavior of most applications that do logical order arrow key navigation instead of visual order navigation. 
        And it makes the navigation order consistent for `aA\naA`:
      ```
        |aA    =>  aA|  => aA|  => aA  => aA   => aA 
         aA        aA      aA     |aA     aA|     aA|     
         (1)       (2)     (3)    (4)    (5)      (6)
      ```
      This is indeed still pretty confusing as (2) and (3), as well as (5) and (6) are hard to distinguish (when the I beam has a large width they are actually visually distinguishable -- they use the same anchor but one gets painted to the left and the other to the right. I noticed that emacs does the same). 
      But logical order navigation will always be confusing in bidi text, in one way or another.
      
      Interestingly there are 3 different behaviors I've observed in chrome:
      - the chrome download dialog (which I think uses GTK text widgets but not sure which version) gives me 2 cursors when navigating bidi text, and 
      - its HTML fields only show one, and presumably they place the I beam at the **trailing edge** of the character (which makes more sense for backspacing I guess). 
      - On the other hand, its (new) omnibar seems to use visual order arrow navigation
      
      Side note: we may need to update the "tap to place the caret here" logic to handle the case where the tap lands outside of the text and the text ends in the opposite writing direction. 
      
      2. Removed the logarithmic search. The same could be done using the characters package but when glyphInfo tells you about the baseline location in the future we probably don't need the `getBoxesForRange` call. This should fix https://github.com/flutter/flutter/issues/123424.
      
      ## Internal Tests
      
      This is going to change the image output of some internal golden tests. I'm planning to merge https://github.com/flutter/flutter/pull/143281 before this to avoid updating the same golden files twice for invalid selections.
      f9b3b84d
  2. 20 Feb, 2024 25 commits
  3. 19 Feb, 2024 8 commits
  4. 18 Feb, 2024 1 commit