Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: flutter/flutter
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 85564cbba9e7
Choose a base ref
...
head repository: flutter/flutter
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 60050a0b4d56
Choose a head ref
  • 17 commits
  • 85 files changed
  • 13 contributors

Commits on May 23, 2025

  1. Use pub workspace (#168662)

    Switch Flutter to use pub workspaces as a preparation to unpin selected
    packages.
    
    Assumptions:
    
    1. No packages in this repository are published to pub.dev --> We can
    use `any` dependencies in most local pubspecs, as the global constraint
    defines the version. An exception are the packages used outside of this
    repo with an `sdk` dependency, namely `flutter_localizations`,
    `flutter_test`, and `flutter`.
    2. The "universes" `{flutter_tools}` and `{flutter,
    flutter_localizations, flutter_goldens}` can use different packages
    versions, as they are not resolved together. --> We do not need to
    upgrade them in sync, we can first do one "universe", then the other.
    
    Based on these assumptions, we use
    https://github.com/mosuem/pubspec_merger.dart to merge all packages in
    the `flutter` universe into a top-level pub workspace.
    
    The `flutter` and `flutter_tools` workspaces being separate also ensures
    that changes to `flutter` will not inadvertently break `flutter_tools`,
    with not-so-nice consequences for our users which would be unable to run
    `flutter upgrade`.
    
    There is a third "top-level" pubspec besides `./pubspec.yaml` and
    `packages/flutter_tools/pubspec.yaml`, namely
    `packages/flutter_tools/.../widget_preview_scaffold/pubspec.yaml`. This
    is an artifact due to it living under `flutter_tools`, so it can't be
    part of the `./pubspec.yaml` workspace. Moving it would be a larger
    change, and out of the scope of this PR.
    
    This required a rewrite of the update-packages tool, but the main
    functionality stays the same, as well as the argument names, to ensure a
    seamless transition.
    
    ## Pre-launch Checklist
    
    - [x] I read the [Contributor Guide] and followed the process outlined
    there for submitting PRs.
    - [x] I read the [Tree Hygiene] wiki page, which explains my
    responsibilities.
    - [x] I read and followed the [Flutter Style Guide], including [Features
    we expect every widget to implement].
    - [x] I signed the [CLA].
    - [x] I listed at least one issue that this PR fixes in the description
    above.
    - [x] I updated/added relevant documentation (doc comments with `///`).
    - [x] I added new tests to check the change I am making, or this PR is
    [test-exempt].
    - [x] I followed the [breaking change policy] and added [Data Driven
    Fixes] where supported.
    - [x] All existing and new tests are passing.
    
    If you need help, consider asking for advice on the #hackers-new channel
    on [Discord].
    
    <!-- Links -->
    [Contributor Guide]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
    [Tree Hygiene]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
    [test-exempt]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
    [Flutter Style Guide]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
    [Features we expect every widget to implement]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
    [CLA]: https://cla.developers.google.com/
    [flutter/tests]: https://github.com/flutter/tests
    [breaking change policy]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
    [Discord]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
    [Data Driven Fixes]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
    mosuem authored May 23, 2025
    Configuration menu
    Copy the full SHA
    9a1dc1b View commit details
    Browse the repository at this point in the history
  2. Reverts "Use pub workspace (#168662)" (#169357)

    <!-- start_original_pr_link -->
    Reverts: #168662
    <!-- end_original_pr_link -->
    <!-- start_initiating_author -->
    Initiated by: matanlurey
    <!-- end_initiating_author -->
    <!-- start_revert_reason -->
    Reason for reverting: Broke integration tests that do not run on
    presubmit:
    
    -
    https://ci.chromium.org/ui/p/flutter/builders/prod/Mac_arm64%20macos_chrome_dev_mode/8715/overview
    -
    https://ci.chromium.org/ui/p/flutter/builders/prod/Linux_pixel_7pro%20linux_chrome_dev_mode/7617/overview
    <!-- end_revert_reason -->
    <!-- start_original_pr_author -->
    Original PR Author: mosuem
    <!-- end_original_pr_author -->
    
    <!-- start_reviewers -->
    Reviewed By: {matanlurey}
    <!-- end_reviewers -->
    
    <!-- start_revert_body -->
    This change reverts the following previous change:
    Switch Flutter to use pub workspaces as a preparation to unpin selected
    packages.
    
    Assumptions:
    
    1. No packages in this repository are published to pub.dev --> We can
    use `any` dependencies in most local pubspecs, as the global constraint
    defines the version. An exception are the packages used outside of this
    repo with an `sdk` dependency, namely `flutter_localizations`,
    `flutter_test`, and `flutter`.
    2. The "universes" `{flutter_tools}` and `{flutter,
    flutter_localizations, flutter_goldens}` can use different packages
    versions, as they are not resolved together. --> We do not need to
    upgrade them in sync, we can first do one "universe", then the other.
    
    Based on these assumptions, we use
    https://github.com/mosuem/pubspec_merger.dart to merge all packages in
    the `flutter` universe into a top-level pub workspace.
    
    The `flutter` and `flutter_tools` workspaces being separate also ensures
    that changes to `flutter` will not inadvertently break `flutter_tools`,
    with not-so-nice consequences for our users which would be unable to run
    `flutter upgrade`.
    
    There is a third "top-level" pubspec besides `./pubspec.yaml` and
    `packages/flutter_tools/pubspec.yaml`, namely
    `packages/flutter_tools/.../widget_preview_scaffold/pubspec.yaml`. This
    is an artifact due to it living under `flutter_tools`, so it can't be
    part of the `./pubspec.yaml` workspace. Moving it would be a larger
    change, and out of the scope of this PR.
    
    This required a rewrite of the update-packages tool, but the main
    functionality stays the same, as well as the argument names, to ensure a
    seamless transition.
    
    ## Pre-launch Checklist
    
    - [x] I read the [Contributor Guide] and followed the process outlined
    there for submitting PRs.
    - [x] I read the [Tree Hygiene] wiki page, which explains my
    responsibilities.
    - [x] I read and followed the [Flutter Style Guide], including [Features
    we expect every widget to implement].
    - [x] I signed the [CLA].
    - [x] I listed at least one issue that this PR fixes in the description
    above.
    - [x] I updated/added relevant documentation (doc comments with `///`).
    - [x] I added new tests to check the change I am making, or this PR is
    [test-exempt].
    - [x] I followed the [breaking change policy] and added [Data Driven
    Fixes] where supported.
    - [x] All existing and new tests are passing.
    
    If you need help, consider asking for advice on the #hackers-new channel
    on [Discord].
    
    <!-- Links -->
    [Contributor Guide]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
    [Tree Hygiene]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
    [test-exempt]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
    [Flutter Style Guide]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
    [Features we expect every widget to implement]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
    [CLA]: https://cla.developers.google.com/
    [flutter/tests]: https://github.com/flutter/tests
    [breaking change policy]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
    [Discord]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
    [Data Driven Fixes]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
    
    <!-- end_revert_body -->
    
    Co-authored-by: auto-submit[bot] <[email protected]>
    auto-submit[bot] and auto-submit[bot] authored May 23, 2025
    Configuration menu
    Copy the full SHA
    e0c42c6 View commit details
    Browse the repository at this point in the history
  3. Use baseUri of WebAssetServer for reload_scripts.json (#169267)

    This allows embedded Flutter Web apps, hosted on a different URL than
    the host app, to hot reload the correct files.
    
    This fixes issues mentioned in:
    - dart-lang/sdk#60776
    -
    #88434 (comment)
    
    It specifically allows you to use hot reload when debugging an embedded
    Flutter Web app, running in the spawned Chrome browser via the `-d
    chrome` flag, as mentioned in
    dart-lang/sdk#60776 (comment)
    
    ## Result
    
    This would result in the following `reload_scripts.json` for an embedded
    Flutter web app, running on `localhost:8081`:
    ```json
    [{
        "src": "http://localhost:8081/packages/web_hot_reload/main.dart.lib.js",
        "libraries": ["package:web_hot_reload/main.dart"]
    }]
    ```
    
    ## Normal Flutter Web apps
    
    This also adds the baseUri to the maps for normal Flutter Web apps, for
    example:
    ```json
    [{
        "src": "http://localhost:54609/packages/web_hot_reload/main.dart.lib.js",
        "libraries": ["package:web_hot_reload/main.dart"]
    }]
    ```
    instead of the previous:
    ```json
    [{
        "src": "packages/web_hot_reload/main.dart.lib.js",
        "libraries": ["package:web_hot_reload/main.dart"]
    }]
    ```
    
    While both actually work, I'm not sure if there might be cases in which
    this would have another side effect.
    
    ## Pre-launch Checklist
    
    - [x] I read the [Contributor Guide] and followed the process outlined
    there for submitting PRs.
    - [x] I read the [Tree Hygiene] wiki page, which explains my
    responsibilities.
    - [x] I read and followed the [Flutter Style Guide], including [Features
    we expect every widget to implement].
    - [x] I signed the [CLA].
    - [x] I listed at least one issue that this PR fixes in the description
    above.
    - [x] I updated/added relevant documentation (doc comments with `///`).
    - [x] I added new tests to check the change I am making, or this PR is
    [test-exempt].
    - [x] I followed the [breaking change policy] and added [Data Driven
    Fixes] where supported.
    - [x] All existing and new tests are passing.
    
    If you need help, consider asking for advice on the #hackers-new channel
    on [Discord].
    
    <!-- Links -->
    [Contributor Guide]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
    [Tree Hygiene]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
    [test-exempt]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
    [Flutter Style Guide]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
    [Features we expect every widget to implement]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
    [CLA]: https://cla.developers.google.com/
    [flutter/tests]: https://github.com/flutter/tests
    [breaking change policy]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
    [Discord]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
    [Data Driven Fixes]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
    dumazy authored May 23, 2025
    Configuration menu
    Copy the full SHA
    171e272 View commit details
    Browse the repository at this point in the history
  4. Remove handling of the legacy .flutter-plugins file in `PluginHandl…

    …er.kt`. (#169317)
    
    As of #169283 it's impossible for
    the `.flutter-plugins` file to exist outside of unit tests.
    matanlurey authored May 23, 2025
    Configuration menu
    Copy the full SHA
    5f99c89 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    97e594d View commit details
    Browse the repository at this point in the history
  6. Add changelog section for 3.32.0 and 3.32.1, and add note for ndk che…

    …cking cherry pick (#169369)
    
    Adds a note about #169289, and
    also makes the sections as they didn't exist yet.
    
    ## Pre-launch Checklist
    
    - [x] I read the [Contributor Guide] and followed the process outlined
    there for submitting PRs.
    - [x] I read the [Tree Hygiene] wiki page, which explains my
    responsibilities.
    - [x] I read and followed the [Flutter Style Guide], including [Features
    we expect every widget to implement].
    - [x] I signed the [CLA].
    - [ ] I listed at least one issue that this PR fixes in the description
    above.
    - [x] I updated/added relevant documentation (doc comments with `///`).
    - [x] I added new tests to check the change I am making, or this PR is
    [test-exempt].
    - [x] I followed the [breaking change policy] and added [Data Driven
    Fixes] where supported.
    - [ ] All existing and new tests are passing.
    
    If you need help, consider asking for advice on the #hackers-new channel
    on [Discord].
    
    <!-- Links -->
    [Contributor Guide]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
    [Tree Hygiene]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
    [test-exempt]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
    [Flutter Style Guide]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
    [Features we expect every widget to implement]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
    [CLA]: https://cla.developers.google.com/
    [flutter/tests]: https://github.com/flutter/tests
    [breaking change policy]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
    [Discord]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
    [Data Driven Fixes]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
    
    ---------
    
    Co-authored-by: Gray Mackall <[email protected]>
    gmackall and Gray Mackall authored May 23, 2025
    Configuration menu
    Copy the full SHA
    7dd0a09 View commit details
    Browse the repository at this point in the history
  7. Revert "Mark web_tool_tests_1_2 as bringup." (#169361)

    Reverts #168871
    
    The timeout was [fixed](#169277)
    and some slow tests have been
    [disabled](#169305). The builder
    has been consistently green for the past 20+ runs:
    https://ci.chromium.org/ui/p/flutter/builders/luci.flutter.staging/Windows%20web_tool_tests_1_2
    
    Closes #168863
    mdebbar authored May 23, 2025
    Configuration menu
    Copy the full SHA
    db1c97a View commit details
    Browse the repository at this point in the history
  8. Add a page describing best CI practices for flutter-org repos (#169364

    )
    
    Co-authored-by: John "codefu" McDole <[email protected]>
    matanlurey and jtmcdole authored May 23, 2025
    Configuration menu
    Copy the full SHA
    82a4e3e View commit details
    Browse the repository at this point in the history
  9. [Engine] Fast blurring algorithm for RSuperellipse (#169187)

    This PR adds a fast blurring algorithm for `RSuperellipse`s with uniform
    corner radius, similar to `AttemptDrawBlurredRRect`.
    
    Fixes #163893. Fixes
    #167366.
    
    This approximate algorithm is implemented by adding additional
    retraction to RRect's algorithm. Since they share most the logic, much
    effort is made to ensure reasonable code share.
    
    I've also built a playground test `RoundSuperellipseShadowComparison` to
    compare the effect between the fast algorithm and the bruteforce
    algorithm, and added a macrobenchmark "rsuperellipse_blur".
    
    ### Result
    
    The following video shows the reproduction app from
    #167366, which shows much
    better framerate on RSE after the PR, almost the same as RRect. (I've
    verified that it was much worse without the PR.)
    
    
    https://github.com/user-attachments/assets/5433af91-c0a1-4b15-9161-cf2280543e27
    
    The following video shows the `RoundSuperellipseShadowComparison`
    playground, which compares the fast algorithm (left) against the
    bruteforce algorithm (right).
    
    * Pay attention to the cases with small but non zero sigma. They should
    be of almost the same shape as those with zero sigma, which skips the
    blurring altogether. With this algorithm, the difference between the two
    cases are about 1~2 pixel at most.
    
    
    https://github.com/user-attachments/assets/e26d2d8f-d29e-4db8-9c20-67103d77891c
    
    The following images compare macrobenchmarks "rrect_blur" against the
    new "rsuperellipse_blur". (Notice that the avg frame time fluctuates a
    lot but at least it shows that they're on par.)
    
    <img width="389" alt="image"
    src="https://github.com/user-attachments/assets/67cf4b10-f13f-4e55-bdfd-35d358617f38"
    />
    
    <img width="365" alt="image"
    src="https://github.com/user-attachments/assets/6869fa9c-5752-4a11-babe-b6a2d590ebc9"
    />
    
    
    
    ### Open questions
    * Should I improve the code share of shader files? Currently they're not
    shared mostly because I'm not sure about its gain and cost.
    
    ## Pre-launch Checklist
    
    - [ ] I read the [Contributor Guide] and followed the process outlined
    there for submitting PRs.
    - [ ] I read the [Tree Hygiene] wiki page, which explains my
    responsibilities.
    - [ ] I read and followed the [Flutter Style Guide], including [Features
    we expect every widget to implement].
    - [ ] I signed the [CLA].
    - [ ] I listed at least one issue that this PR fixes in the description
    above.
    - [ ] I updated/added relevant documentation (doc comments with `///`).
    - [ ] I added new tests to check the change I am making, or this PR is
    [test-exempt].
    - [ ] I followed the [breaking change policy] and added [Data Driven
    Fixes] where supported.
    - [ ] All existing and new tests are passing.
    
    If you need help, consider asking for advice on the #hackers-new channel
    on [Discord].
    
    <!-- Links -->
    [Contributor Guide]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
    [Tree Hygiene]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
    [test-exempt]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
    [Flutter Style Guide]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
    [Features we expect every widget to implement]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
    [CLA]: https://cla.developers.google.com/
    [flutter/tests]: https://github.com/flutter/tests
    [breaking change policy]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
    [Discord]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
    [Data Driven Fixes]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
    dkwingsmt authored May 23, 2025
    Configuration menu
    Copy the full SHA
    ea1c1ba View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    8bebea6 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    16fabc7 View commit details
    Browse the repository at this point in the history

Commits on May 24, 2025

  1. Start removing Observatory support and references (#169216)

    This change removes references to Observatory, including:
    
     - Deprecated flags
     - Deprecated embedder APIs
     - Outdated documentation
     - Documentation instances where "VM service" should have been used
     - Incorrectly named tests / directories
    
    As a part of this change, `--serve-observatory` is no longer a valid
    flag.
    
    Observatory is still available for now via the `_serveObservatory` RPC,
    but will be removed in a follow up PR once we've prepared for breakages
    in G3.
    
    Work towards dart-lang/sdk#50233
    
    FYI @a-siva
    bkonyi authored May 24, 2025
    Configuration menu
    Copy the full SHA
    b2b4fb5 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ea3cebd View commit details
    Browse the repository at this point in the history
  3. Baseline-align CupertinoTextField placeholder (#166952)

    | Before | After | 
    | --- | --- |
    | <img width="348" alt="non baseline aligned placeholder"
    src="https://github.com/user-attachments/assets/62f779cc-1d16-41f3-92f8-a2de16a04895"
    /> | <img width="348" alt="baseline aligned placeholder"
    src="https://github.com/user-attachments/assets/e43d200f-ef47-4d10-a74a-a2c6998b44f5"
    /> |
    
    
    Fixes [Can't align placeholder of CupertinoTextField with min lines to
    top](#138794)
    victorsanni authored May 24, 2025
    Configuration menu
    Copy the full SHA
    3df4a3c View commit details
    Browse the repository at this point in the history
  4. Correct calculation for CupertinoTextSelectionToolbar vertical positi…

    …on (#169308)
    
    [Size CupertinoTextSelectionToolbar to
    children](#133386) made a slight
    mistake when calculating if the toolbar should be above or below the
    text field.
    
    Doubling the toolbar arrow height in the `_isAbove `calculation added a
    buffer of its height (7.0) within which the toolbar would be positioned
    below the text but have its arrow still pointing downwards. This is why
    [I was only able to reproduce the bug within a 7.0 height
    range](#154812 (comment)).
    
    | Before | After | 
    | --- | --- |
    | <img width="377" alt="toolbar pos before"
    src="https://github.com/user-attachments/assets/11f63cf3-f352-4232-8230-f04da89b0b4c"
    /> | <img width="377" alt="toolbar pos after"
    src="https://github.com/user-attachments/assets/4a48c3bd-158e-468e-9c67-af125c7856a7"
    /> |
    
    <details>
    <summary>Sample code</summary>
    
    ```dart
    import 'package:flutter/cupertino.dart';
    
    void main() => runApp(const TextSelectionToolbarApp());
    
    class TextSelectionToolbarApp extends StatelessWidget {
      const TextSelectionToolbarApp({super.key});
    
      @OverRide
      Widget build(BuildContext context) {
        return CupertinoApp(
          home: const CupertinoPageScaffold(
            child: SafeArea(
              child: ColoredBox(
                color: Color(0x11ff0000),
                child: Padding(
                  padding: EdgeInsets.symmetric(vertical: 56.0, horizontal: 8.0),
                  child: Column(
                    children: [
                      CupertinoTextField(),
                    ],
                  ),
                ),
              ),
            ),
          ),
        );
      }
    }
    
    ```
    
    </details>
    
    
    Fixes [Cupertino Text Selection Toolbar has wrong
    position](#154812)
    victorsanni authored May 24, 2025
    Configuration menu
    Copy the full SHA
    16e5318 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    9071137 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    60050a0 View commit details
    Browse the repository at this point in the history
Loading