Ver Fonte

added support of frameData.requestedFrame

Gildas há 7 anos atrás
pai
commit
9286ba0d7e
1 ficheiros alterados com 12 adições e 3 exclusões
  1. 12 3
      lib/frame-tree/content/content-frame-tree.js

+ 12 - 3
lib/frame-tree/content/content-frame-tree.js

@@ -113,6 +113,9 @@ this.frameTree = this.frameTree || (() => {
 	function initResponse(message) {
 		const windowData = sessions.get(message.sessionId);
 		if (windowData) {
+			if (message.requestedFrameId) {
+				windowData.requestedFrameId = message.requestedFrameId;
+			}
 			message.framesData.forEach(messageFrameData => {
 				let frameData = windowData.frames.find(frameData => messageFrameData.windowId == frameData.windowId);
 				if (!frameData) {
@@ -137,13 +140,19 @@ this.frameTree = this.frameTree || (() => {
 			if (!remainingFrames) {
 				windowData.frames = windowData.frames.sort((frame1, frame2) => frame2.windowId.split(WINDOW_ID_SEPARATOR).length - frame1.windowId.split(WINDOW_ID_SEPARATOR).length);
 				if (windowData.resolve) {
+					if (windowData.requestedFrameId) {
+						windowData.frames.forEach(frameData => {
+							if (frameData.windowId == windowData.requestedFrameId) {
+								frameData.requestedFrame = true;
+							}
+						});
+					}
 					windowData.resolve(windowData.frames);
-					sessions.delete(message.sessionId);
 				}
+				sessions.delete(message.sessionId);
 			}
 		}
 	}
-
 	function processFrames(frameElements, options, parentWindowId, sessionId) {
 		processFramesAsync(frameElements, options, parentWindowId, sessionId);
 		if (frameElements.length) {
@@ -187,7 +196,7 @@ this.frameTree = this.frameTree || (() => {
 				}
 			}
 		});
-		sendInitResponse({ framesData, sessionId });
+		sendInitResponse({ framesData, sessionId, requestedFrameId: this.frameTree.requestedFrameId && parentWindowId });
 	}
 
 	function cleanupFrames(frameElements, options, parentWindowId, sessionId) {