[HN Gopher] Things I wish I knew before making a paid extension ...
       ___________________________________________________________________
        
       Things I wish I knew before making a paid extension (2019)
        
       Author : luu
       Score  : 32 points
       Date   : 2020-05-22 07:48 UTC (15 hours ago)
        
 (HTM) web link (www.amie-chen.com)
 (TXT) w3m dump (www.amie-chen.com)
        
       | mastermojo wrote:
       | YC W19 Sapling here. We have a freemium browser extension that
       | acts as a grammar checker. Couple thoughts below:
       | 
       | 1. Source code. You are allowed to minify source code. Chrome
       | actually recommends minifying source to improve performance. If
       | you require certain permissions you'll have to submit un-minified
       | source for security review.
       | 
       | 2. Cloud/subscription based models are the way to go if piracy is
       | an issue, but it doesn't make sense for all products. Licensing
       | hasn't been an issue for Sapling fortunately because the "brains"
       | of our app are in the cloud. I know hacker news is very privacy
       | conscious but our language models are too large to run on a
       | user's end machine right now. Spier Pro seems like a useful web-
       | scraping helper. People who can pirate a chrome extension
       | probably can probably run xpath scripts or a free xpath testing
       | extension themselves so if I were Amy I wouldn't worry _too_ much
       | about piracy.
       | 
       | 3. Forked Code. There should be no reason to do it. Firefox and
       | Edge have done a lot of work to support most of the chrome apis.
       | You can handle minor edge cases build time with a variable
       | toggle. Keep the same manifest, even. Browsers are good about
       | ignoring keywords in the manifest they don't recognize. My
       | recommendation is to pretend they are the same platform until you
       | find bugs/issues and hard code around them. Theres a handful but
       | it's very manageable.
       | 
       | [0] https://blog.chromium.org/2018/10/trustworthy-chrome-
       | extensi...
       | 
       | [1] https://stackoverflow.com/questions/37649620/does-chrome-
       | mar...
       | 
       | [2] https://developer.mozilla.org/en-US/docs/Mozilla/Add-
       | ons/Web...
        
         | AlexITC wrote:
         | > 3. Forked Code. There should be no reason to do it
         | 
         | The actual problem is that some APIs are different, for
         | example, in Chrome the notifications has a richer set of
         | options but you need to be careful to not use the ones not
         | supported by Firefox.
         | 
         | > Keep the same manifest
         | 
         | Actually, it depends on which options you use, for example,
         | i18n placeholders aren't supported in Firefox while they are in
         | Chrome, in Edge, the manifest is drastically different.
        
         | diob wrote:
         | I've had some extensions that were approved, had no changes,
         | then suddenly disapproved because someone on the chrome team
         | decided to re-review it and didn't understand webpack /
         | minification.
         | 
         | I've been so busy I haven't bothered to go try and "fix" the
         | extensions. These are OSS extensions, nothing paid, so I all
         | the code is available for the reviewer to read by the way.
        
           | mastermojo wrote:
           | Yea, I've seen some some stories around Chrome review
           | problems, most recently around pushbullet. I think it the
           | review outcome depends a little bit on a mixture of reviewer
           | and the permissions required. The more permissions an
           | extension asks for the longer the review process, and
           | unfortunately some false positive flags do happen now and
           | then.
        
       | weaksauce wrote:
       | Browser vs chrome point is moot. Both namespaces exists in
       | Firefox and there's a polyfill to bring the browser namespace
       | into chrome if you want to use promises over function callbacks.
       | https://github.com/mozilla/webextension-polyfill
        
         | AlexITC wrote:
         | As you said, the namespace is not a problem but some APIs
         | definitely are, for example, in Chrome the notifications has a
         | richer set of options but you need to be careful to not use the
         | ones not supported by Firefox.
        
       | quwert95 wrote:
       | These are great points. I'd like to add some more to them:
       | 
       | On minified source code, Extensions/Add-Ons are allowed to be
       | deployed with minified source code as long as you provide the
       | unminified versions to Google/Mozilla during review time.
       | 
       | On chrome vs. browser namespaces, a quick 'let chrome = browser;'
       | can help you keep the diffs small between versions. I have yet to
       | find a complete solution to fixing 'forked code' between
       | Google/Mozilla Extensions/Add-Ons.
       | 
       | Also, storage mechanisms between browsers using the same
       | extension code can be completely different. Beware if you're
       | using caches, navigator.storage, and storage.local.
       | 
       | Finally, extensions don't consider themselves secure, depending
       | on the browser. moz-extension:// is not considered secure for
       | cache access, whereas chrome-extension:// is.
       | 
       | There lots of little 'gotchas' like these when developing browser
       | extensions. :)
        
         | VWWHFSfQ wrote:
         | > as long as you provide the unminified versions to
         | Google/Mozilla during review time.
         | 
         | I'm curious how they could know that the source code is the
         | same
        
           | weaksauce wrote:
           | They ask for the minification command that was used as well I
           | believe.
        
           | AlexITC wrote:
           | Firefox asks you to provide the source and the instructions
           | to get the same build you are submitting to the store.
        
         | [deleted]
        
         | AlexITC wrote:
         | > as long as you provide the unminified versions to
         | Google/Mozilla during review time.
         | 
         | I have been publishing extensions for a while and never found
         | Google asking me for the source code, is there any hidden
         | option to submit it?
         | 
         | Another detail I have missed is release notes, Firefox is
         | supposed to provide those but I have never been able to add
         | them, Chrome doesn't seem to display them but I have got my
         | submission rejected just after "improving" the description.
         | 
         | > On chrome vs. browser namespaces, a quick 'let chrome =
         | browser;' can help you keep the diffs small between versions. I
         | have yet to find a complete solution to fixing 'forked code'
         | between Google/Mozilla Extensions/Add-Ons.
         | 
         | Firefox actually supports the chrome namespace but you need to
         | be careful as some other APIs are different, for example, in
         | Chrome the notifications has a richer set of options but you
         | need to be careful to not use the ones not supported by
         | Firefox.
        
       ___________________________________________________________________
       (page generated 2020-05-22 23:00 UTC)