Skip to content

Feat: Carry ConvertPointToScreen in a row and trace Chromium's own bubble anchor - #175

Merged
b-re-w merged 2 commits into
developfrom
feat/screen-origin
Nov 9, 2026
Merged

b-re-w merged 2 commits into
developfrom
feat/screen-origin

Conversation

@b-re-w

@b-re-w b-re-w commented Nov 9, 2026

Copy link
Copy Markdown
Member

Step one of the bubble anchor redesign: read only.

  • Row part screen_origin: [address, prologue] for views::View::ConvertPointToScreen(const View*, gfx::Point*) (static, the in-place overload, public name prefix ?ConvertPointToScreen@View@views@@SAX). chrome-builds port finds it by name in the new build's public symbols when the prior row has none, with its first whole instructions (at least 12 bytes); a later port moves it like page_tools and bubble_anchor. No single readable place: the part is left out (left_out in report.json), the row is not stopped.
  • Runtime: Build.screen_origin; chromium::screen checks the bytes once at attach and only then calls the function. In the GetAnchorRect hook it converts (0,0) of the window's frame view and adds Rivet's client DIP rects, tracing bubble anchor: chromium origin ... same <bool> off <DIPs> beside today's MonitorFromWindow derivation. choose still uses today's rects.
  • Built-in rows, Whale and Samsung have no part and behave as before.
  • Tests: nfr3_screen_origin_is_found_by_its_public_name_in_the_new_build, fr12_rows_move_with_the_window_corner_chromium_reports, fr12_screen_origin_is_called_only_after_its_bytes_matched, and the row parse in nfr6_a_table_row_carries_the_page_tools_and_bubble_anchor_of_its_prior_row.

No local build or PDB download; CI is the only build. The switch to Chromium's place follows once a CI drive shows the trace.

🤖 Generated with Claude Code

b-re-w and others added 2 commits November 9, 2026 20:29
…bble anchor

The rows generator finds views::View::ConvertPointToScreen by its public name in the new build
and records its address with its first whole instructions as screen_origin, unless the prior row
already carried it. A build without a single place for the name goes without the part and is not
stopped. The runtime checks those bytes at attach and, in the GetAnchorRect hook, traces where
Chromium puts the address row and chip beside the monitor based place, with a same flag. Nothing
changes where a bubble opens yet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@b-re-w
b-re-w merged commit 85d41b8 into develop Nov 9, 2026
3 checks passed
@b-re-w
b-re-w deleted the feat/screen-origin branch November 9, 2026 11:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant