Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.
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/engine
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: fe2476743b59
Choose a base ref
...
head repository: flutter/engine
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 1c775e34e2d5
Choose a head ref
  • 10 commits
  • 60 files changed
  • 7 contributors

Commits on May 16, 2023

  1. [ios_platform_view] only recycle maskView when the view is applying m…

    …utators (#41573)
    
    A mistake was introduced in #39498  where the maskViews are already recycles each frame. 
    
    Sometimes a PlatformView does not need to be re-composite: (https://github.com/flutter/engine/blob/main/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews.mm#L398-L401), so the mask view for such PlatformView should not be recycled.
    
    This PR changed the `recycleMaskViews` API to allow individual maskviews to be recycled. `ApplyMutator` then only recycle the maskView for that particular PlatformView.
    
    The MaskViewPool is also reworked to be simpler. 
    
    - The pool now contains a single set of mask views, there is no index counter needed.
    - When a maskView is needed, try to get it from the pool. 
      - If pool is empty, create a new view.
      - If pool has an available maskview, remove it from the pool.
    - When a PlatformView starts to `applyMutator`, it removes current the maskView, insert the maskView to the pool.
    - When the above PlatformView needs to a maskView, it grabs one from the pool. 
    
    fixes: flutter/flutter#125620
    
    [C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
    Chris Yang authored May 16, 2023
    Configuration menu
    Copy the full SHA
    17d5100 View commit details
    Browse the repository at this point in the history
  2. Add linux_clang_tidy builder. (#41990)

    This builder run android and host clang tidy in an engine v2 build.
    
    [C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
    godofredoc authored May 16, 2023
    Configuration menu
    Copy the full SHA
    5cf141f View commit details
    Browse the repository at this point in the history
  3. Fix drone_dimension host_engine_builder. (#42068)

    The host engine was using a top level dimension instead of a drone dimension and was causing the dart-internal build to fail.
    
    [C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
    godofredoc authored May 16, 2023
    Configuration menu
    Copy the full SHA
    3d645f3 View commit details
    Browse the repository at this point in the history
  4. [Windows] Add force redraw to the C++ client wrapper (#42061)

    This change adds a C++ client wrapper to Windows's "force redraw" C API. This API can be used to schedule a frame.
    
    Part of flutter/flutter#119415
    
    ## Background
    
    The Windows runner has a race at startup:
    
    1. **Platform thread**: creates a hidden window
    2. **Platform thread**: launches the Flutter engine
    3. **UI/Raster threads**: renders the first frame
    4. **Platform thread**: Registers a callback to show the window once the next frame has been rendered.
    
    Steps 3 and 4 happen in parallel and it is possible for step 3 to complete before step 4 starts. In this scenario, the next frame callback is never called and the window is never shown.
    
    The Windows runner will be updated to call the "force redraw" API after it registers the next frame callback. If step 3 hasn't completed yet, the "force redraw" will no-op as a frame is already scheduled. If step 3 has already completed, the "force redraw" will schedule another frame, which will call the next frame callback and show the window.
    
    See this discussion below on why we cannot avoid changing the Windows runner to fix this issue: #42061 (comment)
    
    [C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
    loic-sharma authored May 16, 2023
    Configuration menu
    Copy the full SHA
    2feb085 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    65e2426 View commit details
    Browse the repository at this point in the history
  6. Use new unresolvedCodePoints API from skia. (#41991)

    NOTE: this works off of a skia CL that is not merged yet, so we shouldn't merge this until it actually lands in skia and rolls into the engine. See https://skia-review.googlesource.com/c/skia/+/695716
    eyebrowsoffire authored May 16, 2023
    Configuration menu
    Copy the full SHA
    2ff91f3 View commit details
    Browse the repository at this point in the history
  7. Initial support for images in Skwasm (#42019)

    This partially implements flutter/flutter#126341
    
    It does not implement image codecs, because they are going to get complicated with transferring video frames to the web worker and so on. I am going to deal with image codecs in a subsequent change.
    eyebrowsoffire authored May 16, 2023
    Configuration menu
    Copy the full SHA
    e8c00a3 View commit details
    Browse the repository at this point in the history
  8. [linux] Wait for binding to be ready before requesting exits from fra…

    …mework (#41782)
    
    ## Description
    
    Similar to #41733 and #41753 this causes the linux embedding to wait until it hears that the scheduler binding has registered itself before proceeding to send termination requests to the framework.
    
    This allows applications that don't use the framework (just use `dart:ui` directly) to exit automatically when the last window is closed.  Without this change, the app does not exit when the window is closed.
    
    Depends on framework PR flutter/flutter#126075 landing first.
    
    ## Related PRs
     - #41733
     - #41753
    
    ## Related Issues
     - flutter/flutter#126033.
    
    ## Tests
     - Added a test to make sure that it doesn't send a termination request if the binding hasn't notified that it is ready yet.
    gspencergoog authored May 16, 2023
    Configuration menu
    Copy the full SHA
    a49138e View commit details
    Browse the repository at this point in the history
  9. [macOS] Wait for binding to be ready before requesting exits from fra…

    …mework (#41753)
    
    Similar to #41733 and
    #41782, this causes the macos
    embedding to wait until it hears that the scheduler binding has
    registered itself before proceeding to send termination requests to the
    framework.
    
    This allows applications that don't use the framework (just use
    `dart:ui` directly) to exit automatically when the last window is
    closed. Without this change, the last window closes, but the app does
    not exit.
    
    Depends on framework PR flutter/flutter#126075
    landing first.
    gspencergoog authored May 16, 2023
    Configuration menu
    Copy the full SHA
    49b4317 View commit details
    Browse the repository at this point in the history
  10. Revert "[ios_platform_view] only recycle maskView when the view is ap…

    …plying mutators" (#42080)
    
    Reverts #41573
    
    Crashing on Framework CI
    zanderso authored May 16, 2023
    Configuration menu
    Copy the full SHA
    1c775e3 View commit details
    Browse the repository at this point in the history
Loading