mozilla-nsSound.patch
author Wolfgang Rosenauer <wr@rosenauer.org>
Mon, 25 Jun 2012 11:08:07 +0200
branchfirefox13
changeset 489 f5ef195f348b
parent 445 b8a9179c123d
permissions -rw-r--r--
13.0.2 with adopted mozilla-prefer_plugin_pref.patch
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
445
b8a9179c123d - 13.0b3
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     1
b8a9179c123d - 13.0b3
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     2
# HG changeset patch
b8a9179c123d - 13.0b3
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     3
# User Wolfgang Rosenauer <wr@rosenauer.org>
b8a9179c123d - 13.0b3
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     4
# Date 1336632642 -7200
b8a9179c123d - 13.0b3
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     5
# Node ID 56cc5a3c431612fa98f0550f02a9f34b566e1d9b
b8a9179c123d - 13.0b3
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     6
# Parent 307671d73258761245d165e43591d885c7f68b73
b8a9179c123d - 13.0b3
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     7
Bug 749739 - New email sound notification file cannot contain spaces (Linux - Thunderbird 12). r=karlt, a=lsblakk (upstream in FF14)
b8a9179c123d - 13.0b3
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     8
b8a9179c123d - 13.0b3
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     9
diff --git a/widget/gtk2/nsSound.cpp b/widget/gtk2/nsSound.cpp
b8a9179c123d - 13.0b3
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    10
--- a/widget/gtk2/nsSound.cpp
b8a9179c123d - 13.0b3
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    11
+++ b/widget/gtk2/nsSound.cpp
b8a9179c123d - 13.0b3
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    12
@@ -353,23 +353,28 @@ NS_METHOD nsSound::Play(nsIURL *aURL)
b8a9179c123d - 13.0b3
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    13
     bool isFile;
b8a9179c123d - 13.0b3
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    14
     nsresult rv = aURL->SchemeIs("file", &isFile);
b8a9179c123d - 13.0b3
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    15
     if (NS_SUCCEEDED(rv) && isFile) {
b8a9179c123d - 13.0b3
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    16
         ca_context* ctx = ca_context_get_default();
b8a9179c123d - 13.0b3
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    17
         if (!ctx) {
b8a9179c123d - 13.0b3
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    18
             return NS_ERROR_OUT_OF_MEMORY;
b8a9179c123d - 13.0b3
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    19
         }
b8a9179c123d - 13.0b3
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    20
 
b8a9179c123d - 13.0b3
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    21
-        nsCAutoString path;
b8a9179c123d - 13.0b3
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    22
-        rv = aURL->GetPath(path);
b8a9179c123d - 13.0b3
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    23
+        nsCAutoString spec;
b8a9179c123d - 13.0b3
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    24
+        rv = aURL->GetSpec(spec);
b8a9179c123d - 13.0b3
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    25
         if (NS_FAILED(rv)) {
b8a9179c123d - 13.0b3
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    26
             return rv;
b8a9179c123d - 13.0b3
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    27
         }
b8a9179c123d - 13.0b3
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    28
+        gchar *path = g_filename_from_uri(spec.get(), NULL, NULL);
b8a9179c123d - 13.0b3
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    29
+        if (!path) {
b8a9179c123d - 13.0b3
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    30
+            return NS_ERROR_FILE_UNRECOGNIZED_PATH;
b8a9179c123d - 13.0b3
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    31
+        }
b8a9179c123d - 13.0b3
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    32
 
b8a9179c123d - 13.0b3
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    33
-        ca_context_play(ctx, 0, "media.filename", path.get(), NULL);
b8a9179c123d - 13.0b3
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    34
+        ca_context_play(ctx, 0, "media.filename", path, NULL);
b8a9179c123d - 13.0b3
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    35
+        g_free(path);
b8a9179c123d - 13.0b3
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    36
     } else {
b8a9179c123d - 13.0b3
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    37
         nsCOMPtr<nsIStreamLoader> loader;
b8a9179c123d - 13.0b3
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    38
         rv = NS_NewStreamLoader(getter_AddRefs(loader), aURL, this);
b8a9179c123d - 13.0b3
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    39
     }
b8a9179c123d - 13.0b3
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    40
 
b8a9179c123d - 13.0b3
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    41
     return rv;
b8a9179c123d - 13.0b3
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    42
 }
b8a9179c123d - 13.0b3
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    43