12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- <!DOCTYPE HTML>
- <html>
- <!--
- https://bugzilla.mozilla.org/show_bug.cgi?id=1107378
- -->
- <head>
- <meta charset="utf-8">
- <title>Test for Bug 1107378</title>
- <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
- <script type="application/javascript;version=1.7" src="unprefixing_service_utils.js"></script>
- <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
- </head>
- <body>
- <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1107378">Mozilla Bug 1107378</a>
- <div id="display">
- <iframe id="testIframe"></iframe>
- </div>
- <pre id="test">
- <script type="application/javascript;version=1.7">
- "use strict";
- SimpleTest.waitForExplicitFinish();
- /**
- * This test checks that unprefixing is enabled for whitelisted domains, and
- * that it's disabled for non-whitelisted domains.
- *
- * We do this using an iframe, in which we load a test file at a test domain,
- * and we have the iframe report back to us (using postMessage) about
- * whether unprefixing is working.
- *
- * High-level overview of the process here:
- * - First, we tweak prefs to enable unprefixing & enable the test-only
- * entries in our unprefixing whitelist.
- * - The rest of this test is driven by the "startNextTest()" method.
- * This method pops a hostname to test and loads a URL from that host
- * in the iframe.
- * - We then listen for test-results from the iframe, using the postMessage
- * handler in unprefixing_service_utils.js.
- * - When the iframe indicates that it's done, we call "startNextTest()"
- * again to pop the next host & load *that* in the iframe.
- * - When nothing remains to be popped, we're done.
- */
- const IFRAME_TESTFILE = "unprefixing_service_iframe.html";
- // This function gets invoked when our iframe finishes a given round of testing.
- function startNextTest()
- {
- // Test the next whitelisted host, if any remain.
- if (gWhitelistedHosts.length > 0) {
- let host = gWhitelistedHosts.pop();
- info("Verifying that CSS Unprefixing Service is active, " +
- "at whitelisted test-host '" + host + "'");
- testHost(host, true);
- return;
- }
- // Test the next not-whitelisted host, if any remain.
- if (gNotWhitelistedHosts.length > 0) {
- let host = gNotWhitelistedHosts.pop();
- info("Verifying that CSS Unprefixing Service is inactive, " +
- "at non-whitelisted test-host '" + host + "'");
- testHost(host, false);
- return;
- }
- // Both arrays empty --> we're done.
- SimpleTest.finish();
- }
- function begin()
- {
- // Before we start loading things in iframes, set up postMessage handler.
- registerPostMessageListener(startNextTest);
- // Turn on prefs & start the first test!
- SpecialPowers.pushPrefEnv(
- { set: [[PREF_UNPREFIXING_SERVICE, true],
- [PREF_INCLUDE_TEST_DOMAINS, true],
- // Make sure *native* -webkit prefix support is turned off. It's
- // not whitelist-restricted, so if we left it enabled, it'd prevent
- // us from being able to detect CSSUnprefixingService's domain
- // whitelisting in this test.
- ["layout.css.prefixes.webkit", false]]},
- startNextTest);
- }
- begin();
- </script>
- </pre>
- </body>
- </html>
|