<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Apr 4, 2017 at 4:56 PM, Kris Maglione <span dir="ltr"><<a href="mailto:kmaglione@mozilla.com" target="_blank">kmaglione@mozilla.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Mon, Apr 03, 2017 at 11:45:22AM -0400, Ehsan Akhgari wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Has there been any performance testing on Firefox with the screenshots extension installed? <br>
</blockquote>
<br></span>
There's a known startup performance regression when any WebExtension is installed, since we don't load most of the WebExtension modules until they're needed. This is less of an issue now that bugs 1350522 and 1344590 are fixed, and will be less still once bug 1317697 is fixed and extensions are loaded out of process by default.<br>
<br>
It's probably worth noting that this isn't a per-extension regression. We pay the price for the first extension that we load. The subsequent ones we basically get for free. So once OOP extensions are enabled by default, we actually run less risk of startup perf or UI jank regressions for features implemented as extensions than we would otherwise.<span class=""><br></span></blockquote><div><br></div><div>This does mean that the first extension that gets shipped to all users by default like this will cause this regression to happen, right?<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
WebExtension add-ons do not yet run in their own dedicated process, so I expect that the majority of the code for this add-on will run in the parent process, where performance issues can cause UI jank.<br>
</blockquote>
<br></span>
The majority of the code should run in a content script, which would usually run in the content process if e10s is enabled. The code that runs in the parent process is mostly pretty trivial.<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
- Does the extension need to do I/O? How does it achieve that? If it<span class=""><br>
uses sqlite, has there been an analysis on the sqlite query performance?<br>
If it uses other types of storage, has there been analysis on the<br>
performance of other such mechanisms?<br>
</span></blockquote>
<br>
Note: I'm currently pushing for the extension to switch its storage backend to IndexedDB, for the sake of transactions, which is backed by SQLite. But its storage usage is minimal, and primarily just for credential storage.<br>
</blockquote></div><br></div><div class="gmail_extra">Yeah, after looking at the extension code, it doesn't look like there is anything to worry about storage wise.<br clear="all"></div><div class="gmail_extra"><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">Ehsan<br></div></div>
</div></div>