Paco Lau
Mozilla · Fall 2025

Adaptive Performance Extension

Mozilla Firefox Adaptive Performance Extension
Scroll
01

My Role

Mozilla was developing a new product called Adaptive Performance — its main uses were to minimize energy consumption and personalize browser performance and power usage. However, the team was concerned the product itself wouldn’t align with Firefox’s branding or its users’ interests. Hence, the team created this guiding question: How might we design and implement an Adaptive Performance feature within Firefox’s web browser that promotes equitable and resource-conscious internet usage?

As one of six designers on this team, I led the competitive and internal audits that grounded our research, then helped carry that work forward through interviews, the survey, and synthesis. As the project moved from insight to interface, I partly led design exploration and backend/logic ideation, and handled the data analysis behind our runtime benchmarks.

Major Contribution

  • Competitive & internal audit
  • Design exploration
  • Back-end logic & ideation
  • Data analysis
02

Research

The team ran a competitive and internal audit, an 88-response user survey, and 15 user interviews, then profiled hardware limitations across low-, mid-, and high-end machines. Together, these methods surfaced how people actually use tabs, extensions, and power settings day to day. From there, the team distilled a few key metrics:

Internal audit of performance signals, their impact, and scalable actions across low, medium, and high thresholds
Competitive audit comparing Chrome's tab management features against potential Firefox equivalents

Internal audit mapping performance signals to scalable, threshold-based actions, alongside a competitive audit of Chrome’s tab management evaluated for Firefox.

47.7%

of users have 6–15 tabs open at once on their browsers

58%

of users have extensions mildly integrated into their workflow

87.5%

want simple device statistics displayed

What users want in Adaptive Performance:

Performance

Customizable balance of speed and battery life for all workflows.

Visibility

Unified controls that bring backend data to everyone with an intuitive interface.

Impact

Maintaining the brand promise of prioritizing privacy, environment, and users over profit.

03

Design & Iteration

Together with the team, I helped design and produce the wireframes and lo-fidelity prototypes that explored visual hierarchy and interaction across the extension’s core screens:

  • Extension popup with watts saved and tab memory usage
  • Tab management, computer performance, and settings screens
  • Performance popup with an expandable settings panel
  • Memory usage popup with a usage graph and breakdown

Feedback gathered from 8 follow-up user interviews shaped the next round of design, pointing toward multi-window control, clearer in-the-moment feedback, and more automation like auto-sleeping tabs. From these interviews, we identified several major positive reactions and pain points.

Low-fidelity wireframe of the extension popup with watts saved and tab memory usage

Positive Reactions

  • Clean UI
  • Simple usability
  • Satisfying tab controls
  • Useful in everyday tasks
  • Ideal for heavy tab users

Pain Points

  • Technical language barrier
  • Confusion around AP toggle
  • Weak AP transparency
  • Lack of multi-window support

Refining Settings

Users also called out a settings page as a high-priority need. Based on feedback, performance levels, advanced display details, automatic tab sleeping thresholds, and dark mode were consolidated into one clear settings surface.

  • Performance Level (Low, Balanced, Aggressive)
  • Advanced Display for AP activity details
  • Sleep Tabs Automatically, by time or battery
  • Dark Mode
Mid-fidelity settings prototype for the Adaptive Performance extension
04

Final Deliverable

The shipped extension surfaces real-time memory and CPU savings, proactively suggests which tabs to sleep or close, and keeps every open tab searchable in one place.

  • AP Activity Summary

    A quick snapshot of how Adaptive Performance is impacting the current session.

  • Suggested Actions

    Proactive recommendations for which tabs to sleep or close, based on real-time signals.

  • Active Memory & CPU Monitoring

    Live memory and CPU usage tracked per tab.

  • Tab Sort

    Quickly reorder tabs by activity or resource usage.

  • Tab Sleeping & Closing

    One-click controls to sleep or close tabs directly from the popup.

Final Adaptive Performance extension popup showing suggested actions, browser usage, and all tabs
Suggested actions view of the Adaptive Performance extension recommending tabs to sleep or close

Under the hood, the Attention Prioritization Algorithm feeds on behavior patterns, device context, and domain sensitivity to generate each tab’s suggested action. Two listeners feed it in real time: a Performance Listener watching for signs of strain like buffering, memory pressure, and dropped framerates, and a Resource Listener tracking usage patterns like dormancy, domain clusters, and background media. Together, they let the algorithm tell a tab that’s actively working apart from one that’s just sitting open and draining resources.

Performance Listener

  • Video buffering
  • Memory limit reached
  • Increased FCP/LCP
  • Framerate drops
  • Event handler latency
  • Increased script execution time

Resource Listener

  • Dormancy patterns
  • Temporal/behavioral patterning
  • Domain clusters
  • Background media
  • “One-time” content recognition

To validate these thresholds, the team ran 4 benchmarks across 5 machines for 475 datapoints, profiling how tabs behave under real workloads on low-, mid-, and high-end hardware. That data shaped a different set of priorities and suggested actions for each tier:

Low-end

≤12 GB RAM

Priorities

  • DOM-heavy operations are 9–21x slower
  • React/Angular/Vue tabs consume disproportionate CPU
  • >10–15 open tabs cause cascading degradation

Suggested Actions

  • Aggressively suspend tabs with heavy DOM
  • Prioritize closing jQuery-heavy legacy sites
  • Target tabs with active animations/auto-refresh

Mid-end

12–16 GB RAM

Priorities

  • Graphics workloads are the primary bottleneck
  • JavaScript 2–3x slower than high-end
  • GPU and CPU compete for shared memory bandwidth

Suggested Actions

  • Suspend tabs with canvas/WebGL content
  • Target video streaming tabs when not watched
  • Close tabs with auto-playing background media

High-end

>16 GB RAM

Priorities

  • Handles 30–50+ tabs before degradation
  • Graphics needs throttling without a discrete GPU
  • Multi-threaded workloads shine

Suggested Actions

  • Less aggressive suspension, prioritize UX
  • Focus on memory consumption over CPU
  • Prioritize user organization over performance

Presentation Slides

Mozilla Adaptive Performance presentation, slide 1Mozilla Adaptive Performance presentation, slide 2Mozilla Adaptive Performance presentation, slide 3Mozilla Adaptive Performance presentation, slide 4Mozilla Adaptive Performance presentation, slide 5Mozilla Adaptive Performance presentation, slide 6Mozilla Adaptive Performance presentation, slide 7Mozilla Adaptive Performance presentation, slide 8Mozilla Adaptive Performance presentation, slide 9Mozilla Adaptive Performance presentation, slide 10Mozilla Adaptive Performance presentation, slide 11Mozilla Adaptive Performance presentation, slide 12Mozilla Adaptive Performance presentation, slide 13Mozilla Adaptive Performance presentation, slide 14Mozilla Adaptive Performance presentation, slide 15Mozilla Adaptive Performance presentation, slide 16Mozilla Adaptive Performance presentation, slide 17Mozilla Adaptive Performance presentation, slide 18Mozilla Adaptive Performance presentation, slide 19Mozilla Adaptive Performance presentation, slide 20Mozilla Adaptive Performance presentation, slide 21Mozilla Adaptive Performance presentation, slide 22Mozilla Adaptive Performance presentation, slide 23Mozilla Adaptive Performance presentation, slide 24Mozilla Adaptive Performance presentation, slide 25Mozilla Adaptive Performance presentation, slide 26Mozilla Adaptive Performance presentation, slide 27Mozilla Adaptive Performance presentation, slide 28Mozilla Adaptive Performance presentation, slide 29Mozilla Adaptive Performance presentation, slide 30Mozilla Adaptive Performance presentation, slide 31Mozilla Adaptive Performance presentation, slide 32Mozilla Adaptive Performance presentation, slide 33Mozilla Adaptive Performance presentation, slide 34Mozilla Adaptive Performance presentation, slide 35Mozilla Adaptive Performance presentation, slide 36Mozilla Adaptive Performance presentation, slide 37Mozilla Adaptive Performance presentation, slide 38Mozilla Adaptive Performance presentation, slide 39Mozilla Adaptive Performance presentation, slide 40Mozilla Adaptive Performance presentation, slide 41Mozilla Adaptive Performance presentation, slide 42Mozilla Adaptive Performance presentation, slide 43Mozilla Adaptive Performance presentation, slide 44Mozilla Adaptive Performance presentation, slide 45Mozilla Adaptive Performance presentation, slide 46Mozilla Adaptive Performance presentation, slide 47Mozilla Adaptive Performance presentation, slide 48Mozilla Adaptive Performance presentation, slide 49

A collaboration between ICB and Mozilla in Fall 2025. Project Leads: Daniel Lee, Connor McSeveney. Designers: Paco Lau, Ethan Tam, Junho Choi, Samuel Hudson, Erin Pan, Kalyani Puthenpurayil. Advised by Seeun Ahn and Tommy Nguyen. Mentored by Mike Conca, Karen Kim, and Tyler Thorne.