Forráskód Böngészése

use the document instead of the window to store requestedFrameId

Gildas 7 éve
szülő
commit
d52ef3ab6b
1 módosított fájl, 9 hozzáadás és 8 törlés
  1. 9 8
      lib/frame-tree/content/content-frame-tree.js

+ 9 - 8
lib/frame-tree/content/content-frame-tree.js

@@ -95,10 +95,10 @@ this.frameTree = this.frameTree || (() => {
 		if (!TOP_WINDOW) {
 			windowId = message.windowId;
 		}
-		processFrames(window, document.querySelectorAll(FRAMES_CSS_SELECTOR), message.options, windowId, sessionId);
+		processFrames(document, document.querySelectorAll(FRAMES_CSS_SELECTOR), message.options, windowId, sessionId);
 		if (!TOP_WINDOW) {
-			sendInitResponse({ framesData: [getFrameData(document, window, windowId, message.options)], sessionId, requestedFrameId: this.frameTree.requestedFrameId && windowId });
-			delete this.frameTree.requestedFrameId;
+			sendInitResponse({ framesData: [getFrameData(document, window, windowId, message.options)], sessionId, requestedFrameId: document.documentElement.dataset.requestedFrameId && windowId });
+			delete document.documentElement.dataset.requestedFrameId;
 		}
 	}
 
@@ -151,10 +151,10 @@ this.frameTree = this.frameTree || (() => {
 			}
 		}
 	}
-	function processFrames(window, frameElements, options, parentWindowId, sessionId) {
+	function processFrames(doc, frameElements, options, parentWindowId, sessionId) {
 		processFramesAsync(frameElements, options, parentWindowId, sessionId);
 		if (frameElements.length) {
-			processFramesSync(window, frameElements, options, parentWindowId, sessionId);
+			processFramesSync(doc, frameElements, options, parentWindowId, sessionId);
 		}
 	}
 
@@ -174,7 +174,7 @@ this.frameTree = this.frameTree || (() => {
 		sendInitResponse({ framesData, sessionId });
 	}
 
-	function processFramesSync(window, frameElements, options, parentWindowId, sessionId) {
+	function processFramesSync(doc, frameElements, options, parentWindowId, sessionId) {
 		const framesData = [];
 		frameElements.forEach((frameElement, frameIndex) => {
 			const windowId = parentWindowId + WINDOW_ID_SEPARATOR + frameIndex;
@@ -188,14 +188,15 @@ this.frameTree = this.frameTree || (() => {
 				try {
 					const frameWindow = frameElement.contentWindow;
 					frameWindow.stop();
-					processFrames(frameWindow, frameDoc.querySelectorAll(FRAMES_CSS_SELECTOR), options, windowId, sessionId);
+					processFrames(frameDoc, frameDoc.querySelectorAll(FRAMES_CSS_SELECTOR), options, windowId, sessionId);
 					framesData.push(getFrameData(frameDoc, frameWindow, windowId, options));
 				} catch (error) {
 					framesData.push({ windowId, processed: true });
 				}
 			}
 		});
-		sendInitResponse({ framesData, sessionId, requestedFrameId: window.frameTree.requestedFrameId && parentWindowId });
+		sendInitResponse({ framesData, sessionId, requestedFrameId: doc.documentElement.dataset.requestedFrameId && parentWindowId });
+		delete document.documentElement.dataset.requestedFrameId;
 	}
 
 	function cleanupFrames(frameElements, options, parentWindowId, sessionId) {