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