Blame dom/base/test/test_bug498897.html

Packit f0b94e
Packit f0b94e
<html>
Packit f0b94e
Packit f0b94e
https://bugzilla.mozilla.org/show_bug.cgi?id=498897
Packit f0b94e
-->
Packit f0b94e
<head>
Packit f0b94e
  <title>Test for Bug 498897</title>
Packit f0b94e
  <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
Packit f0b94e
  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
Packit f0b94e
</head>
Packit f0b94e
<body>
Packit f0b94e
Mozilla Bug 498897
Packit f0b94e

<iframe id="testframe"></iframe>

Packit f0b94e
Packit f0b94e
  
Packit f0b94e
Packit f0b94e
Packit f0b94e
<script type="application/javascript">
Packit f0b94e
Packit f0b94e
/** Test for Bug 498897 **/
Packit f0b94e
Packit f0b94e
var checkedLoad = false;
Packit f0b94e
Packit f0b94e
const Cc = SpecialPowers.Cc;
Packit f0b94e
const Ci = SpecialPowers.Ci;
Packit f0b94e
Packit f0b94e
// Content policy / factory implementation for the test
Packit f0b94e
var policyID = SpecialPowers.wrap(SpecialPowers.Components).ID("{65944d64-2390-422e-bea3-80d0af7f69ef}");
Packit f0b94e
var policyName = "@mozilla.org/498897_testpolicy;1";
Packit f0b94e
var policy = {
Packit f0b94e
  // nsISupports implementation
Packit f0b94e
  QueryInterface: function(iid) {
Packit f0b94e
    if (iid.equals(Ci.nsISupports) ||
Packit f0b94e
        iid.equals(Ci.nsIFactory) ||
Packit f0b94e
        iid.equals(Ci.nsIContentPolicy))
Packit f0b94e
      return this;
Packit f0b94e
Packit f0b94e
    throw SpecialPowers.Cr.NS_ERROR_NO_INTERFACE;
Packit f0b94e
  },
Packit f0b94e
Packit f0b94e
  // nsIFactory implementation
Packit f0b94e
  createInstance: function(outer, iid) {
Packit f0b94e
    return this.QueryInterface(iid);
Packit f0b94e
  },
Packit f0b94e
Packit f0b94e
  // nsIContentPolicy implementation
Packit f0b94e
  shouldLoad: function(contentType, contentLocation, requestOrigin, context,
Packit f0b94e
                       mimeTypeGuess, extra) {
Packit f0b94e
    var url = window.location.href.substr(0, window.location.href.indexOf('test_bug498897'));
Packit f0b94e
    if (contentLocation.spec == url + "file_bug498897.css" &&
Packit f0b94e
        requestOrigin.spec == url + "file_bug498897.html") {
Packit f0b94e
      checkedLoad = true;
Packit f0b94e
    }
Packit f0b94e
Packit f0b94e
    return Ci.nsIContentPolicy.ACCEPT;
Packit f0b94e
  },
Packit f0b94e
Packit f0b94e
  shouldProcess: function(contentType, contentLocation, requestOrigin, context,
Packit f0b94e
                          mimeTypeGuess, extra) {
Packit f0b94e
    return Ci.nsIContentPolicy.ACCEPT;
Packit f0b94e
  }
Packit f0b94e
}
Packit f0b94e
policy = SpecialPowers.wrapCallbackObject(policy);
Packit f0b94e
Packit f0b94e
var componentManager = SpecialPowers.wrap(SpecialPowers.Components).manager
Packit f0b94e
                                 .QueryInterface(Ci.nsIComponentRegistrar);
Packit f0b94e
componentManager.registerFactory(policyID, "Test content policy for bug 498897",
Packit f0b94e
                                 policyName, policy);
Packit f0b94e
Packit f0b94e
var categoryManager =
Packit f0b94e
  Cc["@mozilla.org/categorymanager;1"].getService(Ci.nsICategoryManager);
Packit f0b94e
categoryManager.addCategoryEntry("content-policy", policyName, policyName,
Packit f0b94e
                                 false, true);
Packit f0b94e
Packit f0b94e
function testFinished()
Packit f0b94e
{
Packit f0b94e
  ok(checkedLoad, "Content policy didn't get called!");
Packit f0b94e
Packit f0b94e
  categoryManager.deleteCategoryEntry("content-policy", policyName, false);
Packit f0b94e
Packit f0b94e
  setTimeout(function() {
Packit f0b94e
    componentManager.unregisterFactory(policyID, policy);
Packit f0b94e
Packit f0b94e
    SimpleTest.finish();
Packit f0b94e
  }, 0);
Packit f0b94e
}
Packit f0b94e
Packit f0b94e
SimpleTest.waitForExplicitFinish();
Packit f0b94e
Packit f0b94e
document.getElementById("testframe").src = "file_bug498897.html";
Packit f0b94e
Packit f0b94e
</script>
Packit f0b94e
Packit f0b94e
</body>
Packit f0b94e
</html>