The latest roadblock I encountered with Manifest V3. A monthly retro from an indie extension dev.


Howdy fellow extension makers, I'm an indie dev and recently started to share my monthly progress of the voyage. It's tough but fun at the same time.

I'm sharing my retro blog article, but wanted to put focus on a particular issue I encountered recently.

This is related to manifest v3 for Chrome. Long story short, service workers in the background break. Why? Well, that's the interesting part, it's not entirely clear but the culprit seems to be iFrames injected into a webpage. Silly right?

Well after a long weekend of attempting to identify the problem, I was able to come up with an example project that does these simple things.

  1. extension with chrome.commands shortcut to inject an iFrame
  2. a plain Javascript content script that adds an iFrame to the body
  3. iFrame only includes a console.log statement
  4. a script to bump version patch and rebuild
  5. drag and drop to test update lifecycle and service worker breaks 💥

Yeh, just these simple steps. Kind of annoying if you ask me.

Well, it's been 10 days since I've reported the bug, not much I can do really. I can't ship my extension with manifest v3 as it'll break for users the second I upgrade my users.

So what's next for me? I see no way other than to migrate to manifest v2. This means having to refactor my background script to support it, such a shame. All this time my goal with manifest v3 was to get ahead of the curve.

Here's the bug report for anyone interested: https://bugs.chromium.org/p/chromium/issues/detail?id=1242225#c1

My hope is to spread the word of this peculiar issue and be wary of using manifest v3, until it's been vetted by Google

PS: I really hope this is my fault and I can fix it, but after studying the scenario I just don't see how.

  1. 2

    FWIW, I've been able to finally escalate it to the ServiceWorker dev Chromium team. I was able to get in contact with a developer advocate from Google in an extension Slack channel I'm in.

    Unfortunately, the process has been rather slow. There's a process where test engineers take a look at the bug and try to reproduce it. If they are unable to reproduce it or are encountering issues, it'll take 3 or so test engineers to finally make the escalation happen.

    I have my fingers crossed the issue could be addressed in a timely manner, but in the meantime, I don't want to hold my MVP product from being released. A great indie dev dilemma

    1. 1

      Hi Miguel, could you point me to the extension slack channel? Thanks.

      I too worry about broken service workers in MV3. (https://www.indiehackers.com/post/reverting-to-manifest-v2-5e81658297)

      I abandoned my MV3 efforts and went MV2, but the end of life looms next year and we'll all be force to go MV3. (https://www.indiehackers.com/post/important-chrome-web-store-deadline-is-only-3-months-away-bd8f5fb50f)

      It's going to be a rough ride the next two years...

      1. 1

        Howdy there

        Yeh, I hear you on all fronts with MV3 support. It's a shame that Chrome doesn't offer stability for MV3. I'm currently on MV2 and not looking back (at least for the time being).

        The slack channel is small and needs admin access. I'll connect with you on Twitter and we can go from there.

        FWIW (for others) it's a Slack community by the Toucan browser extension product. Many great extension devs in there

        1. 1

          oh no, seems I can't DM you. Just shoot me a DM over to https://twitter.com/howdy_miguel and I can send your info to the Slack admin

Trending on Indie Hackers
My SEO experience 27 comments How long did it take to build your MVP? 8 comments The best way to use Webflow (financially speaking) 4 comments No code website builder 3 comments My first year of making money on the internet 🤑 This is how it went... 2 comments Giveaway: free Gumroad landing page builder 2 comments