Skip to content

Commit dd6a009

Browse files
yulunzDevtools-frontend LUCI CQ
authored andcommitted
Update target manager getter in isPrimaryPageFrame().
Also added a general unit test case for the function. Bug:493046293 Change-Id: Iaad34d1b963d4beece476b8be8b3ca7a9977c372 Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/7744902 Reviewed-by: Simon Zünd <szuend@chromium.org> Commit-Queue: Simon Zünd <szuend@chromium.org>
1 parent 30b1c15 commit dd6a009

2 files changed

Lines changed: 14 additions & 1 deletion

File tree

front_end/core/sdk/ResourceTreeModel.test.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,18 @@ describeWithMockConnection('ResourceTreeModel', () => {
131131
assert.isFalse(getResourceTreeModel(subframeTarget).mainFrame!.isOutermostFrame());
132132
});
133133

134+
it('identifies primary frame', async () => {
135+
const tabTarget = createTarget({type: SDK.Target.Type.TAB});
136+
const mainFrameTarget = createTarget({parentTarget: tabTarget});
137+
const subframeTarget = createTarget({parentTarget: mainFrameTarget});
138+
139+
navigate(getMainFrame(mainFrameTarget));
140+
navigate(getMainFrame(subframeTarget), {parentId: MAIN_FRAME_ID, id: 'child' as Protocol.Page.FrameId});
141+
142+
assert.isTrue(getResourceTreeModel(mainFrameTarget).mainFrame!.isPrimaryFrame());
143+
assert.isFalse(getResourceTreeModel(subframeTarget).mainFrame!.isPrimaryFrame());
144+
});
145+
134146
it('emits PrimaryPageChanged event upon prerender activation', async () => {
135147
SDK.ChildTargetManager.ChildTargetManager.install();
136148
const tabTarget = createTarget({type: SDK.Target.Type.TAB});

front_end/core/sdk/ResourceTreeModel.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -858,7 +858,8 @@ export class ResourceTreeFrame {
858858
* https://chromium.googlesource.com/chromium/src/+/HEAD/docs/frame_trees.md
859859
*/
860860
isPrimaryFrame(): boolean {
861-
return !this.#sameTargetParentFrame && this.#model.target() === TargetManager.instance().primaryPageTarget();
861+
return !this.#sameTargetParentFrame &&
862+
this.#model.target() === this.#model.target().targetManager().primaryPageTarget();
862863
}
863864

864865
removeChildFrame(frame: ResourceTreeFrame, isSwap: boolean): void {

0 commit comments

Comments
 (0)