Closed Bug 1360736 Opened 7 years ago Closed 7 years ago

Look for ways to speed up the sync PContent LoadPlugin message

Categories

(Core Graveyard :: Plug-ins, enhancement)

enhancement
Not set
normal

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: qdot, Assigned: qdot)

References

(Blocks 1 open bug)

Details

According to Bug 1337058, making the LoadPlugin message async is very difficult due to webcompat issues. However, there are points at which it may take > 8s to run, blocking processes while it does. We should see if we can isolate those cases and figure out ways to optimize.
(In reply to Kyle Machulis [:qdot] [:kmachulis] from comment #0)
> According to Bug 1337058, making the LoadPlugin message async is very
> difficult due to webcompat issues.

For more information on that odyssey, take a look at:

bug 998863
bug 1116806
http://dblohm7.ca/blog/2014/06/17/asynchronous-plugin-initialization-an-introduction/
https://people.mozilla.com/~aklotz/asyncinit/
http://dblohm7.ca/blog/2017/04/07/asynchronous-plugin-initialization-requiem/
Ok, after reading those blog posts/slides, it sounds like this area has been mined pretty deeply already. :bsmedberg, is there anywhere else to look at this that didn't already happen, or should I just close this out and we'll wait for NPAPI death?
Flags: needinfo?(benjamin)
Flags: needinfo?(benjamin)
Summary: Look for ways to speed up the sync PContent LoadPlugins message → Look for ways to speed up the sync PContent LoadPlugin message
I don't think we can get rid of the sync message completely, but we could try asynchronously pre-connecting Flash to content processes. We'd have to figure out exactly how to do that. Here are the complications:

* my understanding of this call is that it only happens ~once per content process per plugin, but if that's not true we shouldn't definitly make it so: there's no need to do this more than once.
** Exception: if Flash is upgraded during the session, we'd be calling this per plugin version.
* it would be nice not to launch the Flash process for users who typically don't need it. That will be a lot more common when we make Flash ask-to-activate by default in 55
* but for users who are going to need it, launching the Flash process asynchronously at Firefox startup and eagerly hooking it up to the content process would avoid this sync call and could be a nice win
Note that now we have telemetry on the cost of the receiving side of the sync IPC messages (thanks to bug 1365719) so one thing that would be helpful to check is how much the telemetry for the receiving side of this corresponds to the one for the sending side, to get a rough sense whether most of the cost is in processing the sync messages or in the overhead of delivering it and waiting for the target thread to become free etc.
Should we close this as WONTFIX?
Flags: needinfo?(kyle)
Yeah, marking WONTFIX. Assuming it bubbles to the top of the sync list somehow, we can maybe take a look at the ideas mentioned in Comment 3, but I'm not sure we want to make the complexity/optimization tradeoff here quite yet.
Status: NEW → RESOLVED
Closed: 7 years ago
Flags: needinfo?(kyle)
Resolution: --- → WONTFIX
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.