Repository: flutter
Issue: ☂️ Multi View for Windows/MacOS
Labels: framework,engine,platform-mac,platform-windows,P3,a: multi window,team-framework,triaged-framework

## Add basic multi-view rendering support

- [x] Design documents
    - [x] https://flutter.dev/go/multiple-views
    - [x] https://flutter.dev/go/multi-view-embedder-apis
    - [x] https://flutter.dev/go/desktop-multi-view-runner-apis
    - [x] https://flutter.dev/go/multi-view-sync-over-async
- [x] Add multi-view `dart:ui` APIs
    - [x] https://github.com/flutter/flutter/issues/112205
- [x] Resolve framework's warm-up frame problem
  - [x] https://github.com/flutter/engine/pull/50570
  - [x] https://github.com/flutter/flutter/pull/143290
- [x] Re-land multi-view rasterization pipeline: https://github.com/flutter/engine/pull/51186
    - [x] https://github.com/flutter/flutter/issues/144444
    - [x] https://github.com/flutter/flutter/issues/144445
    - [x] https://github.com/flutter/flutter/issues/144584
- [x] Add multi-view rendering embedder APIs
  - [x] send window metrics with view IDs: https://github.com/flutter/engine/pull/46174
  - [x] https://github.com/flutter/engine/pull/46213
- [ ] #144810 (rendering only)
  - [x] Windows: https://github.com/flutter/engine/pull/51923
  - [ ] macOS
- [ ] Add new multi-view runner APIs (as "pubternal")
  - [ ] https://github.com/flutter/flutter/issues/143767
  - [ ] https://github.com/flutter/flutter/issues/145874
- [x] Make Windows embedder multi-view ready
  - [x] https://flutter.dev/go/windows-multi-view-ownership-updates 
  - [x] https://github.com/flutter/flutter/issues/137267
  - [x] https://github.com/flutter/flutter/issues/143765

## Work after rendering

- Make all built-in features multi-view compatible
  - [ ] https://github.com/flutter/flutter/issues/144806 
  - [ ] Built-in plugins: text input, cursor, app lifecycle, etc.
  - [ ] Accessibility
      - [ ] https://github.com/flutter/flutter/issues/112207
- [ ] Make all plugins multi-view compatible
  - [ ] Decouple plugin registration from view initialization
    - [ ] Ensure plugins do not crash if there is no view
  - [ ] Make runner APIs public
  - [ ] Ensure plugins do not use runner APIs that are incompatible with multiple views
- Bugs
  - [x] https://github.com/flutter/flutter/issues/146251
  - [ ] https://github.com/flutter/flutter/issues/135534
  - [ ] Engine should drop pointer events sent to nonexistent views
  - [ ] https://github.com/flutter/flutter/issues/130165
- Next phase
  - [ ] Add Dart windowing APIs
    - [ ] https://github.com/flutter/flutter/issues/30736
  - [ ] Update DevTools
    - [ ] Update frame timings 
  - [ ] Hide new windows until first frame to prevent black flashes
  - [ ] https://github.com/flutter/flutter/issues/144633
    - [ ] https://github.com/flutter/flutter/issues/131651
  - [ ] #146249
  - [ ] https://github.com/flutter/flutter/issues/145712
  - [ ] https://github.com/flutter/flutter/issues/146013
- Clean ups
  - [ ] Deprecate embedder APIs that aren't multi-view compatible
  - [ ] #146248


Other platforms:
- [ ] https://github.com/flutter/flutter/issues/138178
- [ ] https://github.com/flutter/flutter/issues/138168