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: c40baf47c5c8
Choose a base ref
...
head repository: flutter/flutter
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 042c0366c9a9
Choose a head ref
  • 20 commits
  • 49 files changed
  • 13 contributors

Commits on Jun 21, 2023

  1. Selection area right click behavior should match native (#128224)

    This change updates `SelectableRegion`s right-click gesture to match native platform behavior.
    
    Before: Right-click gesture selects word at position and opens context menu (All Platforms)
    After: 
    - Linux, toggles context menu on/off, and collapses selection when click was not on an active selection (uncollapsed).
    - Windows, Android, Fuchsia, shows context menu at right-clicked position (unless the click is at an active selection).
    - macOS, toggles the context menu if right click was at the same position as the previous / or selects word at position and opens context menu.
    - iOS, selects word at position and opens context menu.
    
    This change also prevents the `copy` menu button from being shown when there is a collapsed selection (nothing to copy).
    
    Fixes #117561
    Renzo-Olivares authored Jun 21, 2023
    Configuration menu
    Copy the full SHA
    b36ef58 View commit details
    Browse the repository at this point in the history
  2. Roll Flutter Engine from f973fb4636d3 to 090fae83548a (5 revisions) (#…

    …129293)
    
    flutter/engine@f973fb4...090fae8
    
    2023-06-21 [email protected] Roll Skia from c983b97d03a8 to 7eeb94b1e778 (4 revisions) (flutter/engine#43045)
    2023-06-21 [email protected] Move android emulator tests to v2. (flutter/engine#43008)
    2023-06-21 [email protected] Roll Skia from 65f30e5804c7 to c983b97d03a8 (2 revisions) (flutter/engine#43044)
    2023-06-21 [email protected] Roll Skia from 7121db7c6dc2 to 65f30e5804c7 (3 revisions) (flutter/engine#43043)
    2023-06-21 [email protected] Roll Dart SDK from 178d3d1184cb to 88fa9330633e (1 revision) (flutter/engine#43041)
    
    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 [email protected],[email protected],[email protected] 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://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
    
    Documentation for the AutoRoller is here:
    https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
    engine-flutter-autoroll authored Jun 21, 2023
    Configuration menu
    Copy the full SHA
    d2c4b5a View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    5cef69d View commit details
    Browse the repository at this point in the history
  4. Gracefully handle negative position in getWordAtOffset (#128464)

    Should fix an unreproducible crash in text editing and track it with an assertion.
    justinmc authored Jun 21, 2023
    Configuration menu
    Copy the full SHA
    16eb4f2 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    28ca523 View commit details
    Browse the repository at this point in the history
  6. Roll pub packages (#128966)

    This PR was generated by `flutter update-packages --force-upgrade`.
    fluttergithubbot authored Jun 21, 2023
    Configuration menu
    Copy the full SHA
    2200577 View commit details
    Browse the repository at this point in the history
  7. [framework,web] add FlutterTimeline and semantics benchmarks that use…

    … it (#128366)
    
    ## FlutterTimeline
    
    Add a new class `FlutterTimeline` that's a drop-in replacement for `Timeline` from `dart:developer`. In addition to forwarding invocations of `startSync`, `finishSync`, `timeSync`, and `instantSync` to `dart:developer`, provides the following extra methods that make is easy to collect timings for code blocks on a frame-by-frame basis:
    
    * `debugCollect()` - aggregates timings since the last reset, or since the app launched.
    * `debugReset()` - forgets all data collected since the previous reset, or since the app launched. This allows clearing data from previous frames so timings can be attributed to the current frame.
    * `now` - this was enhanced so that it works on the web by calling `window.performance.now` (in `Timeline` this is a noop in Dart web compilers).
    * `collectionEnabled` - a field that controls whether `FlutterTimeline` stores timings in memory. By default this is disabled to avoid unexpected overhead (although the class is designed for minimal and predictable overhead). Specific benchmarks can enable collection to report to Skia Perf.
    
    ## Semantics benchmarks
    
    Add `BenchMaterial3Semantics` that benchmarks the cost of semantics when constructing a screen full of Material 3 widgets from nothing. It is expected that semantics will have non-trivial cost in this case, but we should strive to keep it much lower than the rendering cost. This is the case already. This benchmark shows that the cost of semantics is <10%.
    
    Add `BenchMaterial3ScrollSemantics` that benchmarks the cost of scrolling a previously constructed screen full of Material 3 widgets. The expectation should be that semantics will have trivial cost, since we're just shifting some widgets around. As of today, the numbers are not great, with semantics taking >50% of frame time, which is what prompted this PR in the first place. As we optimize this, we want to see this number improve.
    yjbanov authored Jun 21, 2023
    Configuration menu
    Copy the full SHA
    07772a3 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    ae1e6f7 View commit details
    Browse the repository at this point in the history

Commits on Jun 22, 2023

  1. Manual roll of packages to 9af50d4 (#129328)

    Required to fix an analyzer error that is blocking the engine roller
    jason-simmons authored Jun 22, 2023
    Configuration menu
    Copy the full SHA
    b19ebcd View commit details
    Browse the repository at this point in the history
  2. Roll Flutter Engine from 08aaa88bf67f to c6251a69a09a (10 revisions) (#…

    …129331)
    
    flutter/engine@08aaa88...c6251a6
    
    2023-06-22 [email protected] Remove process-local tempfs (flutter/engine#43056)
    2023-06-22 [email protected] Roll Skia from 0185ce148be9 to 076e7c004d20 (2 revisions) (flutter/engine#43069)
    2023-06-22 [email protected] Roll Skia from 96d6135e9ee8 to 0185ce148be9 (4 revisions) (flutter/engine#43068)
    2023-06-22 [email protected] [Impeller] Uniquely label subpasses and root blit (flutter/engine#43015)
    2023-06-22 [email protected] [Impeller] Add Rect::Project (flutter/engine#43026)
    2023-06-21 [email protected] Roll Skia from 32e953e71266 to 96d6135e9ee8 (1 revision) (flutter/engine#43067)
    2023-06-21 [email protected] Roll Fuchsia Mac SDK from ct6r5YjdG2xpZPhkT... to QtQznuUmHMTyORqxJ... (flutter/engine#43065)
    2023-06-21 [email protected] Roll Fuchsia Linux SDK from 4mkuVtlGBaumKSe8x... to 7EZeNE4aGd29VfDly... (flutter/engine#43066)
    2023-06-21 [email protected] Roll ANGLE from 3a3a3c655a96 to ac263582dda4 (60 revisions) (flutter/engine#43062)
    2023-06-21 [email protected] Roll Skia from 7eeb94b1e778 to 32e953e71266 (17 revisions) (flutter/engine#43064)
    
    Also rolling transitive DEPS:
      fuchsia/sdk/core/linux-amd64 from 4mkuVtlGBaum to 7EZeNE4aGd29
      fuchsia/sdk/core/mac-amd64 from ct6r5YjdG2xp to QtQznuUmHMTy
    
    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 [email protected],[email protected],[email protected] 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://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
    
    Documentation for the AutoRoller is here:
    https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
    engine-flutter-autoroll authored Jun 22, 2023
    Configuration menu
    Copy the full SHA
    c83dce9 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    15d594c View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    70c25d4 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    a2739c0 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    7c259de View commit details
    Browse the repository at this point in the history
  7. Prevent crashes on range errors when selecting device (#129290)

    Prevent the cli from crashing when a user selects a number that is not valid for `flutter run` device selection
    
    Fixes issue:
    - #129191
    
    *If you had to change anything in the [flutter/tests] repo, include a link to the migration guide as per the [breaking change policy].*
    eliasyishak authored Jun 22, 2023
    Configuration menu
    Copy the full SHA
    18b94b7 View commit details
    Browse the repository at this point in the history
  8. Roll Packages from 9af50d4 to 95bc1c6 (6 revisions) (#129351)

    flutter/packages@9af50d4...95bc1c6
    
    2023-06-22 [email protected] [ci] Switch analyze tests to LUCI (flutter/packages#4264)
    2023-06-22 [email protected] Roll Flutter from fc8856e to c40baf4 (57 revisions) (flutter/packages#4270)
    2023-06-22 [email protected] [ci] Add LUCI version of build-all for Android (flutter/packages#4236)
    2023-06-21 [email protected] [go_router] Adds parent navigator key to ShellRoute and StatefulShellâ�¦ (flutter/packages#4201)
    2023-06-21 [email protected] [pigeon] Add macOS Obj-C support (flutter/packages#4267)
    2023-06-21 [email protected] [tools] Fix format instructions (flutter/packages#4259)
    
    If this roll has caused a breakage, revert this CL and stop the roller
    using the controls here:
    https://autoroll.skia.org/r/flutter-packages-flutter-autoroll
    Please CC [email protected],[email protected] 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://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
    
    Documentation for the AutoRoller is here:
    https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
    engine-flutter-autoroll authored Jun 22, 2023
    Configuration menu
    Copy the full SHA
    419bf81 View commit details
    Browse the repository at this point in the history
  9. Add InputDecorationTheme.merge (#129011)

    fixes [[Proposal] `InputDecorationTheme.merge()`](#125471)
    TahaTesser authored Jun 22, 2023
    Configuration menu
    Copy the full SHA
    2e05371 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    0da8012 View commit details
    Browse the repository at this point in the history
  11. Fix Material 3 Scrollable TabBar (#125974)

    fix #117722
    
    ### Description
    1. Fix the divider doesn't stretch to take all the available width in the scrollable tab bar in M3
    2. Add `dividerHeight` property.
    3. Update the default tab alignment for the scrollable tab bar to match the specs (this is backward compatible for M2 with the new `tabAlignment` property).
    
    ### Bug (default tab alignment)
    
    ![Screenshot 2023-05-05 at 19 04 40](https://user-images.githubusercontent.com/48603081/236509483-1d03af21-a764-4776-acef-2126560f0d51.png)
    
    ### Fix (default tab alignment)
    
    ![Screenshot 2023-05-05 at 19 04 15](https://user-images.githubusercontent.com/48603081/236509513-2426d456-c54f-42bd-9545-a14dc6ee7e69.png)
    
    ### Code sample
    
    <details> 
    <summary>code sample</summary> 
    
    ```dart
    import 'package:flutter/material.dart';
    
    /// Flutter code sample for [TabBar].
    
    void main() => runApp(const TabBarApp());
    
    class TabBarApp extends StatelessWidget {
      const TabBarApp({super.key});
    
      @OverRide
      Widget build(BuildContext context) {
        return MaterialApp(
          theme: ThemeData(
            //  tabBarTheme: const TabBarTheme(tabAlignment: TabAlignment.start),
              useMaterial3: true,
          ),
          home: const TabBarExample(),
        );
      }
    }
    
    class TabBarExample extends StatefulWidget {
      const TabBarExample({super.key});
    
      @OverRide
      State<TabBarExample> createState() => _TabBarExampleState();
    }
    
    class _TabBarExampleState extends State<TabBarExample> {
      bool rtl = false;
    
      @OverRide
      Widget build(BuildContext context) {
        return DefaultTabController(
          initialIndex: 1,
          length: 3,
          child: Directionality(
            textDirection:  rtl ? TextDirection.rtl : TextDirection.ltr,
            child: Scaffold(
              appBar: AppBar(
                title: const Text('TabBar Sample'),
              ),
              body: const Column(
                children: <Widget>[
                  Text('Scrollable-TabAlignment.start'),
                  TabBar(
                    isScrollable: true,
                    tabAlignment: TabAlignment.start,
                    tabs: <Widget>[
                      Tab(
                        icon: Icon(Icons.cloud_outlined),
                      ),
                      Tab(
                        icon: Icon(Icons.beach_access_sharp),
                      ),
                      Tab(
                        icon: Icon(Icons.brightness_5_sharp),
                      ),
                    ],
                  ),
                  Text('Scrollable-TabAlignment.startOffset'),
                  TabBar(
                    isScrollable: true,
                    tabAlignment: TabAlignment.startOffset,
                    tabs: <Widget>[
                      Tab(
                        icon: Icon(Icons.cloud_outlined),
                      ),
                      Tab(
                        icon: Icon(Icons.beach_access_sharp),
                      ),
                      Tab(
                        icon: Icon(Icons.brightness_5_sharp),
                      ),
                    ],
                  ),
                  Text('Scrollable-TabAlignment.center'),
                  TabBar(
                    isScrollable: true,
                    tabAlignment: TabAlignment.center,
                    tabs: <Widget>[
                      Tab(
                        icon: Icon(Icons.cloud_outlined),
                      ),
                      Tab(
                        icon: Icon(Icons.beach_access_sharp),
                      ),
                      Tab(
                        icon: Icon(Icons.brightness_5_sharp),
                      ),
                    ],
                  ),
                  Spacer(),
                  Text('Non-scrollable-TabAlignment.fill'),
                  TabBar(
                    tabAlignment: TabAlignment.fill,
                    tabs: <Widget>[
                      Tab(
                        icon: Icon(Icons.cloud_outlined),
                      ),
                      Tab(
                        icon: Icon(Icons.beach_access_sharp),
                      ),
                      Tab(
                        icon: Icon(Icons.brightness_5_sharp),
                      ),
                    ],
                  ),
                  Text('Non-scrollable-TabAlignment.center'),
                  TabBar(
                    tabAlignment: TabAlignment.center,
                    tabs: <Widget>[
                      Tab(
                        icon: Icon(Icons.cloud_outlined),
                      ),
                      Tab(
                        icon: Icon(Icons.beach_access_sharp),
                      ),
                      Tab(
                        icon: Icon(Icons.brightness_5_sharp),
                      ),
                    ],
                  ),
                  Spacer(),
                ],
              ),
              floatingActionButton: FloatingActionButton.extended(
                onPressed: () {
                  setState(() {
                    rtl = !rtl;
                  });
                },
                label: const Text('Switch Direction'),
                icon: const Icon(Icons.swap_horiz),
              ),
            ),
          ),
        );
      }
    }
    ``` 
    	
    </details>
    
    ![Screenshot 2023-06-06 at 18 06 12](https://github.com/flutter/flutter/assets/48603081/5ee5386d-cc64-4025-a020-ed2222cb6031)
    TahaTesser authored Jun 22, 2023
    Configuration menu
    Copy the full SHA
    32fde13 View commit details
    Browse the repository at this point in the history
  12. Remove unnecessary variable _hasPrimaryFocus (#129066)

    `_hasPrimaryFocus` variable and its related code is no longer needed after using `InkWell` for `DropdownButton` at #95906
    AhmedLSayed9 authored Jun 22, 2023
    Configuration menu
    Copy the full SHA
    042c036 View commit details
    Browse the repository at this point in the history
Loading