From 334b2efde436e09347ae6dfeee6909efcf5da4e2 Mon Sep 17 00:00:00 2001 From: Matthew Tylee Atkinson Date: Mon, 25 Mar 2019 17:56:41 +0000 Subject: [PATCH] perf: Perform the first scan for landmarks quicker Closes #306 --- src/code/_content.js | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/code/_content.js b/src/code/_content.js index eb840a10..77a4c7a9 100644 --- a/src/code/_content.js +++ b/src/code/_content.js @@ -189,7 +189,7 @@ function shouldRefreshLandmarkss(mutations) { return false } -function setUpMutationObserver() { +function createMutationObserver() { observer = new MutationObserver(function(mutations) { msr.incrementTotalMutations() @@ -214,8 +214,6 @@ function setUpMutationObserver() { msr.sendMutationUpdate() }) - - observeMutationObserver() } function observeMutationObserver() { @@ -229,6 +227,12 @@ function observeMutationObserver() { }) } +function observeMutationObserverAndFindLandmarks() { + observeMutationObserver() + findLandmarksAndUpdateExtension() + msr.sendMutationUpdate() +} + function reflectPageVisibility() { if (document.hidden) { if (observerReconnectionTimer) { @@ -238,9 +242,7 @@ function reflectPageVisibility() { observer.disconnect() } else { observerReconnectionTimer = setTimeout(function() { - observeMutationObserver() - findLandmarksAndUpdateExtension() - msr.sendMutationUpdate() + observeMutationObserverAndFindLandmarks() observerReconnectionTimer = null }, observerReconnectionGrace) } @@ -260,8 +262,8 @@ function bootstrap() { // At the start, the ElementFocuser is always managing borders browser.runtime.sendMessage({ name: 'toggle-state-is', data: 'selected' }) - setUpMutationObserver() - reflectPageVisibility() + createMutationObserver() + observeMutationObserverAndFindLandmarks() document.addEventListener('visibilitychange', reflectPageVisibility, false) browser.runtime.sendMessage({ name: 'get-devtools-state' }) }