navigator.registerProtocolHandler and web+ prefix tests
Please send feedback to Chris Weber <chris@lookout.net> | www.lookout.net | Tue Jan 17
00:47:56 PST 2012
This page includes conformance and security tests for the
navigator.registerProtocolHandler function and the HTML5web+
scheme prefix. Many tests are loaded from tests.json while others are loaded from test.js file. The tests are hopefully
self-documented, so if you're wondering they are you can just
run them and read the output :-). In general PASS indicates an expected result that was good
(conformant or secure)
while FAIL indicates one that was bad
(non-conformant, insecure, or perhaps just questionable). The results
of testing several browsers are available online, as is an
analysis I provided in a blog
post.
Please send me any new test cases, comments, suggestions, or
corrections.
Requirements
This page must be loaded from www.lookout.net
A Pop-Up window will open and is required for some tests. Please
allow pop-ups for this domain for testing to work.
Registering new protocol handlers causes 'infobars' to open in
the browser. When you see the infobars,
do not choose to install or register the handler, and also, do not
click no as this might prevent the infobar from ever showing again for
the same case. Instead just close 'x' the infobar.
When testing is complete you can close the pop up window.
Click to run
all tests.
Enter a single "id" from tests.json and click to run that test only.
Run an ad hoc test that includes a scheme, uri, title, and an expected result
- either 0 (pass) or -1 (fail)
Caveats and browser bugs
The following issues in Chrome 16 making testing a bit difficult:
Currently Chrome cascades the infobars which means you will get
UI spammed on some of the tests - that's why tests are running in a
separate window.
If you click 'No' on the infobar in Chrome, and later try to
refresh the page and re-run the test, you will not be given the option
to register the handler again. In other words, the choice is
persistent.
Unfortunately Chrome does not throw errors where I'd expect them,
like when you try to register a scheme to another domain, which should
always fail with a security error. Because of this, the results make
it look like Chrome failed in places where it may have passed.
Test results
Output will be displayed in the box below. show/hide error details