Closed
Bug 322169
Opened 19 years ago
Closed 18 years ago
Clear Private Data does not clear JS Console
Categories
(Firefox :: Settings UI, defect)
Firefox
Settings UI
Tracking
()
RESOLVED
FIXED
Firefox 2 beta2
People
(Reporter: dougt, Assigned: zeniko)
References
(Depends on 1 open bug)
Details
(Keywords: fixed1.8.1, privacy)
Attachments
(3 files, 5 obsolete files)
9.99 KB,
patch
|
darin.moz
:
review+
mconnor
:
superreview+
|
Details | Diff | Splinter Review |
13.33 KB,
patch
|
mconnor
:
approval1.8.1+
|
Details | Diff | Splinter Review |
1.51 KB,
patch
|
Details | Diff | Splinter Review |
Clear Private Data does not clear JS Console. There sometimes is private data in the js console.
Comment 1•19 years ago
|
||
The JS console data is not saved across sessions, why should it matter?
Comment 2•19 years ago
|
||
*** Bug 313183 has been marked as a duplicate of this bug. ***
Reporter | ||
Comment 3•19 years ago
|
||
use case. names have been changed to protect the guilty.
1) user goes to some seriously nasty sites.
2) wife comes home.
3) user goes to Tools / Clear Private Data...
4) user selects all checkboxes, and hits enter.
5) wife asks to login to webmail to check her mail.
6) webmail site doesn't layout properly
7) wife debugs webpage using js console.
8) user in shitload of trouble.
seriously -- if you are suggesting that the user exits out of the application (ie, out of the session) before "Clear Private Data..." is completed successfully, then we should let the user know this via a dialog.
Comment 4•19 years ago
|
||
ok, if you're going to try and sneak around someone's back, don't marry someone who smart enough to catch you.
b) a better example would be someone buying an engagement ring for their wife, but doesn't want her to know that he's been shopping around.
Reporter | ||
Comment 5•19 years ago
|
||
abstracting the use case we get to the same thing (i was _trying_ to be funny). Currently if you do not exit the browser your "Private Data" continues to exist. There might be other places, but this is the first thing I noticed.
Updated•19 years ago
|
Flags: blocking1.8.1?
Comment 6•19 years ago
|
||
*** Bug 338882 has been marked as a duplicate of this bug. ***
Assignee | ||
Comment 7•19 years ago
|
||
Attachment #223077 -
Flags: review?(mconnor)
Assignee | ||
Updated•19 years ago
|
OS: Windows XP → All
Hardware: PC → All
Assignee | ||
Comment 8•19 years ago
|
||
This solution is more complete by actually allowing the console service to reset itself.
The remaining issue would be whether (and if so how) to notify the console service listeners about the reset. The proposed solution is to not notify them and add a null message before the reset in the relevant places (which also nicely ensures compatibility with extensions relying on the null messages).
Attachment #223098 -
Flags: review?(darin)
Comment 9•19 years ago
|
||
For Firefox 2 (aka the Mozilla 1.8 branch), we will need to invent a new interface nsIConsoleService_MOZILLA_1_8_BRANCH that extends from nsIConsoleService on which we can define the reset method. We have a policy in place of not changing interfaces between FF 1.5 and 2.
Assignee | ||
Comment 10•19 years ago
|
||
Attachment #223098 -
Attachment is obsolete: true
Attachment #223137 -
Flags: review?(darin)
Attachment #223098 -
Flags: review?(darin)
Comment 11•19 years ago
|
||
Comment on attachment 223137 [details] [diff] [review]
less hacky solution (extends nsIConsoleService_MOZILLA_1_8_BRANCH)
>Index: xpcom/base/nsIConsoleService.idl
>+/**
>+ * Temporary interface for Gecko 1.8.1. Should the console service not be
>+ * improved/replaced for Gecko 1.9 this is be merged with the above.
>+ *
>+ * @status TEMPORARY
>+ */
>+[scriptable, uuid(883472a0-ea9b-11da-8ad9-0800200c9a66)]
>+interface nsIConsoleService_MOZILLA_1_8_BRANCH : nsIConsoleService
>+{
>+ /**
>+ * Clear the message buffer (e.g. for privacy reasons).
>+ */
>+ void reset();
> };
Thanks for creating this interface. Please go ahead and prepare a
second patch for the trunk that modifies nsIConsoleService directly.
We don't want to land any MOZILLA_1_8_BRANCH interfaces on the trunk :)
>Index: xpcom/base/nsConsoleService.cpp
>+NS_IMETHODIMP
>+nsConsoleService::Reset()
>+{
>+ /*
>+ * Make sure nobody trips into the buffer while it's being reset
>+ */
>+ nsAutoLock lock(mLock);
>+
>+ mCurrent = 0;
>+ mFull = PR_FALSE;
>+
>+ /*
>+ * Free all messages stored so far and re-initialize the buffer
>+ */
>+ for (PRUint32 i = 0; i < mBufferSize && mMessages[i] != nsnull; i++)
>+ NS_RELEASE(mMessages[i]);
>+
>+ memset(mMessages, 0, mBufferSize * sizeof(nsIConsoleMessage *));
>+
>+ return NS_OK;
>+}
A couple comments:
1. Maybe you could just loop from 0 to mCurrent instead?
2. NS_RELEASE nulls out its parameter, so the memset is redundant.
>+ this.mCService = isupports.QueryInterface(Components.interfaces.nsIConsoleService_MOZILLA_1_8_BRANCH);
Since the component implements nsIClassInfo, you should be able to remove
the explicit QueryInterface altogether :-)
I had to stop reviewing here. Will continue later...
Assignee | ||
Comment 12•19 years ago
|
||
(In reply to comment #11)
> 1. Maybe you could just loop from 0 to mCurrent instead?
No: when mFull is NS_TRUE the buffer has wrapped around and we'll have to make sure to release all 250 slots (cf. destructor).
Attachment #223137 -
Attachment is obsolete: true
Attachment #223285 -
Flags: review?(darin)
Attachment #223137 -
Flags: review?(darin)
Assignee | ||
Comment 13•19 years ago
|
||
(In reply to comment #11)
> Since the component implements nsIClassInfo, you should be able to remove
> the explicit QueryInterface altogether :-)
I prefer to leave that to a clean-up bug.
Comment 14•19 years ago
|
||
Comment on attachment 223285 [details] [diff] [review]
trunk patch (updated to comments)
>Index: toolkit/components/console/content/consoleBindings.xml
>+ if (msg.message)
>+ this.appendMessage(msg.message);
>+ else // observed a null/"clear" message
>+ this.clearConsole();
It is generally good for readability to use {}'s whenever coding
an else statement. I recommend the following:
if (msg.message) {
this.appendMessage(msg.message);
} else { // observed a null/"clear" message
this.clearConsole();
}
OK, r=darin
I'd like mconnor to also review this change.
Attachment #223285 -
Flags: superreview?(mconnor)
Attachment #223285 -
Flags: review?(darin)
Attachment #223285 -
Flags: review+
Assignee | ||
Comment 15•18 years ago
|
||
Attachment #223287 -
Attachment is obsolete: true
Assignee | ||
Updated•18 years ago
|
Attachment #223077 -
Flags: review?(mconnor)
Assignee | ||
Updated•18 years ago
|
Status: NEW → ASSIGNED
Flags: blocking-firefox2?
Target Milestone: --- → Firefox 2 beta2
Comment 16•18 years ago
|
||
Will review this later today.
Flags: blocking-firefox2? → blocking-firefox2+
Comment 17•18 years ago
|
||
Comment on attachment 223285 [details] [diff] [review]
trunk patch (updated to comments)
Looks good for trunk.
Attachment #223285 -
Flags: superreview?(mconnor) → superreview+
Assignee | ||
Updated•18 years ago
|
Assignee: nobody → zeniko
Status: ASSIGNED → NEW
Whiteboard: [checkin needed]
Comment 18•18 years ago
|
||
mozilla/browser/components/nsBrowserGlue.js 1.20
mozilla/toolkit/components/console/content/consoleBindings.xml 1.12
mozilla/xpcom/base/nsConsoleService.cpp 3.22
mozilla/xpcom/base/nsIConsoleService.idl 3.6
Status: NEW → RESOLVED
Closed: 18 years ago
Resolution: --- → FIXED
Whiteboard: [checkin needed]
Assignee | ||
Comment 19•18 years ago
|
||
Drivers: This patch extends the console service with a Reset method (on a branch-specific interface), makes the console use it and adds an observer for Clear Private Data which also triggers it. Hardly risky.
Attachment #223077 -
Attachment is obsolete: true
Attachment #225118 -
Attachment is obsolete: true
Attachment #229998 -
Flags: approval1.8.1?
Comment 20•18 years ago
|
||
Comment on attachment 229998 [details] [diff] [review]
branch patch (including fix for bug 345327)
a=mconnor on behalf of drivers for checkin to the 1.8 branch
Attachment #229998 -
Flags: approval1.8.1? → approval1.8.1+
Assignee | ||
Updated•18 years ago
|
Whiteboard: [checkin needed (1.8 branch)]
Comment 21•18 years ago
|
||
mozilla/toolkit/components/console/content/consoleBindings.xml 1.9.2.3
mozilla/browser/components/nsBrowserGlue.js 1.4.2.12
mozilla/xpcom/base/nsConsoleService.h 3.7.8.1
mozilla/xpcom/base/nsConsoleService.cpp 3.19.8.1
mozilla/xpcom/base/nsIConsoleService.idl 3.5.28.1
Keywords: fixed1.8.1
Whiteboard: [checkin needed (1.8 branch)]
Comment 22•18 years ago
|
||
Not sure if this is the cause but using build: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1b1) Gecko/20060725 BonEcho/2.0b1 ID:2006072518 I no longer have any data in the Error Console but did in the previous build (build prior to this checkin). This occurs in both FF modes (Normal/Safe Mode). The Error Console is "empty" for every single site I go to in both modes.
~B
Comment 23•18 years ago
|
||
Also... Shouldn't there be an option to enable/disable this in the configuration for "Clear Private Data" to be consistent?
~B
Assignee | ||
Comment 24•18 years ago
|
||
Gavin: It seems that this one line was somehow garbled during check-in. Could you please correct it?
Comment 25•18 years ago
|
||
Bryan, please feel free to file a follow-up bug on the issue you mentioned and make it depend/block this bug, but commenting in this bug is not very productive.
Comment 26•18 years ago
|
||
Gah, sorry. To get your patch to apply I needed to replace the instance of MOZILLA_1_8 in the file paths with mozilla, but I wasn't careful enough to verify that the changes I made didn't affect other parts of the patch.
I checked in the fix.
Comment 27•18 years ago
|
||
(In reply to comment #26)
> Gah, sorry. To get your patch to apply I needed to replace the instance of
> MOZILLA_1_8 in the file paths with mozilla, but I wasn't careful enough to
> verify that the changes I made didn't affect other parts of the patch.
>
> I checked in the fix.
Well after the fix for the fix "Clear Private Data" now does not clear the Error Console in both FF modes (Normal / Safe Mode) using build: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1b1) Gecko/20060725 BonEcho/2.0b1 ID:2006072601
~B
Assignee | ||
Comment 28•18 years ago
|
||
(In reply to comment #27)
> Well after the fix for the fix "Clear Private Data" now does not clear the
> Error Console
Indeed. If LXR now has finally caught up with Gavin's check-in, then it seems that the s/mozilla/MOZILLA_1_8/g issue affects the whole patch (i.e. also nsBrowserGlue.js, nsIConsoleService.idl and nsConsoleService.*).
Not sure what the best solution is for this issue. Maybe backing both branch changes out and reapplying the original branch patch with s|MOZILLA_1_8/|mozilla/|g ?
Anyway, sorry for these issues. I'll look into making branch patches which apply immediately.
BTW: Gavin, maybe you could check-in the patch to bug 345327 as well. It's got implicit r+ through the a+ to the branch patch and is probably annoying the heck out of some trunk testers.
Comment 29•18 years ago
|
||
(In reply to comment #28)
> Indeed. If LXR now has finally caught up with Gavin's check-in, then it seems
> that the s/mozilla/MOZILLA_1_8/g issue affects the whole patch (i.e. also
> nsBrowserGlue.js, nsIConsoleService.idl and nsConsoleService.*).
Argh! I had already fixed the compiled files, since the change had caused bustage, but I didn't think to check the other files. I've fixed the one occurrence that LXR finds (in nsBrowserGlue), and tested that it does indeed fix the Clear button issue.
Comment 30•18 years ago
|
||
I just filed BUG: https://bugzilla.mozilla.org/show_bug.cgi?id=346372 requesting a Clear private data option enhancement. Now that this bug has landed
and clears the Error Console every time I "Clear Private Data" I have no way of
configuring this in the "Clear Private Data - Select items to be cleared
dialog". Many users would expect this to be configurable by way of a seperate
"Error Console" checkbox!
Comment 31•18 years ago
|
||
*** Bug 350587 has been marked as a duplicate of this bug. ***
Comment 32•18 years ago
|
||
*** Bug 353133 has been marked as a duplicate of this bug. ***
Comment 33•18 years ago
|
||
*** Bug 359140 has been marked as a duplicate of this bug. ***
You need to log in
before you can comment on or make changes to this bug.
Description
•