Просмотр исходного кода

added timeout when retrieving frame content

Gildas 7 лет назад
Родитель
Сommit
1bef565093
1 измененных файлов с 5 добавлено и 0 удалено
  1. 5 0
      lib/frame-tree/content/frame-tree.js

+ 5 - 0
lib/frame-tree/content/frame-tree.js

@@ -24,6 +24,7 @@ this.FrameTree = (() => {
 
 	const MESSAGE_PREFIX = "__FrameTree__";
 	const TIMEOUT_POST_MESSAGE = 1000;
+	const TIMEOUT_DATA_RESPONSE_MESSAGE = 1000;
 
 	const FrameTree = {
 		getFramesData
@@ -85,6 +86,9 @@ this.FrameTree = (() => {
 						windowId: frameData.windowId
 					});
 				}
+				frameData.getDataResponseTimeout = setTimeout(() => {
+					top.postMessage(MESSAGE_PREFIX + "::" + JSON.stringify({ getDataResponse: true, windowId: frameData.windowId }), "*");
+				}, TIMEOUT_DATA_RESPONSE_MESSAGE);
 			});
 		}));
 		return framesData.sort((frame1, frame2) => frame2.windowId.split(".").length - frame1.windowId.split(".").length);
@@ -179,6 +183,7 @@ this.FrameTree = (() => {
 		delete message.tabId;
 		delete message.method;
 		const frameData = framesData.find(frameData => frameData.windowId == message.windowId);
+		clearTimeout(frameData.getDataResponseTimeout);
 		frameData.content = message.content;
 		frameData.baseURI = message.baseURI;
 		frameData.title = message.title;