• Stars
    star
    196
  • Rank 198,553 (Top 4 %)
  • Language
    JavaScript
  • Created almost 12 years ago
  • Updated over 7 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Bookmarklet that produces Page Load Waterfalls using the Resource Timing API

Waterfall

A bookmarklet to create page load waterfall in the browser using the Resource Timing API

Just add the bookmarklet below to your bookmarks bar.

javascript:(function(){var el=document.createElement('script');el.type='text/javascript';el.src='//andydavies.github.io/waterfall/bookmarklet/waterfall.js';document.getElementsByTagName('body')[0].appendChild(el);})();

Works In*

IE 10, Chromium Nightly

*When I say 'works in' I mean you'll get a waterfall but sometimes there will be odd things about it!

To Do

  • Add DOM event markers e.g. onload etc.
  • Add AppCache, fix TCP times
  • Truncate URL display
  • Remove protocol from URL display
  • Fix blocked timings
  • Display blocked / active times for 3rd party resources
  • Check if bookmarklet script loaded before adding it
  • Add iframe support
  • Add tooltip with full URL and timing details
  • Add row number?
  • Add legend
  • Cleanup and refactor drawing code
  • Add Close button
  • Add Jdrop / HAR Storage links
  • Flexible width

To check

  • Why is the API sometimes unavailable in IE10?
  • "about:blank" in IE10 on http://t.uk.msn.com/ - valid

Browser Issues

Here are the issues and queries found so far with the browser implementations of Resource Timing - no CORS testing so far.

(Convert these to GH issues???)

Chromium

All of these issues are already marked as fixed on crbug.com but waterfall code hasn't been tested against a recent build.

IE10

(no link to issue tracker for these)

  • Resource Timing is only available in IE9/IE10 document modes but during testing API wasn't present for some sites where it previously worked and a restart seemed to fix it. This needs re-checking to ensure it wasn't my error.
  • connectStart == connectEnd for both Navigation and Resource Timing entries - would expect different values for early page requests where new TCP connections would be opened.
  • Frequently domainLookupStart == domainLookupEnd even for domains the Windows VM has never seen previously.
  • responseStart == responseEnd in Navigation Timing for both first and repeat views even when waterfall in dev tools shows a response

Change Log

2013-01-01 Add JSDoc comments, start re-factoring drawing code

More Repositories

1

http2-prioritization-issues

Tracks issues / notes for HTTP/2 prioritization across browsers, CDNs and servers
265
star
2

ios-har-builder

Creates HAR files from Safari on iOS Simulator
JavaScript
20
star
3

tag-timing-snippets

Examples of how to measure events โ€“ particularly those from third-party tags โ€“ in web pages
18
star
4

node-iosdriver

Driver for communications with Safari running on iOS Simulator
JavaScript
17
star
5

webpagetest-cookie-consent-scripts

Scripts that can be used with WebPageTest (or other testing tools) to bypass Cookie Consents and enable full page load
17
star
6

keynote-world-map

World Map in Keynote format with countries as individual editable, and colourable shapes
17
star
7

Client-Hints

Chrome plugin to add Client-Hints HTTP header
JavaScript
8
star
8

netlify-build-plugin-speedcurve

A Netlify Build Plugin to trigger SpeedCurve tests for each deploy
JavaScript
8
star
9

kensho

Attempt at extending Chrome to produce resource dependency trees for HTML pages
JavaScript
7
star
10

responsive-sites

A big list of responsive sites to run test cases against
6
star
11

gtm-watcher

Fetches GTM containers and calls the SpeedCurve API when they're updated
3
star
12

rt-tests

Resource Timing Tests
HTML
3
star
13

wpt-diff

diffs for WebPageTest results
3
star
14

SSL-Labs-Bookmarklet

Bookmarklet to test a site using Qualys SSL Test
3
star
15

test-rel-prefetch

HTML
2
star
16

test-rel-preload

Tests to explore positioning of rel="preload" links
HTML
2
star
17

bplist-dissector

Dissector for Apple bplist
Lua
2
star
18

wpt-installer

Scripts to help automate the installation and configuration of WebPageTest
2
star
19

test-rel-preconnect

Test pages for rel=preconnect
HTML
1
star
20

HARoscope

Yet another HAR viewer but will use D3.js and so produce SVG charts
1
star
21

sse-chart

Experiment - Drive a rickshaw.js chart using Server Sent Events
1
star