Open Bug 1459770 Opened 7 years ago Updated 2 years ago

prototype & benchmark pure runtime ES module loading for New Tab

Categories

(Firefox :: Messaging System, task, P3)

task

Tracking

()

REOPENED
Tracking Status
firefox61 --- wontfix
firefox62 --- affected

People

(Reporter: dmosedale, Unassigned)

References

(Blocks 1 open bug)

Details

No description provided.
Summary: cleanup/land build AS bundle using webpack → cleanup/land bundling AS in mc using webpack
Priority: -- → P3
Component: Activity Streams: Newtab → Messaging System
Blocks: 1583310
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Summary: cleanup/land bundling AS in mc using webpack → prototype & benchmark pure runtime ES module
Type: enhancement → task
Component: Messaging System → New Tab Page
Summary: prototype & benchmark pure runtime ES module → prototype & benchmark pure runtime ES module loading for New Tab
Status: RESOLVED → REOPENED
Component: New Tab Page → Messaging System
Resolution: FIXED → ---
No longer blocks: as-build-meta
Blocks: 1588861
No longer blocks: 1588861
Depends on: 1588861
Depends on: 1602931
No longer depends on: 1588861

NI @dmosedale if the task is still valid thanks

Flags: needinfo?(dmosedale)

@Punam -- this is still valid.

Right now, our in-content web-pages are all bundled with webpack. The idea here is that once omnijar caching for local content ES modules is sufficiently good, it's conceivable (though not clear how likely) that we could simply stop bundling entirely (or partly) and load the es modules we use directly (possibly some of them lazily), and performance could be good enough.

It's not particularly clear that this is likely, so I suspect the first steps here would be to:

  • figure out approximately what this would look like (eg how many files, particularly at startup time)
  • do a very simple, very-time-boxed prototype
  • if we hit the time-box, find the right person in the JS team or elsewhere to give us a sense of whether this is worth prototyping further.

Adding a few folks to the CC (Hi, Mark & Gijs) who might have some sense of this off the top of their heads.

Flags: needinfo?(dmosedale)

The motivations here are that if the perf is good enough:

  • we could stop checking in bundle artifacts
  • we'd never have to vendor in a bundler in the future
  • things would be a bit easier for regular fx to get up to speed on and everyone to hack on

(In reply to Dan Mosedale (:dmosedale, :dmose) from comment #2)

Adding a few folks to the CC (Hi, Mark & Gijs) who might have some sense of this off the top of their heads.

Loading/compiling individual modules is still likely to have a performance impact vs them all being combined. That said, it might be possible to adjust the existing caching system to provide some kind of caching there, but getting ideas for that would need someone to talk to the JS team.

Depends on: 1780074
No longer depends on: 1780074

Between all the caching done by the about home startup cache and the tab preload system, it just seems really unlikely that the few-ms-at-most overhead of loading modules on the very first run is likely to feature heavily in real user perceived performance. If it does, I'd be more interested in having an installer task that pre-caches into the about home startup cache than in continuing to have preprocessed files checked in in addition to the "real" source code. Though then again, it seems we haven't shipped the cache - bug 1614351.

Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.