Looks like Chrome might be slightly more generous on the deprecation timeline: https://developer.chrome.com/docs/extensions/mv3/mv2-sunset/ But, that needn't change the steps proposed here.
>From a user/use-case perspective, would it be better to think about what browser is supported from master? Rather than feature? We are confident that are always supporting X Browser, which can be better publicized, and made clear [ ex: it seems feasible if maintaining different implementations, whatever is not on master might fall behind ]. Also, IIRC, ASF releases are about the artifact being produced/tested/released. Is the plan to release versions from the proposed multiple supported branches? Or only release the chrome version from master? On Sun, Nov 6, 2022 at 2:26 PM Joshua Poore <poor...@me.com.invalid> wrote: > Hi All— > > Update: > > My team here at UMD has been working on the plugin a bit. > > Completely agree with @Rob Foley. > > Issues are as follows: > > 1. Chrome is deprecating MV2 in Jan. We have a nice MV3 version of the > Chrome plugin that builds off the example I committed some time ago. > > 2. FF is following suite with Chrome, but not likely on the same timeline. > Notably, they claim that they *will* support background service workers, > but not yet. Currently, their MV3 build utilizes “background scripts”. > While we do have a working MV3 build for FF, it is not compatible with > Chrome, and won’t be until they roll out support for background service > workers. > > 3. We’ve not yet tested on Edge. > > I think the near term decision is really which browser build we want to > keep on Master. At this point, I see it as a forced choice between Chrome > and FF. Certainly we can keep an otherwise level branch that supports the > other. > > Given that FF eventually will move to Background scripts, I propose: > > 1. Add support for MV3 for Chrome on Master > 2. Keep a branch that supports MV2 (for near term FF support—they are > keeping support for MV2 for the near term) > 3. Add support for MV3 for FF (and Edge) when FF adds support for > Background Service Workers. > > Thoughts? > > J > > > On Sep 2, 2022, at 1:38 PM, Rob Foley <r...@apache.org> wrote: > > > > I don't recall enough about our initial browser compatibility list, but, > if we haven't yet already deprecated IE support, this will do it. For the > sake of correctness, |fetch| isn't a protocol, it is just a browser API. > Both the |fetch| and |XMLHttpRequest| APIs will make essentially the same > |POST| requests. > > > > Here is the browser compatibility list for |fetch|, the picture for the > |Service Workers| is similar: > > https://caniuse.com/fetch > > > > On the subject of compatibility, keep in mind that the switch to > Manifest V3 will also mean immediate loss of compatibility with the earlier > versions of Chrome/Firefox/Edge, since the change isn't backwards > compatible. With that in mind, it may be wise for us to > temporarily/permanently keep an older Manifest V2 version published. > > > > Regards, > > Rob > > > > On 8/29/2022 9:49 PM, Austin Bennett wrote: > >> Great to be updating to keep compatibility. A web-based tool without > >> chrome and Firefox compatibility seems ... not desirable. > >> > >> I haven't used that part of the tooling. Naturally, if you think > valuable, > >> then it seems worth the effort. Not into the specifics enough to have a > >> worthwhile opinion on implementation. > >> > >> Since this is designed to continue functionality, i would expecr changes > >> needed to support to be not especially contentious even if involved > >> significant modification. > >> > >> It sounds like this can be done without breaking things for our users, > if > >> that's the case then not concerned about version numbering. > >> > >> > >> > >> On Mon, Aug 29, 2022, 6:28 PM Joshua Poore<poor...@apache.org> wrote: > >> > >>> All, > >>> > >>> Looking for comments on this: > >>> > >>> I think there are only few end users that actually use our Web > Extension, > >>> however, it’s a pretty valuable tool in user testing uninstrumented > >>> applications. > >>> > >>> Presently, our WebExtension (on Master) is Manifest v2. However, as you > >>> may be aware Chrome is moving to Manifest v3 (MV3). MV2 will be > unsupported > >>> by chrome following Dec 2022. > >>> > >>> https://developer.chrome.com/docs/extensions/mv3/intro/mv3-migration/ > < https://developer.chrome.com/docs/extensions/mv3/intro/mv3-migration/> > >>> > >>> Mozilla/FireFox is following suite, but slowly. > >>> > >>> > >>> > https://extensionworkshop.com/documentation/develop/manifest-v3-migration-guide/ > >>> < > >>> > https://extensionworkshop.com/documentation/develop/manifest-v3-migration-guide/ > >>> There are some major breaking changes in MV3 that require a bit of > >>> re-engineering in our code base to address. Specially, the big breaking > >>> change is that Background Pages (as scripts) are not supported. > Instead, > >>> MV3 moves to a more secure Service Worker model. Service workers will > not > >>> support XMLHttpRequest as a POST protocol—they’ll only support Fetch. > >>> > >>> Fetch isn’t a protocol UserALE.js supports and given that UserALE.js is > >>> built directly into the WebExtension, to fix the later we have to mod > the > >>> former. > >>> > >>> Proposal: > >>> > >>> 1. Add Fetch protocol to SendLogs as alternative POST method > >>> 2. Add `options` setting allowing users to specify which method is used > >>> (`fetch`, `XMLhttpResquest`), default is XMLHttpRequest. > >>> 3. Configure plugin to specify `fetch` as method in globals > >>> > >>> I built a WIP of this approach, and find that the MV3 spec of the > >>> WebExtension deploys and generates logs without error in Chrome. I’ve > >>> pushed it to a dev branch that can be found here: > >>> > >>> https://github.com/apache/incubator-flagon-useralejs/tree/MV3-update > < https://github.com/apache/incubator-flagon-useralejs/tree/MV3-update> > >>> > >>> Note that FireFox has not fully implemented MV3. I have tested on > Firefox, > >>> but testing has failed. Still a few more params to set in Firefox. > >>> Expecting that we should push solution to Master (and release) late in > Q4 > >>> 2022. > >>> > >>> Eager to hear comments, > >>> > >>> Josh > >>> > >>> > >