DescriptionFix Frame::isMainFrame() to be compatible with provisional frames
In OOPI, there can be provisional local frames. These frames are only
partially linked into the frame tree. A provisional child frame has a
parent set, but it does not appear in its parent's list of children.
Similarly, a provisional main frame has a null parent set, but is never
set as the main frame of a Page.
Frame::isMainFrame() originally checked if Page::mainFrame() == this to
determine if the frame is a main frame. However, code in navigation
asserts that if Frame::isMainFrame() is false, the frame has a parent,
which fails for provisional local main frames. They have no parent
frame, but they are not yet set as the main frame of the Page: they only
become the Page's main frame if the load commits.
Since the parent is properly set for provisional local frames, change
Frame::isMainFrame() to use that to determine main frame status.
BUG=357747
Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=195211
Patch Set 1 #Patch Set 2 : Update stuff #
Messages
Total messages: 8 (3 generated)
|