Replace nsLayoutUtils::GetCrossDocParentFrame in nsIFrame::GetScreenRectInAppUnits with nsLayoutUtils::GetCrossDocParentFrameInProcess
Categories
(Core :: Layout, task)
Tracking
()
Tracking | Status | |
---|---|---|
firefox93 | --- | fixed |
People
(Reporter: hiro, Assigned: hiro)
References
Details
Attachments
(1 file)
(deleted),
text/x-phabricator-request
|
Details |
here.
The function ends up calling nsIWidget::WidgetToScreenOffset(), so from the perspective of auditing GetCrossDocParentFrame calls it should be okay to replace it with the in-process version, GetCrossDocParentFrameInProcess.
That said, it doesn't look to me that this GetScreenRectInAppUnits work on situation where desktop zoom is applied. For example, this GetSize()
call needs to be scaled by the zoom value, I believe. I will see whether the function works with desktop zooming and if it didn't work I will open a new bug for the issue.
Assignee | ||
Comment 1•3 years ago
|
||
Comment 2•3 years ago
|
||
(In reply to Hiroyuki Ikezoe (:hiro) from comment #0)
The function ends up calling nsIWidget::WidgetToScreenOffset(), so from the perspective of auditing GetCrossDocParentFrame calls it should be okay to replace it with the in-process version, GetCrossDocParentFrameInProcess.
WidgetToScreenOffset for a puppet widget looks like it calls WidgetToTopLevelWidgetTransform. That seems wrong? But I guess not directly this bug.
Assignee | ||
Comment 3•3 years ago
|
||
(In reply to Timothy Nikkel (:tnikkel) from comment #2)
(In reply to Hiroyuki Ikezoe (:hiro) from comment #0)
The function ends up calling nsIWidget::WidgetToScreenOffset(), so from the perspective of auditing GetCrossDocParentFrame calls it should be okay to replace it with the in-process version, GetCrossDocParentFrameInProcess.
WidgetToScreenOffset for a puppet widget looks like it calls WidgetToTopLevelWidgetTransform. That seems wrong? But I guess not directly this bug.
Yes, that's wrong. The part will result wrong (x, y) values in the case where the given iframe is not the root frame. The new bug I am going to file will cover both the wrong(x, y) value case and the wrong size value case. I am writing a mochitest to demonstrate the issue.
Assignee | ||
Comment 4•3 years ago
|
||
Well, the mochitest may be slightly a different case, not sure at this moment, the test hasn't work as expected yet. :)
Assignee | ||
Updated•3 years ago
|
Comment 6•3 years ago
|
||
bugherder |
Description
•