Closed Bug 647296 Opened 13 years ago Closed 13 years ago

crashreporter.exe and updater.exe creates HKEY_CURRENT_USER\Software\Classes\Applications as a volatile key

Categories

(Toolkit :: Crash Reporting, defect)

x86_64
Windows 7
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla7

People

(Reporter: stkent, Assigned: robert.strong.bugs)

References

Details

(Whiteboard: [bugday-20110513])

Attachments

(1 file)

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16
Build Identifier: CrashReporter included with most recent version of Firefox

CrashReporter.exe creates the registry key HKEY_CURRENT_USER\Software\Classes\Applications if it does not exist. This key is created as a volatile key, meaning it is deleted at logoff. Windows system components that use this key do not expect it to be volatile.

Reproducible: Always

Actual Results:  
HKEY_CURRENT_USER\Software\Classes\Applications is created as volatile

Expected Results:  
HKEY_CURRENT_USER\Software\Classes\Applications is created as a normal key
Component: General → Breakpad Integration
Product: Core → Toolkit
QA Contact: general → breakpad.integration
Version: unspecified → Trunk
This was done intentionally, so I assume there's a reason.
Blocks: 575266
This is done to prevent the context menu from having Pin to taskbar, etc. while breakpad is running.

What windows system components have a problem with the key being deleted on OS reboot and what problems do they have?
Stephen, can we please get feedback given the question in comment 2? Thanks.
Whiteboard: [bugday-20110513]
Hi Henrik,

The problem is that persistent keys cannot be created under a volatile key and volatile keys cannot be "upgraded" to persistent keys without deleting the key and recreating it. Once the Applications key is created as a volatile key, other programs are unable to create nonvolatile keys under it. 

If you do not wish your program to be able to be pinned, please see this article: http://blogs.msdn.com/b/oldnewthing/archive/2011/06/01/10170113.aspx
That is understood but the question as to what system components are having a problem with this has not been answered.
Specifically, that blog post has a link to an msdn article for using the method that is used in this instance. In the article and in the blog post there is no mention that volatile keys should not be used.
Ah, I did not see the msdn page.

What is broken: The "Applications" key is used by any application to register itself with certain extensions. When the Applications key is created as volatile, other applications can't register for extensions.

What we're asking is pretty simple. Do the create key in two steps. Create the HKEY_CURRENT_USER\Software\Classes\Applications key normally. Then create your key under it as volatile.
Thanks for the details... that is a fair request.
Status: UNCONFIRMED → NEW
Ever confirmed: true
Summary: CrashReporter.exe creates HKEY_CURRENT_USER\Software\Classes\Applications as a volatile key → crashreporter.exe and updater.exe creates HKEY_CURRENT_USER\Software\Classes\Applications as a volatile key
Attached patch patch rev1Splinter Review
Simple fix so the Applications registry key is create non volatile so other applications can add themselves to it.
Assignee: nobody → robert.bugzilla
Status: NEW → ASSIGNED
Attachment #537871 - Flags: review?(khuey)
Comment on attachment 537871 [details] [diff] [review]
patch rev1

Looks good.  r=me
Attachment #537871 - Flags: review?(khuey) → review+
Pushed to mozilla-central
http://hg.mozilla.org/mozilla-central/rev/e819e0d3e820
Status: ASSIGNED → RESOLVED
Closed: 13 years ago
Flags: in-testsuite-
Flags: in-litmus-
Resolution: --- → FIXED
Target Milestone: --- → mozilla7
Mozilla/5.0 (Windows NT 6.1; rv:7.0) Gecko/20100101 Firefox/7.0

Can anyone please help me with a test case or with STR/guidelines in order to get this issue checked on QA side?
Thanks!
Restart your computer, open regedit, open the HKEY_CURRENT_USER\Software\Classes\Applications key, launch crashreporter.exe, verify that a key is created for crashreporter.exe under HKEY_CURRENT_USER\Software\Classes\Applications, create a new key named test under HKEY_CURRENT_USER\Software\Classes\Applications (if this works then you have verified this bug has been fixed and I just verified it), and delete the key named test that you manually created.
to do the same for the updater you should perform all of the above steps but instead of launching it manually apply an update.
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: