Visitar URL original
RFC 170.0000: Pluggable App-Level Find-in-Page (Cmd+F / Ctrl+F) via FindInPageScope & SelectableRegion by kevmoo · Pull Request #25 · flutter/rfc · GitHub
Skip to content

RFC 170.0000: Pluggable App-Level Find-in-Page (Cmd+F / Ctrl+F) via FindInPageScope & SelectableRegion - #25

Closed
kevmoo wants to merge 6 commits into
flutter:mainfrom
kevmoo:find-in-page-rfc
Closed

kevmoo wants to merge 6 commits into
flutter:mainfrom
kevmoo:find-in-page-rfc

Conversation

@kevmoo

@kevmoo kevmoo commented Sep 23, 2026 •

Copy link
Copy Markdown

Proposes an orthogonal, framework-level Find-in-Page (Cmd+F / Ctrl+F) subsystem led by FindInPageScope and FindInPageController (DefaultSelectionStyle search highlight colors, RenderParagraph highlight painting, and RenderViewport Scanner Mode), supporting standalone Find-Only mode and Selection + Find mode across Web (CanvasKit/Skwasm), Desktop, and Mobile.

Tracking issue: flutter/flutter#65504

Pre-launch Checklist

  • I read RFC 000.0001: Taxonomy and followed the file and path naming and metadata standards.
  • I read RFC 000.0002: Process and confirmed this proposal meets the threshold for a full RFC.
  • I read and agree to the Code of Conduct.
  • I signed the CLA.
  • I have linked an issue from flutter/flutter with the label design doc.
  • All existing and new tests are passing.
  • I have enabled "Allow edits from maintainers" on this PR so the bot can automatically assign an RFC number (or I will run dart run bin/assign_rfc_number.dart locally when instructed).

Comment thread rfc/170.0000-find-in-page.md Outdated
@kevmoo
kevmoo requested a review from jtmcdole October 8, 2026 21:03

@jtmcdole jtmcdole left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You should seek primarily the Framework TL and also involve the Engine TL.

Comment thread rfc/170.0000-find-in-page.md Outdated
Comment thread rfc/170.0000-find-in-page.md Outdated
Comment thread rfc/170.0000-find-in-page.md Outdated
Comment thread rfc/170.0000-find-in-page.md Outdated
Comment thread rfc/170.0000-find-in-page.md Outdated
Comment thread rfc/170.0000-find-in-page.md Outdated
Comment thread rfc/170.0000-find-in-page.md Outdated
Comment thread rfc/170.0000-find-in-page.md Outdated
Comment thread rfc/170.0000-find-in-page.md Outdated
…ndInPageScope API

- Lead public API with FindInPageScope + FindInPageController (SelectionRegistrar Phase 1 internal plumbing; TextPluginScope Phase 2 internal substrate swap).
- Frame widgets/ as headless-first (findBarBuilder) with localized SelectableRegionFindBar fallback.
- Add measured 500-Text build/layout/RenderObject microbenchmark table and verified Web KeyboardBinding capture-phase mechanics.
- Condense D1-D18 table down to the 8 core architectural invariants.
@kevmoo kevmoo changed the title RFC 170.0000: Pluggable App-Level Find-in-Page (Cmd+F / Ctrl+F) on SelectableRegion & SelectionArea RFC 170.0000: Pluggable App-Level Find-in-Page (Cmd+F / Ctrl+F) via FindInPageScope & SelectableRegion Oct 8, 2026
@kevmoo
kevmoo marked this pull request as ready for review October 8, 2026 22:45
- Clarify developer-configurable and system/theme-adaptive highlight
  colors via DefaultSelectionStyle across light, dark, and high-contrast
  themes.
- Explain why separate Text widgets act as structural block boundaries
  rather than inline TextSpan runs.
- Cite Google Workspace (Docs, Sheets, Slides) as canvas-rendered
  Find-in-Page precedent.
- Clarify that Phase 1 requires zero engine/ or web_ui changes.
- Remove links and @-mentions from section headers and apply a full
  write-prose editorial pass.
@kevmoo

kevmoo commented Oct 9, 2026

Copy link
Copy Markdown
Author

Addressed all inline comments in ad371bf and 4f3b80e (and clarified in § 3.2 that Phase 1 requires zero engine/ or web_ui changes).

@kevmoo
kevmoo requested a review from jtmcdole October 9, 2026 04:37
@kevmoo

kevmoo commented Oct 9, 2026

Copy link
Copy Markdown
Author

I'm going to hand this off to @hannah-hyj !

@kevmoo
kevmoo marked this pull request as draft October 9, 2026 21:20
@jtmcdole

jtmcdole commented Oct 9, 2026

Copy link
Copy Markdown
Member

I'm going to hand this off to @hannah-hyj !

Make sure she gets second-author :)

@hannah-hyj

Copy link
Copy Markdown
Member

I'm actually gonna close this one. We are taking a different architectural route and introducing a Composable Text Plugins architecture (TextPluginScope) instead of overloading SelectionRegion with search-specific logic.
The text plugin approach will allow RenderParagraph and RenderEditable to directly expose a generic painting and geometry pipeline, and add plugins like Search, Linkify, and Spellcheck which can non-destructively inspect and highlight text across any subtree without mutating widgets or conflicting with native user text selection.

@hannah-hyj hannah-hyj closed this Oct 9, 2026
@jtmcdole

jtmcdole commented Oct 9, 2026

Copy link
Copy Markdown
Member

Thanks for the prototype, @kevmoo ! I hope we get something similar and functional in the framework!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants