rubenspgcavalcante/webpack-chrome-extension-reloader

Fast reloading: Look for version at least 73.0.3637.0 and lower the debouncing rate

rubenspgcavalcante opened this issue · 7 comments

When the extension reloads itself too often, chrome blocks it and you need manually reload the extension:
https://stackoverflow.com/questions/29086691/chrome-this-extension-loaded-itself-too-frequently

Please, if anyone is being annoyed for this Chrome/Chromium limitation, go into the above Chromium issue and give it a star ⭐️, so the Chromium team can prioritize this.

The latest comment on that Chromium issue is interesting:

From drewio/crx-hotreload@1d8b176 it looks like chrome.developerPrivate.reload might not have this limitation: https://developer.chrome.com/apps/developerPrivate#method-reload

Coming from someone totally unfamiliar with how this plugin works - would this be a viable fix?

Just saw the thread in my email. Yes for sure, this might work!
I'll test and make a patch for this 👍

chrome.developerPrivate API is only available for Chrome internals. It cannot be used / called from the outside. https://groups.google.com/a/chromium.org/d/msg/chromium-apps/VYWZHlyIgtE/RTH8YUcizXYJ

Edit: It seems that there is one way to use the API, by impersonating the extension ID of a whitelisted Chrome Extension https://groups.google.com/a/chromium.org/d/msg/chromium-apps/VYWZHlyIgtE/UfwhDK-CBAcJ

Update: So the time to reload change was merged 👏
https://chromium-review.googlesource.com/c/chromium/src/+/1340272

Although, on the time I'm writing this, the fix still not on Chrome stable (normally takes 10 weeks to hit it)
https://storage.googleapis.com/chromium-find-releases-static/d3b.html#d3b25e1380984b2f1f23d0e8dc1a337743c6caaf

But is on Chromium Canary. I got a revision:
9d0933dc5d1650065a33c41a6cece28f480dfd01-refs/heads/master@{#617059}
which is bigger than then merge revision:
refs/heads/master@{#615236}

I just need to find a way to correlate the revision number with the version, check if is a fixed Chrome/Chromium, and low down both the debouncing time and the number of reloading to proper take advantage of it.

Ok people, while the new rules are currently only on Chromium builds, and as I had to make some modifications on the architecture to setup the debouncer and the fast reload blocker dynamically (before was statically defined), I'll release a beta version of the plugin. I would ask you to try out on the Chromium and see if is properly working (remember to verify the browser version)
To install the beta:

yarn install webpack-chrome-reloader-extension@beta

When the feature arrives and if everything is ok, I will include it on the release