Repository navigation
Feat: Carry ConvertPointToScreen in a row and trace Chromium's own bubble anchor - #175
Merged
Merged
Conversation
…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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Step one of the bubble anchor redesign: read only.
screen_origin: [address, prologue]forviews::View::ConvertPointToScreen(const View*, gfx::Point*)(static, the in-place overload, public name prefix?ConvertPointToScreen@View@views@@SAX).chrome-builds portfinds 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 likepage_toolsandbubble_anchor. No single readable place: the part is left out (left_outin report.json), the row is not stopped.Build.screen_origin;chromium::screenchecks the bytes once at attach and only then calls the function. In theGetAnchorRecthook it converts (0,0) of the window's frame view and adds Rivet's client DIP rects, tracingbubble anchor: chromium origin ... same <bool> off <DIPs>beside today's MonitorFromWindow derivation.choosestill uses today's rects.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 innfr6_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