mozilla-bmo1233434.patch
author Wolfgang Rosenauer <wr@rosenauer.org>
Thu, 31 Dec 2015 09:44:43 +0100
branchfirefox43
changeset 895 b0e57b478b1b
parent 892 571212dc4d05
permissions -rw-r--r--
merge change from mozilla:Factory (libXcomposite-devel requirement)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
892
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     1
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     2
# HG changeset patch
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     3
# User Aidin Gharibnavaz <aidin@aidinhut.com>
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     4
# Date 1450550460 -12600
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     5
# Node ID 07ec362866977f37e638fc88e3079621fd7aef96
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     6
# Parent  cb66ffeb6725e8344818e8e2f707ae2eaeb953b4
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     7
Bug 1233434 - Fixing download failure on a multi-user GNU/Linux machine. r?bagder
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     8
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     9
diff -r cb66ffeb6725 -r 07ec36286697 uriloader/exthandler/nsExternalHelperAppService.cpp
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    10
--- a/uriloader/exthandler/nsExternalHelperAppService.cpp	Tue Dec 15 14:45:06 2015 +0100
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    11
+++ b/uriloader/exthandler/nsExternalHelperAppService.cpp	Sat Dec 19 22:11:00 2015 +0330
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    12
@@ -416,12 +416,12 @@
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    13
     const char* userName = PR_GetEnv("USERNAME");
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    14
     if (!userName || !*userName) {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    15
       userName = PR_GetEnv("USER");
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    16
-      if (!userName || !*userName) {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    17
-        userName = PR_GetEnv("LOGNAME");
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    18
-      }
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    19
-      else {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    20
-        userName = "mozillaUser";
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    21
-      }
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    22
+    }
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    23
+    if (!userName || !*userName) {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    24
+      userName = PR_GetEnv("LOGNAME");
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    25
+    }
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    26
+    if (!userName || !*userName) {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    27
+      userName = "mozillaUser";
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    28
     }
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    29
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    30
     nsAutoString userDir;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    31
@@ -447,7 +447,12 @@
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    32
         rv = finalPath->GetPermissions(&permissions);
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    33
         NS_ENSURE_SUCCESS(rv, rv);
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    34
 
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    35
-        if (permissions == PR_IRWXU) {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    36
+        // Ensuring the path is writable by the current user.
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    37
+        bool isWritable;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    38
+        rv = finalPath->IsWritable(&isWritable);
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    39
+        NS_ENSURE_SUCCESS(rv, rv);
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    40
+
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    41
+        if (permissions == PR_IRWXU && isWritable) {
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    42
           dir = finalPath;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    43
           break;
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    44
         }
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    45