Open Bug 574515 Opened 14 years ago Updated 2 years ago

updating hangs with 'downloading..' message instead of saying 'not enough permissions'

Categories

(Firefox :: General, defect)

x86
Linux
defect

Tracking

()

UNCONFIRMED

People

(Reporter: svetlana, Unassigned)

Details

In the Nightly, when I click Help > Check for updates, it prompts that 'you do not have the permissions' in a new dialog (I didn't run it as superuser)

However, when the update notification shows up by itself in a new dialog and I hit 'update', it goes to the 'downloading..' message, "pause" button is disabled, and it says nothing about wrong permissions. Actually, the download should not even start if I don't have them.

This issue is happening in new profile as well.
making it UNCONFIRMED (no idea how to do it right when reporting)
Status: NEW → UNCONFIRMED
Ever confirmed: false
Reporter, can you still reproduce this bug in Firefox 6?

Please update to Firefox 6 or later, update your plugins, and retest in a new profile. If you still see the issue with the updated version of Firefox, please post here. Otherwise, please close as RESOLVED > WORKSFORME.

http://getfirefox.com/
I'm able to reproduce this.  Here's how:

1. As an admin user, install an old copy of Firefox in Mac OS X (Firefox 29.0.1, Mac OS X 10.9.5 used in my testing.  Firefox 33.1 is the latest as of this comment.)
2. Run once to clear the OS X Gatekeeper "Firefox was downloaded from the internet." warning, quit immediately before Firefox can update itself.
3. Create a standard user, and switch to the new standard user.
4. Launch Firefox.  An update notification will appear and go away in a moment.
5. Visit about:config, set app.update.log to true.  Quit and restart Firefox.
6. Wait for the Software Update dialog to open itself.
7. Click Update Firefox. 
8. Observe Software Update hangs at "Downloading Firefox" (Connecting to the update server...)
9. Observe in the Browser console:


AUS:SVC Creating Downloader
AUS:SVC UpdateService:_downloadUpdate
AUS:SVC readStatusFile - status: downloading, path: /Applications/Firefox.app/Contents/MacOS/updates/0/update.status
AUS:UI gDownloadingPage:onPageShow - error: [Exception... "Component returned failure code: 0x80520015 (NS_ERROR_FILE_ACCESS_DENIED) [nsIFileOutputStream.init]"  nsresult: "0x80520015 (NS_ERROR_FILE_ACCESS_DENIED)"  location: "JS frame :: resource://gre/components/nsUpdateService.js :: UM__writeUpdatesToXMLFile :: line 2799"  data: no]


Step 2 is optional, but if not done Gatekeeper will present the warning to the standard user every time he tries to launch Firefox.
For reference, when the standard user launches Firefox, this appears in the Browser Console:

Could not read chrome manifest 'file:///Applications/Firefox.app/Contents/MacOS/chrome.manifest'.
Could not read chrome manifest 'file:///Applications/Firefox.app/Contents/MacOS/browser/extensions/%7B972ce4c6-7e08-4474-a285-3208198ce6fd%7D/chrome.manifest'.
While creating services from category 'profile-after-change', could not create service for entry 'Disk Space Watcher Service', contract ID '@mozilla.org/toolkit/disk-space-watcher;1'
AUS:SVC Creating UpdateService
AUS:SVC gCanCheckForUpdates - able to check for updates
AUS:SVC gCanApplyUpdates - testing write access /Applications/Firefox.app/Contents/MacOS/update.test
AUS:SVC gCanApplyUpdates - unable to apply updates. Exception: [Exception... "Component returned failure code: 0x80520015 (NS_ERROR_FILE_ACCESS_DENIED) [nsIFile.create]"  nsresult: "0x80520015 (NS_ERROR_FILE_ACCESS_DENIED)"  location: "JS frame :: resource://gre/components/nsUpdateService.js :: testWriteAccess :: line 328"  data: no]
AUS:SVC UpdateService:_postUpdateProcessing - unable to apply updates... returning early
AUS:SVC readStatusFile - status: downloading, path: /Applications/Firefox.app/Contents/MacOS/updates/0/update.status
[Exception... "Component returned failure code: 0x80520015 (NS_ERROR_FILE_ACCESS_DENIED) [nsIFileOutputStream.init]"  nsresult: "0x80520015 (NS_ERROR_FILE_ACCESS_DENIED)"  location: "JS frame :: resource://gre/components/nsUpdateService.js :: UM__writeUpdatesToXMLFile :: line 2799"  data: no] nsUpdateService.js:2799
While creating services from category 'profile-after-change', could not create service for entry 'nsUpdateServiceStub', contract ID '@mozilla.org/updates/update-service-stub;1'
UTM:SVC TimerManager:registerTimer - id: browser-cleanup-thumbnails
AUS:SVC getLocale - getting locale from file: resource://gre/update.locale, locale: en-US
AUS:SVC Checker:getUpdateURL - update URL: https://aus3.mozilla.org/update/3/Firefox/29.0.1/20140506152807/Darwin_x86_64-gcc3-u-i386-x86_64/en-US/release/Darwin%2013.4.0/default/default/update.xml
AUS:SVC Checker: checkForUpdates, force: false
AUS:SVC Checker:getUpdateURL - update URL: https://aus3.mozilla.org/update/3/Firefox/29.0.1/20140506152807/Darwin_x86_64-gcc3-u-i386-x86_64/en-US/release/Darwin%2013.4.0/default/default/update.xml
AUS:SVC Checker:checkForUpdates - sending request to: https://aus3.mozilla.org/update/3/Firefox/29.0.1/20140506152807/Darwin_x86_64-gcc3-u-i386-x86_64/en-US/release/Darwin%2013.4.0/default/default/update.xml
AUS:SVC Checker:onLoad - request completed downloading document
AUS:SVC Checker:getUpdateURL - update URL: https://aus3.mozilla.org/update/3/Firefox/29.0.1/20140506152807/Darwin_x86_64-gcc3-u-i386-x86_64/en-US/release/Darwin%2013.4.0/default/default/update.xml
AUS:SVC Checker:onLoad - number of updates available: 1
AUS:SVC UpdateService:_selectAndInstallUpdate - the user is unable to apply updates... prompting
1415732200093	Services.HealthReport.HealthReporter	WARN	Saved state file does not exist.

1415732200093	Services.HealthReport.HealthReporter	WARN	No prefs data found.

this.controller is undefined
Under Preferences -> Advanced -> Update, Firefox updates is set to "Automatically install updates".  The expected behavior is Firefox would update itself with a setuid binary or system service.
Also tested with Firefox 33.0.3 on 10.8.5.  Same failure, Browser Console reports:

AUS:UI gUpdates:onLoad - setting current page to startpage updatesfoundbasic
AUS:SVC Creating Downloader
AUS:SVC UpdateService:_downloadUpdate
AUS:SVC readStringFromFile - file doesn't exist: /Applications/Firefox.app/Contents/MacOS/updates/0/update.status
AUS:SVC readStatusFile - status: null, path: /Applications/Firefox.app/Contents/MacOS/updates/0/update.status
NS_ERROR_FILE_ACCESS_DENIED: Component returned failure code: 0x80520015 (NS_ERROR_FILE_ACCESS_DENIED) [nsIFileOutputStream.init] nsUpdateService.js:2844
AUS:UI gDownloadingPage:onPageShow - error: [Exception... "Component returned failure code: 0x80520015 (NS_ERROR_FILE_ACCESS_DENIED) [nsIFileOutputStream.init]"  nsresult: "0x80520015 (NS_ERROR_FILE_ACCESS_DENIED)"  location: "JS frame :: resource://gre/components/nsUpdateService.js :: UM__writeUpdatesToXMLFile :: line 2844"  data: no]
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.