Browse Source

ping bg page in Safari

Gildas 3 years ago
parent
commit
59439462d2
2 changed files with 8 additions and 1 deletions
  1. 3 0
      src/core/bg/editor.js
  2. 5 1
      src/ui/bg/ui-editor.js

+ 3 - 0
src/core/bg/editor.js

@@ -106,4 +106,7 @@ async function onMessage(message, sender) {
 		}
 		return {};
 	}
+	if (message.method.endsWith(".ping")) {
+		return {};
+	}
 }

+ 5 - 1
src/ui/bg/ui-editor.js

@@ -21,12 +21,13 @@
  *   Source.
  */
 
-/* global browser, document, matchMedia, addEventListener, navigator */
+/* global browser, document, matchMedia, addEventListener, navigator, setInterval */
 
 import * as download from "../../core/common/download.js";
 import { onError } from "./../common/content-error.js";
 
 const FOREGROUND_SAVE = /Safari/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent);
+const PING_BG_PAGE = /Safari/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent);
 
 const editorElement = document.querySelector(".editor");
 const toolbarElement = document.querySelector(".toolbar");
@@ -333,6 +334,9 @@ browser.runtime.onMessage.addListener(message => {
 			tabDataContents = [];
 			editorElement.contentWindow.postMessage(JSON.stringify({ method: "init", content: tabData.content }), "*");
 			editorElement.contentWindow.focus();
+			if (PING_BG_PAGE) {
+				setInterval(() => browser.runtime.sendMessage({ method: "editor.ping" }), 15000);
+			}
 			delete tabData.content;
 		}
 		return Promise.resolve({});