Closed Bug 242564 Opened 20 years ago Closed 20 years ago

Default p3p cookie action changed to reject

Categories

(Core :: Networking: Cookies, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: dveditz, Assigned: dveditz)

Details

(Keywords: fixed1.7, regression)

Attachments

(2 files)

The fix in bug 225298 changed the default P3P cookie action from UNKNOWN to
REJECT for default error cases. This is overly harsh considering p3p is the
default cookieBehavior and that the harshest action in the default policy is
FLAGGED.

This also happens to break a legacy proprietary extension that needs to retrieve
and set a cookie without having a channel, which could be a useful thing for
other similar service add-ons.
Assignee: dwitte → dveditz
Attachment #147631 - Flags: superreview?(darin)
Attachment #147631 - Flags: review?(dwitte)
Comment on attachment 147631 [details] [diff] [review]
revert default action (ignore all.js pref change)

>Index: netwerk/cookie/src/nsCookieService.cpp

>     nsCOMPtr<nsIHttpChannel> httpChannel = do_QueryInterface(aChannel);
>-    if (httpChannel) {
>-      // lazily init the P3P service
>-      if (!mP3PService)
>-        mP3PService = do_GetService(NS_COOKIECONSENT_CONTRACTID);
> 
>-      if (mP3PService) {
>-        // get the site policy and a status decision for the cookie
>-        PRBool isForeign = IsForeign(aHostURI, aFirstURI);
>-        mP3PService->GetConsent(aHostURI, httpChannel, isForeign, &aPolicy, &p3pStatus);
>-      }
>+    // lazily init the P3P service
>+    if (!mP3PService)
>+      mP3PService = do_GetService(NS_COOKIECONSENT_CONTRACTID);
>+
>+    if (mP3PService) {
>+      // get the site policy and a status decision for the cookie
>+      PRBool isForeign = IsForeign(aHostURI, aFirstURI);
>+      mP3PService->GetConsent(aHostURI, httpChannel, isForeign, &aPolicy, &p3pStatus);
>     }

is this part of the patch really necessary?  why do we need to
consult the P3P service in the non-HTTP case?  why isn't the
change to all.js sufficient?
The change to all.js is not sufficient because it's still broken for users who
switch back to the current default setting. The pref change, in fact, is
possibly best left to the "remove p3p" bug.

The meat of the fix is changing the initial value for p3pstatus. The part you
quote is mostly whitespace change, it just drops the httpChannel check and lets
the p3p service deal with that case to be more in-line with the pre-225298
logic. nsP3PService::GetConsent explicitly handles no httpChannel (not as an
error) and there's no point in that code if the new cookie code prevented it
getting used.
Comment on attachment 147631 [details] [diff] [review]
revert default action (ignore all.js pref change)

i recall noticing this back when i wrote the original patches, but i neglected
to remedy the logic change... your patch here looks spot-on, thanks for fixing
it.

although, please leave out the pref change in your patch, we have "other plans"
for that. ;)

r=dwitte with pref change omitted
Attachment #147631 - Flags: review?(dwitte) → review+
same patch minus the pref change (which won't be checked in), -w to make the
actual fix stand out from the outdenting noise.
Attachment #147631 - Attachment description: revert default action, change cookieBehavior default → revert default action (ignore all.js pref change)
Comment on attachment 147748 [details] [diff] [review]
same patch -w for review, dropping pref change

sr=darin

ok, sounds good.
Attachment #147748 - Flags: superreview+
Comment on attachment 147748 [details] [diff] [review]
same patch -w for review, dropping pref change

Carrying over dwitte's r=
Attachment #147748 - Flags: review+
Attachment #147748 - Flags: approval1.7?
Comment on attachment 147748 [details] [diff] [review]
same patch -w for review, dropping pref change

a=asa (on behalf of drivers) for checkin to 1.7
Attachment #147748 - Flags: approval1.7? → approval1.7+
Checked in

/cvsroot/mozilla/netwerk/cookie/src/nsCookieService.cpp,v <-- nsCookieService.cpp
new revision: 1.27; previous revision: 1.26

/cvsroot/mozilla/netwerk/cookie/src/nsCookieService.cpp,v <-- nsCookieService.cpp
new revision: 1.22.2.1; previous revision: 1.22
Status: NEW → RESOLVED
Closed: 20 years ago
Keywords: fixed1.7
Resolution: --- → FIXED
Attachment #147631 - Flags: superreview?(darin)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: