security/manager/ssl/tests/mochitest/mixedcontent/test_bug383369.html

Wed, 31 Dec 2014 07:16:47 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 07:16:47 +0100
branch
TOR_BUG_9701
changeset 3
141e0f1194b1
permissions
-rw-r--r--

Revert simplistic fix pending revisit of Mozilla integration attempt.

     1 <!DOCTYPE HTML>
     2 <html>
     3 <head>
     4   <title>Bug 383369 test</title>
     5   <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
     6   <script type="text/javascript" src="mixedContentTest.js"></script>
     7   <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
     9   <script class="testbody" type="text/javascript">
    11   // We want to start this test from an insecure context
    12   loadAsInsecure = true;
    13   // We don't want to go through the navigation back/forward test
    14   bypassNavigationTest = true;
    16   function runTest()
    17   {
    18     // Force download to be w/o user assistance for our testing mime type
    19     const mimeSvc = SpecialPowers.Cc["@mozilla.org/mime;1"]
    20       .getService(SpecialPowers.Ci.nsIMIMEService);
    21     var handlerInfo = mimeSvc.getFromTypeAndExtension("application/x-auto-download", "auto");
    22     handlerInfo.preferredAction = SpecialPowers.Ci.nsIHandlerInfo.saveToDisk;
    23     handlerInfo.alwaysAskBeforeHandling = false;
    24     handlerInfo.preferredApplicationHandler = null;
    26     const handlerSvc = SpecialPowers.Cc["@mozilla.org/uriloader/handler-service;1"]
    27       .getService(SpecialPowers.Ci.nsIHandlerService);
    28     handlerSvc.store(handlerInfo);
    30     var dirProvider = SpecialPowers.Cc["@mozilla.org/file/directory_service;1"]
    31       .getService(SpecialPowers.Ci.nsIProperties);
    32     var profileDir = dirProvider.get("ProfDS", SpecialPowers.Ci.nsIFile);
    33     profileDir.append("downloads");
    35     var prefs = SpecialPowers.Cc["@mozilla.org/preferences-service;1"]
    36       .getService(SpecialPowers.Ci.nsIPrefService);
    37     prefs = prefs.getBranch("browser.download.");
    39     prefs.setCharPref("dir", profileDir.path);
    40     prefs.setBoolPref("useDownloadDir", true);
    41     prefs.setIntPref("folderList", 2);
    42     prefs.setBoolPref("manager.closeWhenDone", true);
    43     prefs.setBoolPref("manager.showWhenStarting", false);
    45     var theWindow = window;
    47     var useJSTransfer = false;
    48     try {
    49       // This method throws an exception if the old Download Manager is disabled.
    50       Services.downloads.activeDownloadCount;
    51     } catch (ex) {
    52       useJSTransfer = true;
    53     }
    55     if (useJSTransfer) {
    56       var Downloads = SpecialPowers.Cu.import("resource://gre/modules/Downloads.jsm").Downloads;
    57       Downloads.getList(Downloads.PUBLIC).then(list => {
    58         list = SpecialPowers.wrap(list);
    59         list.addView({
    60           onDownloadAdded: function (aDownload) {
    61             list.removeView(this);
    62             SpecialPowers.wrap(aDownload).whenSucceeded().then(() => {
    63               list.removeFinished();
    64               theWindow.location = "bug383369step2.html";
    65             });
    66           },
    67         });
    68         window.location = "download.auto";
    69       }).then(null, SpecialPowers.Cu.reportError);
    71       return;
    72     }
    74     var downloadManager = SpecialPowers.Cc["@mozilla.org/download-manager;1"]
    75       .getService(SpecialPowers.Ci.nsIDownloadManager);
    76     var observer = {
    77       observe: function(subject, topic, data) {
    78         switch (topic) {
    79         case "dl-done":
    80         case "dl-failed":
    81         case "dl-blocked":
    82         case "dl-dirty":
    83           downloadManager.cleanUp();
    84           theWindow.location = "bug383369step2.html";
    85           observerService.removeObserver(this, "dl-done");
    86           observerService.removeObserver(this, "dl-failed");
    87           observerService.removeObserver(this, "dl-blocked");
    88           observerService.removeObserver(this, "dl-dirty");
    89           break;
    90         }
    91       }
    92     };
    93     var observerService = SpecialPowers.Cc["@mozilla.org/observer-service;1"]
    94       .getService(SpecialPowers.Ci.nsIObserverService);
    95     observerService.addObserver(observer, "dl-done", false);
    96     observerService.addObserver(observer, "dl-failed", false);
    97     observerService.addObserver(observer, "dl-blocked", false);
    98     observerService.addObserver(observer, "dl-dirty", false);
   100     window.location = "download.auto";
   101   }
   103   function afterNavigationTest()
   104   {
   105   }
   107   testCleanUp = function cleanup()
   108   {
   109     const mimeSvc = SpecialPowers.Cc["@mozilla.org/mime;1"]
   110       .getService(SpecialPowers.Ci.nsIMIMEService);
   111     var handlerInfo = mimeSvc.getFromTypeAndExtension("application/x-auto-download", "auto");
   113     const handlerSvc = SpecialPowers.Cc["@mozilla.org/uriloader/handler-service;1"]
   114       .getService(SpecialPowers.Ci.nsIHandlerService);
   115     handlerSvc.remove(handlerInfo);
   117     var prefs = SpecialPowers.Cc["@mozilla.org/preferences-service;1"]
   118       .getService(SpecialPowers.Ci.nsIPrefService);
   119     prefs = prefs.getBranch("browser.download.");
   121     var prefKeys = ["dir", "useDownloadDir", "folderList", 
   122                     "manager.closeWhenDone", "manager.showWhenStarting"];
   123     for (var i = 0; i < prefKeys.length; i++)
   124       if (prefs.prefHasUserValue(prefKeys[i]))
   125         prefs.clearUserPref(prefKeys[i]);
   126   }
   128   </script>
   129 </head>
   131 <body>
   132 </body>
   133 </html>

mercurial