Git Product home page Git Product logo

googlechrome / web-vitals-extension Goto Github PK

View Code? Open in Web Editor NEW
2.3K 42.0 100.0 4.77 MB

A Chrome extension to measure essential metrics for a healthy site

Home Page: https://chrome.google.com/webstore/detail/web-vitals/ahfhijdlegdabablpippeagghigmibma?hl=en

License: Apache License 2.0

HTML 5.19% JavaScript 41.58% CSS 53.23%
performance ux developer-tools web-performance web-performance-testing core-web-vitals

web-vitals-extension's Introduction

Web Vitals Chrome Extension

A Chrome extension to measure metrics for a healthy site Install now

This extension measures the three Core Web Vitals metrics in a way that matches how they're measured by Chrome and reported to other Google tools (e.g. Chrome User Experience Report, Page Speed Insights, Search Console).

It supports all of the Core Web Vitals and leverages the web-vitals library under the hood to capture:

It also supports the diagnostic metrics:

And finally, it temporarily supports the following deprecated metrics:

Installation Instructions

The Web Vitals Chrome Extenstion can be installed from the Chrome Web Store.

If you are looking for a more bleeding-edge build, you can also install the version of the extension from master.

Install from master

Google Chrome

  1. Download this repo as a ZIP file from GitHub.
  2. Unzip the file and you should have a folder named web-vitals-extension-master.
  3. In Chrome go to the extensions page (chrome://extensions).
  4. Enable Developer Mode.
  5. Drag the web-vitals-extension-master folder anywhere on the page to import it (do not delete the folder afterwards).

Usage

Ambient badge

The Ambient Badge helps check if a page passing the Core Web Vitals thresholds.

Once installed, the extension will display a disabled state badge icon until you navigate to a URL. At this point it will update the badge to green, amber or red depending on whether the URL passes the Core Web Vitals metrics thresholds.

The badge has a number of states:

  • Disabled - gray square
  • Good - green circle
  • One or more metrics needs improvement - amber square
  • One or more metrics poor - red triangle

If one or more metrics are failing, the badge will animate the values of these metrics (this animation can be turned off in the options screen).

Detailed drill-down

Clicking the Ambient badge icon will allow you to drill in to the individual metric values. In this mode, the extension will also say if a metric requires a user action.

For example, Interaction to Next Paint requires a real interaction (e.g click/tap) with the page and will be in a Waiting for input... state until this is the case. We recommend consulting the web.dev documentation for LCP, CLS, FID, and INP to get an understanding of when metric values settle.

As of version 1.0.0, the popup combines your local Core Web Vitals experiences with real-user data from the field via the Chrome UX Report (CrUX) API. This integration gives you contextual insights to help you understand how similar your individual experiences are to other desktop users on the same page. We've also added a new option to "Compare local experiences to phone field data" instead, if needed. Note that CrUX data may not be available for some pages, in which case we try to load field data for the origin as a whole.

Overlay

The overlay displays a Heads up display (HUD) which overlays your page. It is useful if you need a persistent view of your Core Web Vitals metrics during development. To enable the overlay:

  • Right-click on the Ambient badge and go to Options.
  • Check Display HUD overlay and click 'Save'
  • Reload the tab for the URL you wish to test. The overlay should now be present.

Console logs

The console logging feature of the Web Vitals extension provides a diagnostic view of all supported metrics. To enable console logs:

  • Right-click on the Ambient badge and go to Options.
  • Check Console logging and click 'Save'
  • Open the Console panel in DevTools and filter for Web Vitals

To filter out unneeded metrics, prepend a minus sign to the metric name. For example, set the filter to Web Vitals Extension -CLS -FID to filter out CLS and FID diagnostic info.

Diagnostic info for each metric is logged as a console group prepended by the extension name, [Web Vitals Extension], meaning that you will need to click this line in order to toggle the group open and closed.

The kinds of diagnostic info varies per metric. For example, the LCP info includes:

User Timings

For some metrics (LCP, FID, and INP) the breakdowns can be saved to User Timing marks, using performance.measure which are then viewable in DevTools Performance traces.

For the other metrics, Chrome DevTools normally provides sufficient information so additional breakdowns are not necessary.

Contributing

Contributions to this project are welcome in the form of pull requests or issues. See CONTRIBUTING.md for further details.

If your feedback is related to how we measure metrics, please file an issue against web-vitals directly.

How is the extension code structured?

  • src/browser_action/vitals.js: Script that leverages WebVitals.js to collect metrics and broadcast metric changes for badging and the HUD. Provides an overall score of the metrics that can be used for badging.
  • src/bg/background.js: Performs badge icon updates using data provided by vitals.js. Passes along data to popup.js in order to display the more detailed local metrics summary.
  • src/browser_action/popup.js: Content Script that handles rendering detailed metrics reports in the pop-up window displayed when clicking the badge icon.
  • src/options/options.js: Options UI (saved configuration) for advanced features like the HUD Overlay

FAQ

Who is the primary audience for this extension?

The primary audience for this extension is developers who would like instant feedback on how their pages are doing on the Core Web Vitals metrics during development on a desktop machine.

How should I interpret the metrics numbers reported by this tool?

This extension reports metrics for your desktop or laptop machine. In many cases this hardware will be significantly faster than that of the median mobile phone your users may have. For this reason, it is strongly recommended that you test using tools like Lighthouse and on real mobile hardware (e.g via WebPageTest) to ensure all your users there have a positive experience.

What actions can I take to improve my Core Web Vitals?

We are making available a set of guides for optimizing each of the Core Web Vitals metrics if you find your page is not passing a particular threshold:

Lighthouse also includes additional actionability audits for these metrics.

We envision users will use the extension for instant feedback on metrics (for their desktop machine) but will then go and do a Lighthouse audit for (1) a diagnostic view of how these metrics look on a median mobile device and (2) specifically what you can do to improve.

License

Apache 2.0

web-vitals-extension's People

Contributors

addyosmani avatar alonkochba avatar brendankenny avatar coliff avatar dependabot[bot] avatar gilbertococchi avatar housseindjirdeh avatar lozy219 avatar mmocny avatar patrickhulce avatar renato-macedo avatar rviscomi avatar tunetheweb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

web-vitals-extension's Issues

Persist FID value between pages on HUD

FID issues due to 3rd parties on click events are quite hard to troubleshoot so far and I am wondering if the web-vitals-extension HUD Overlay can store the previous page FID value to help spotting this kind of issues.

Below an example on Montblanc IT https://www.montblanc.com/it-it site where FID becomes 165ms but it's impossible for the user to notice that on the next page and it correlates with a 3rd party script Function Call.
Screenshot 2020-10-21 at 10 57 57

FID should only be considered passing (green) when it's state is final

Feedback from Phil:

I wouldn't show a green 0.00 for FID prior to the first input. I'd show a gray "--" or something like that since 0.00 is a valid value after an input, and seeing green is confusing.

The fix here will be only considering FID to be passing when it's state is final.

aboukaled

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Additional context
Add any other context or screenshots about the feature request here.

How to deal with oversampling of fast page loads

I am definitely a little concerned about folks loading this extension up on their high-powered machines, seeing LCP times in <1s range and then thinking the job is done on performance and/or distrusting other tooling that tells them their LCP is longer.

Example: cnn.com

On mobile this page takes ~8s for FCP and has horrendous performance, but on my laptop with wifi and an adblocker, this extension reports 0.8s, green all day. I'm worried that developers that use this extension on their own pages will visit under similarly rosy conditions and conclude the page is fast.

I'm not sure what the solution is other than a potential reminder that these metrics represent what you're observing on your device. Perhaps we could even run a little test or use ECT to say "your device looks like it's in the fastest 10%" or something and remind them it won't be typical of most users. Detecting adblockers might be another good caveat to place in there.

Clicking the HUD counts towards FID

Not sure how much we can do here, but this was unexpected. If we can't improve the DX it should at least be documented.

  1. Enable the HUD (overlay)
  2. Load a page
  3. Click anywhere in the HUD
  4. FID becomes final

Warn about LCP inflated by background loading

If I open a new tab in the background, and wait ~15 seconds before switching over to it, then LCP will be at least 15 seconds. From a UX perspective, the page appeared almost instantly, so a "slow" LCP value like this is not representative.

However, this seems to be a feature (not a bug) of the API because it's documented at web.dev/lcp:

Caution: Since users can open pages in a background tab, it's possible that the largest contentful paint will not happen until the user focuses the tab, which can be much later than when they first loaded it.

It'd be useful if this extension annotated LCP in some way to indicate that the value was inflated by the amount of time the page was in the background. If complete=true and active=false then the annotation would be useful. If needed we could also use the difference in time between complete=true and the activation change as a heuristic.

Wrong time format at 12pm

Describe the bug
Somehow instead of 00:25 we see 24:25 time.

To Reproduce
Open any website at 12pm.

Expected behavior
It should be 00:25 in (24h format) or 12:25 in (12h format)

Additional context, screenshots, screencasts
Screenshot 2020-05-29 at 00 25 41

Complete Ambient Badging

Badging as currently implemented has three states: in-determinant (grey), passing thresholds (green) and failing thresholds (red).

To complete ambient badging support, we want to support the following UX: overall green/red (current) which animates to a badge showing which metric is failing, and if there are multiple just show the number of metrics that are failing.

The states are as follows:

  • 1 metric failing (animate between the overall status and what metric is failing)
  • multiple metrics failing (animate between overall and this number of metrics)
  • all metrics passing the thresholds (just green)

unnamed (7)

Approach I might suggest:

  • Define an interval between showing the overall red/green status and animating to what metric is failing (e.g 2 seconds)
  • Define a "stack" of what we are animating. e.g overall failing -> LCP failing -> CLS failing. If all three are failing perhaps just show the number 3 on a red tile. When the interval is reached update the badge icon and text accordingly.
  • Tech wise, using static images for the icons may be the quickest approach. Dion did this for his individual extensions. An alternative is using <canvas>. Having tried this locally, I found it unnecessarily complex given the number of states we're working with. We can also play around with setBadgeText/backgroundcolor.
  • Optionally, we could let developers configure the animation delay via #3

Log CWV events to the console

Is your feature request related to a problem? Please describe.
The CWV values reported by the extension are useful snapshots of the UX, but they don't necessarily have any diagnostic information for developers to understand what could have caused adverse experiences.

Describe the solution you'd like
I'd like to see the extension utilize console logging more to leave an audit trail to assist developers with debugging CWV issues. For example, log the times at which CLS changes and if possible attribute each shift to the culprit element. Or for LCP, log the elements that are considered the largest and the times at which they are painted. For FID, it'd be helpful to know the timestamp of the first input and what was clicked.

The extension can be a first class developer tool for not only understanding how pages are experienced but also debugging how to make them better. Stretch goal: maybe like a VisBug for performance?

Address CPU usage concerns

Over the last few weeks, we have received a few reports about the extension consuming increased CPU when certain pages are open (in particular Google Meet) - this is generally due to these pages having a high CLS. This has been an issue we previously tried to tackle using badge update throttling. It helped some users, but we're still hearing this is an issue for others. What are our options?

Option 1 ✋🏽

We consider adding an internal disallow list to the extension which skips badging URLs we deem to be sufficiently problematic (e.g meet.google.com). This would leave these tabs with a gray badge, similar to internal Chrome pages. I would only be comfortable doing this in the most egregious of cases.

Option 2 👀

Disable badging for a tab if we detect CLS update frequency is high (N updates in M time window) and looks like it will continue to be high. The benefit of this solution is that it's more general than 1 (...and would help with cases like this where Reddit appears to be the culprit). The other benefit is that you can still do some badging for a tab without disabling it outright.

The downside is that a tab has to get close to behaving badly before we intervene, but we can tweak the time window to reduce the risk here.

@rviscomi @patrickhulce do you have any preferences on the above?

[Feature] CrUX field data

The extension currently provides a local view of your URL's Core Web Vitals metrics but it can also be valuable to get insight into aggregate field data for the URL too (e.g at an origin or URL-level). We will explore adding field data to the extension via CrUX.

Some considerations:

  • Initial implementation will be behind a flag until we roll-out
  • Only attempt to fetch information if we're not on localhost
  • Attempt to match the field metrics UI in current PageSpeed Insights for distributions
  • Expose an option for developers to turn off field data (as this will lengthen the drill-down UI)
  • Utilize caching so we don't call the REST API too frequently
  • Only expose field data in the drill-down, but not the overlay? (I guess given this data will not change during development it's less useful in the overlay?)

@rviscomi any other considerations?

Handle the "pages loaded before the extension was installed" case #minor

Once you load the extension you normally have pages loaded... thus show up as grey (fine!) and when you click on the badge an empty windows pops up.

Instead: could say something there and even offer "how about reload?" :)

Actually, it's also in the general "grey because results haven't come back yet" case.... so wouldn't want to offer reload while it's loading.

Implement HUD Overlay

Summary:

  • When a developer installs the extension, in addition to the Ambient Badge, we can also render an in-page persistent heads-up display with WebVitals.js RUM data.
  • This HUD should maintain a level of opacity (0.7?) to ensure the developer can still see the underlying UI to the page. This is inline with other HUD DX offered in Chrome DevTools for the FPS HUD.
  • This HUD should provide a way to optionally close it (e.g an X) in case a developer decides it’s too invasive for their current session.
  • We could expose a user-preference in extension settings to toggle on/off the HUD.

Initial mock up: https://glitch.com/edit/#!/metrics-overlay?path=index.html:26:36

abu

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Additional context
Add any other context or screenshots about the feature request here.

Chrome Extension Error

Installed the Chrome extension (Web Vitals .1.1) on my Macbook Pro. (El Capitan v. 10.11.6). On first install, extension was shown with three errors, however it turned out i didn't have the latest version of Chrome. So I updated that and it's now the latest version - 81.0.4044.138 (Official Build) (64-bit) and there's one error in the extension.

Unchecked runtime.lastError: Cannot access contents of url "chrome-search://local-ntp/local-ntp.html". Extension manifest must request permission to access this host.
Context
_generated_background_page.html
Stack Trace
_generated_background_page.html:0 (anonymous function)
Nothing to see here, move along.
Unchecked runtime.lastError: Cannot access a chrome:// URL

Red CLS of 0.0 (my confusion)

I get confused when I see "CLS 0.00" on the red background. It's probably because of my anchoring.... but it takes me a minute to realize "ohhhh that's right.... it's red because in general it didn't pass, not because CLS didn't hit it's threshold".

One idea / option: when red, only cycle through the items that are missed (and often it will just mean it's static on the one error if the other two pass).

Visualize metric changes over time

Totally optional. I think it'd be cool to see the rate of change of a metric like CLS plotted graphically. This wouldn't be the default view but behind some kind of advanced/more button.

@addyosmani wdyt?

Edit: To clarify I'm only referring to the span of time that the tab is active, not a historical view of previous page loads.

For example, let's provide a way to visualize how CLS got to be 0.15. There should be a line at 0.1 indicating where the threshold is and as the page loads and is scrolled, we could see CLS creeping closer to and exceeding the threshold.

Implement support for options

Docs: https://developer.chrome.com/extensions/options
Related: #1 (HUD Overlay)

We should expose options UI for users to toggle on/off the HUD overlay. This feature should not be enabled by default as it could be considered a little invasive for every single page-load.

Later, we can also use the options surface for providing more granular control over aspects like... do you want us to fetch field data from the PSI report? (default: true) or enable more power-user features.

Preference on in-popup options vs. dedicated options page (e.g in a new window). I don't have a strong opinion here but have come across more extensions that choose the new window options page approach.

Extension flickers and maxes out CPU on Google Meet

I'm guessing video messes with CLS events or something because while I had a video call the extension was flickering rapidly and Chrome's task manager pointed to the extension process as being maxed out at 100% CPU with fans spinning. Maybe we can throttle the computation somehow?

`final` v. `not final` labels were a bit unclear at first

I was initially confused by what (final) and (not final) meant. At first I thought it was a signal on the metric implementation or something because (not final) only appeared on CLS when I first opened the extension. I quickly realized it was whether the value might change or we're definitely done computing the metric.

I'm not sure who the audience of the extension is, but if they there's opportunity for confusion there I'd like to offer (still computing) along with a loading icon or something to make it super clear? I wasn't able to read the linked docs because web-vitals is a separate private repo it seems, so maybe it explains it more there already.

Extension freezes when a page is refreshed with throttling

Repro Steps

  • Navigate to https://www.theverge.com/
  • Click on the page to trigger FID
  • Open the extension to observe the metrics, note their values
  • Open DevTools on the page and enable Fast 3G throttling
  • Refresh the page and wait for it to load
  • Open the extension to observe the metrics, note none of their values have changed and they all read "final", even CLS
  • Repeat the refresh as many times as you like without changes.
  • Disable Fast 3G throttling
  • Refresh the page and wait for it to load
  • Open the extension to observe the metrics, note their values change again

Other Notes

  • If I switch tabs and go back to the throttled tab, the metric values appear correctly again.
  • Sometimes I'll even see an LCP of 0.00 s
    image

Related Issues
It'd be great if the URL and timestamp of the page load the metrics were from was listed in the extension, it was hard to tell on refresh if the numbers were actually current or not.

Link to articles to explain final vs not final

Using the extension for the first time I wasn't sure how to interpret final/not final:
image

One idea: could each row have a ? that's a link which points at its respective article (web.dev/cls, web.dev/lcp, etc)

Release on Chrome web store?

I know it's a preview, but this will be a significant barrier to adoption for many developers.

Also, once it's on the web store, I'd suggest adding a large, obvious CTA to both the homepage and the readme. Right now, the homepage is lacking a clear CTA to get started with the extension which is the flow that 95% of people will want to take.

Cheers 😄

SPA sites - New Pages Metrics

Describe the bug
The first initial visit to an SPA site it fine, but if you go to a new page handled by an internal router (i.e. the page is hydrated without a reload) the subsequent page views stack up in the metrics, so you have a combined CLS of all page views, and seemingly the LCP & FID of the initial page.

To Reproduce
Go to any SPA that works this way and click around, monitoring the figures.

Expected behavior
It would be great if the route change could be detected and the metrics adjusted accordingly.

Version:

  • OS w/ version: Windows 10
  • Browser w/ version: Chrome 83

pagespeed insights

Lighthouse heeft een fout geretourneerd: NO_FCP. Er is iets misgegaan bij het registreren van de tracering tijdens het laden van uw pagina. Voer Lighthouse opnieuw uit. (NO_FCP)

Extension shows 'metrics unavailable' instead of metrics

Describe the bug

Clicking on extension popup often shows 'Metrics unavailable while HUD appears to show correct values, See screenshow below

To Reproduce

I haven't been able to fully identify the steps to reproduce. I suspect however that it happens when either all values or the CLS value approach zero or are zero.

Expected behavior
To show the metrics. As I understand, even if the values are low it should still show them?

Version:

  • OS w/ version:
    (Xubuntu flavor)
    Distributor ID: Ubuntu
    Description: Ubuntu 20.04.1 LTS
    Release: 20.04
    Codename: focal
  • Browser w/ version Chrome 86.0.4240.183 (Official Build)

Additional context, screenshots, screencasts

image

Move WebVitals.js to an external script

Due to a number of issues I experienced when importing WebVitals.js into a content script, we currently inline the UMD build in https://github.com/GoogleChrome/web-vitals-extension/blob/master/extension/src/browser_action/vitals.js#L18.

This probably won't scale over time and we should fix it sooner rather than later so we can pull in library updates as needed. As the latest version of the library relies on callbacks vs. promises, we're already a little out of date and would need to update to account for this after this change.

[chore] Add GA

  • Check on official policies
  • Track actives?
  • Track badge-clicks / pop-up opens
  • Track overlays enabled

Freezin meet.google.com

When participating in some meetings not just in meet.google.com the website is freezing and the points in the extension change a lot.
I would suggest avoiding the load in these scenarios or to have a toggle button to not load in some specific sites.

Clicking anywhere on the page finalizes FID

Per web.dev/fid:

FID measures the time from when a user first interacts with your site (i.e. when they click a link, tap on a button, or use a custom, JavaScript-powered control)

However, when I click on any non-interactive part of the page, like the background, FID appears as finalized in the console log and the drill-down UI. I'd expect it to stay indeterminate until interacting with part of the UI.

This could be a bug in the JS library, the perf API, or just a misunderstanding in the docs.

[Memory usage] Background script

Describe the bug

It looks like we may have some additional memory leaks sitting around 🚿 Once all tabs that are badged are closed, memory usage from the extension remains in the ~50MBs on my machine.

Screen Shot 2020-06-23 at 6 42 59 PM

This continues to grow if left open for a few minutes.

image

To Reproduce

  1. Open four tabs in sequence - web.dev, cnn.com, theverge.com, disney.com
  2. Wait for the tabs to fully load
  3. Measure extension's memory consumption and CPU utilization using Chrome's Task Manager
  4. Close all open tabs except about:extensions
  5. Measure extension's memory consumption and CPU utilization using Chrome's Task Manager

This appears to also be present after #68 and #69 cc @patrickhulce as an fyi

document green !== good for all users

This extension is great!
One thing that I am not sure is clear at the moment is that this tells you that the current device passes this current URL ("my homepage is green when I load it on my dev laptop! i'm all good"). Since real user data is so important to Web Vitals, it might make sense to make it more explicit that just because it passes on your dev device does not mean it actually passes for your users.

For example

  • include the current URL in the drill down mode (e.g. metrics for example.com/foo/bar...)
  • warn that testing on localhost is not representative of a prod environment

Sorry if this has been discussed already, great work all!

Clarify good vs poor experience

CWV defines three buckets of experience: good, needs improvement, and poor. Currently, the extension labels anything not good as poor.

Should the extension account for experiences in the needs improvement bucket?

Add debouncing/throttle for badge updates

As first raised by @patrickhulce there are cases where a page with highly dynamic in-viewport content may cause frequent updates to the badge. e.g a page with in-viewport animations (e.g http://mdn.github.io/performance-scenarios/js-worker/index.html - select rAF and animate) will cause a firehose of CLS updates with significant badge flashing.

To address this, we could do a few things:

  1. Limit how often broadcastMetricsUpdates is called
  2. Limit how often specific metrics in the broadcast can trigger a badge change (LCP and FID are impacted far less by these problems than CLS). We could add some logic here so that we only throttle CLS badge updates.

Of these options, I'm tempted to try 2. first and see if this leads to the above demo working without causing the badge to flicker so much.

Might use https://www.npmjs.com/package/lodash.debounce for this unless there's some other hotness I should be looking at... :)

What % of my browsing hits vs. doesn't?

I am enjoying looking at a scoreboard and peaking at the overall view of things.

One idea would be to have an option to show meta information such as:

  • % of runs (final) scores that hit vs. don't
  • top 5 / bottom 5 list (not sure the right numbers, if they reset each week etc)

Badge closes do not fully persist

The current badge overlay close button will remove the badge from the page, but will not persist the badge closure during your session. This might be surprising to developers (e.g I see my metrics -> close badge -> CLS wasn't final and just updated -> whoops here's the badge again).

Few options....

  1. Clicking close will be the same as disabling the overlay for the particular tab (i.e we update your overlay preferences on clicking 'Close' and you have to go back to the Options to re-enable it). I think this would be the simplest option.
  2. Clicking close has some session awareness. If you reload the page or come back later, we'll bring back the overlay. I'm currently thinking 1 might be sufficient.

@housseindjirdeh interested in taking this one when you have time?

Improve badging consistency

With the extension installed...

  1. Create a number of new tabs (e.g 5)
  2. Navigate to a new URL for each tab (e.g cnn.com, web.dev, wikipedia etc)
  3. Switch back and forth between the tabs
  4. Some of the tabs will display a grey icon (i.e we do not yet know if the page metrics pass the Core Web Vitals thresholds), however, clicking on the badge for the drill-down shows that we do have metrics data with some degree of pass/fail already.

image

What could be the cause?

  • Waiting on metrics to finalize (e.g FID is not yet final) so we are showing grey
  • Issues in the chrome extension event lifecycle may be delaying the badge icon from being updated

Extension crashed

I got a notification "Web Vitals extension crashed, click this balloon to reload" after switching between a couple tabs quickly.

Here's the error log from chrome://extensions
image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.