Back out c91b18cafc64 (bug 960749)
authorPhil Ringnalda <philringnalda@gmail.com>
Tue, 18 Mar 2014 20:40:12 -0700
changeset 174231 2709c36738d11d007eab94da3d0745ce665d7c3a
parent 174230 a23eb9fd15832d85c9f1899e854176e27afcda7a
child 174232 cce47e0594310065d59060d0b1c81fe78bf7baa6
push id41226
push userphilringnalda@gmail.com
push dateWed, 19 Mar 2014 03:40:25 +0000
treeherdermozilla-inbound@2709c36738d1 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs960749
milestone31.0a1
backs outc91b18cafc64c27e7f23860a0f2d8c3fb57fe12a
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Back out c91b18cafc64 (bug 960749) CLOSED TREE
dom/downloads/src/DownloadsIPC.jsm
dom/downloads/tests/mochitest.ini
dom/downloads/tests/test_downloads_bad_file.html
xpcom/glue/nsCRTGlue.h
--- a/dom/downloads/src/DownloadsIPC.jsm
+++ b/dom/downloads/src/DownloadsIPC.jsm
@@ -76,17 +76,17 @@ this.DownloadsIPC = {
     // We actually have an array of downloads.
     aDownloads.forEach((aDownload) => {
       this.downloads[aDownload.id] = aDownload;
     });
   },
 
   receiveMessage: function(aMessage) {
     let download = aMessage.data;
-    debug("message: " + aMessage.name);
+    debug("message: " + aMessage.name + " " + download.id);
     switch(aMessage.name) {
       case "Downloads:GetList:Return":
         this._updateDownloadsArray(download);
 
         if (!this.ready) {
           this.getListPromises.forEach(aPromise =>
                                        aPromise.resolve(this.downloads));
           this.getListPromises.length = 0;
--- a/dom/downloads/tests/mochitest.ini
+++ b/dom/downloads/tests/mochitest.ini
@@ -1,12 +1,11 @@
 [DEFAULT]
 skip-if = buildapp == 'b2g' # bug 979446, frequent failures
 support-files =
   serve_file.sjs
 
 [test_downloads_navigator_object.html]
 [test_downloads_basic.html]
 [test_downloads_large.html]
-[test_downloads_bad_file.html]
 [test_downloads_pause_remove.html]
 [test_downloads_pause_resume.html]
 skip-if = toolkit=='gonk' # b2g(bug 947167) b2g-debug(bug 947167)
deleted file mode 100644
--- a/dom/downloads/tests/test_downloads_bad_file.html
+++ /dev/null
@@ -1,93 +0,0 @@
-<!DOCTYPE html>
-<html>
-<!--
-https://bugzilla.mozilla.org/show_bug.cgi?id=960749
--->
-<head>
-  <title>Test for Bug 960749 Downloads API</title>
-  <script type="text/javascript" src="/MochiKit/MochiKit.js"></script>
-  <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.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=960749">Mozilla Bug 960749</a>
-<p id="display"></p>
-<div id="content" style="display: none">
-</div>
-<a href="serve_file.sjs?contentType=application/octet-stream&size=1024" download=".&lt;.EVIL.&gt;\ / : * ? &quot; |file.bin" id="download1">Download #1</a>
-<pre id="test">
-<script class="testbody" type="text/javascript;version=1.7">
-
-// Testing a simple download, waiting for it to be done.
-
-SimpleTest.waitForExplicitFinish();
-
-var index = -1;
-var expected = "_.EVIL.__ _ _ _ _ _ _file.bin";
-
-function next() {
-  index += 1;
-  if (index >= steps.length) {
-    ok(false, "Shouldn't get here!");
-    return;
-  }
-  try {
-    steps[index]();
-  } catch(ex) {
-    ok(false, "Caught exception", ex);
-  }
-}
-
-function checkTargetFilename(download) {
-  ok(download.path.endsWith(expected),
-     "Download path leaf name '" + download.path +
-     "' should match '" + expected + "' filename.");
-
-  SimpleTest.finish();
-}
-
-function downloadChange(evt) {
-  var download = evt.download;
-
-  if (download.state === "succeeded") {
-    checkTargetFilename(download);
-  }
-}
-
-function downloadStart(evt) {
-  var download = evt.download;
-  download.onstatechange = downloadChange;
-}
-
-var steps = [
-  // Start by setting the pref to true.
-  function() {
-    SpecialPowers.pushPrefEnv({
-      set: [["dom.mozDownloads.enabled", true]]
-    }, next);
-  },
-
-  // Setup the event listeners.
-  function() {
-    SpecialPowers.pushPermissions([
-      {type: "downloads", allow: true, context: document}
-    ], function() {
-      navigator.mozDownloadManager.ondownloadstart = downloadStart;
-      next();
-    });
-  },
-
-  // Click on the <a download> to start the download.
-  function() {
-    document.getElementById("download1").click();
-  }
-];
-
-next();
-
-</script>
-</pre>
-</body>
-</html>
-
--- a/xpcom/glue/nsCRTGlue.h
+++ b/xpcom/glue/nsCRTGlue.h
@@ -105,28 +105,27 @@ NS_COM_GLUE void NS_MakeRandomString(cha
 
 #define FF '\f'
 #define TAB '\t'
 
 #define CRSTR "\015"
 #define LFSTR "\012"
 #define CRLF "\015\012"     /* A CR LF equivalent string */
 
-// We use the most restrictive filesystem as our default set of illegal filename
-// characters. This is currently Windows.
-#define OS_FILE_ILLEGAL_CHARACTERS "\\/:*?\"<>|"
-
 #if defined(XP_MACOSX)
   #define FILE_PATH_SEPARATOR        "/"
+  #define OS_FILE_ILLEGAL_CHARACTERS ":"
 #elif defined(XP_WIN)
   #define FILE_PATH_SEPARATOR        "\\"
+  #define OS_FILE_ILLEGAL_CHARACTERS "/:*?\"<>|"
 #elif defined(XP_UNIX)
   #define FILE_PATH_SEPARATOR        "/"
+  #define OS_FILE_ILLEGAL_CHARACTERS ""
 #else
-  #error need_to_define_your_file_path_separator_and_maybe_illegal_characters
+  #error need_to_define_your_file_path_separator_and_illegal_characters
 #endif
 
 // Not all these control characters are illegal in all OSs, but we don't really
 // want them appearing in filenames
 #define CONTROL_CHARACTERS     "\001\002\003\004\005\006\007" \
                            "\010\011\012\013\014\015\016\017" \
                            "\020\021\022\023\024\025\026\027" \
                            "\030\031\032\033\034\035\036\037"