New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 673489 link

Starred by 4 users

Issue metadata

Status: Verified
Owner:
Closed: Jan 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 1
Type: Bug

Restricted
  • Only users with EditIssue permission may comment.



Sign in to add a comment

Android keeps Incognito cookie jar around when tabs are closed if CCT is open

Project Member Reported by dfalcant...@chromium.org, Dec 12 2016

Issue description

Pulled from reddit:
https://www.reddit.com/r/Android/comments/5hw071/android_multiwindow_breaks_google_chrome/

>>>
I'm hoping someone can double check this for me, but I have been able to replicate the issue on both my Nexus 6 and LG V20 (both running Android 7.0):

Steps to repro:
1) Open an incognito tab in Google Chrome
2) Enable dual-window/multi-window
3) Open a second incognito tab in Google Chrome
4) Move one of the incognito tabs to the other window
5) Optional: sign into an account on any website (such as your gmail account)
6) Close both incognito windows
7) Optional: disable dual-window/multi-window
8) Open another incognito tab and go to your account from step 5 - your previously signed in account will still be signed in.

Observed behavior:
Even after all incognito windows are closed manually, the notification to close incognito tabs remains active and tapping it appears to have no effect. The only way I have found to remove it is to completely restart the phone.

Furthermore, it seems that cookies and other data from the incognito windows remain present until the phone is restarted (or if the issue is fixed any other way).
<<<

Looks like something is going wacky with the OffTheRecordTabModels.  Putting twellington@ and tedchoc@ on here because it hits multi-window and notifications.
 
From a comment: force-stopping Clank nukes the cookie jar, as expected.
Cc: twelling...@chromium.org
Labels: Needs-Bisect Clank-TE
Owner: agrieve@chromium.org
Status: Assigned (was: Untriaged)
Summary: Android keeps Incognito cookie jar around when tabs are closed if CCT is open (was: Android multi-window keeps Incognito cookie jar around when tabs are closed)
+agrieve -- this sound similar to issue 626629 - which had to do with a CCT remaining open. I reproduced on my Pixel running Chrome 54.0.2840.85/Android NMF260 with these steps:

1. Open a CCT (e.g. open a link in gmail).
2. Open Chrome (whichever Chrome channel is associated with the open CCT).
3. Open an incognito tab, navigate to a website and sign in to an account.
4. Go to Android recents and swipe away Chrome. At this point, the incognito notification is still present.
5. Tap on the notification to close incognito tabs; it disappears.
6. Open Chrome, open an incognito tab and navigate back to the website in #3. The account is still signed in.

+clank-te -- can we please identify a regression range for this since issue 626629 was verified as fixed in M52?


-----

I haven't been able to reproduce the issue with the notification not getting dismissed, but it's possible something is going wrong with deleting the tab state files. In IncognitoNotificationService#onHandleIntent(), if there are incognito tab state files left after we attempt to clear them, then we return early without dismissing the incognito notification. Ted, thoughts on the notification not getting dismissed after tapping?

Comment 3 by jay...@chromium.org, Dec 13 2016

Labels: -Needs-Bisect
Re:#2 - I can still reproduce this behavior on the build that was verified in issue 626629 (52.0.2743.91), and back until M45 Stable (45.0.2454.94) on a Nexus 5X / MOB29Z. This doesn't seem like a regression.

Comment 4 by jay...@chromium.org, Dec 13 2016

As for the steps in the bug description, I can reproduce the issue with the notification not getting dismissed. This is reproducible back up to the factory image of Chrome Stable 51.0.2704.90 on a Nexus 6P / NRD90T. Video of the repro is here: http://go/chrome-androidlogs1/6/673489
I'm going to split off a second bug for the incognito notification issue. jaykery@ - I was able to reproduce this on my Nexus 6P after all. If you re-open Chrome after closing it out in Android recents, does the notification disappear?

Comment 6 by jay...@chromium.org, Dec 13 2016

It does indeed! :)
Thank you for checking. Filed issue 673582 to track the incognito notification not dismissing.

Comment 8 Deleted

Comment 9 by vabr@chromium.org, Dec 13 2016

Components: UI>Browser>Incognito Privacy

Comment 10 Deleted

Labels: Restrict-AddIssueComment-EditIssue
Project Member

Comment 12 by bugdroid1@chromium.org, Dec 14 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1a81653525d7b252a2d37e7c489604126d917984

commit 1a81653525d7b252a2d37e7c489604126d917984
Author: tedchoc <tedchoc@chromium.org>
Date: Wed Dec 14 22:19:46 2016

Fix incognito notification/cleanup for android multiwindow.

When moving an NTP (very specific to the NTP URL) across
CTA instances, it would put the ref in AsyncTabParams, but
would not use it when creating the tab in the second window.

This was bad because it kept a reference to the incognito
tab forever (preventing the profile from being deleted and
the notification from going away).

This also changes the PendingIntent flag to allow the
notification to take an action as long as it is visible
(then if cleaning up the incognito tabs fails the first
time, the second click might succeed).

BUG=673582,  673489 

Review-Url: https://codereview.chromium.org/2574143004
Cr-Commit-Position: refs/heads/master@{#438648}

[modify] https://crrev.com/1a81653525d7b252a2d37e7c489604126d917984/chrome/android/java/src/org/chromium/chrome/browser/ChromeSwitches.java
[modify] https://crrev.com/1a81653525d7b252a2d37e7c489604126d917984/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
[modify] https://crrev.com/1a81653525d7b252a2d37e7c489604126d917984/chrome/android/java/src/org/chromium/chrome/browser/incognito/IncognitoNotificationService.java
[modify] https://crrev.com/1a81653525d7b252a2d37e7c489604126d917984/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java
[modify] https://crrev.com/1a81653525d7b252a2d37e7c489604126d917984/chrome/android/java_sources.gni
[add] https://crrev.com/1a81653525d7b252a2d37e7c489604126d917984/chrome/android/javatests/src/org/chromium/chrome/browser/multiwindow/MultiWindowIntegrationTest.java
[modify] https://crrev.com/1a81653525d7b252a2d37e7c489604126d917984/chrome/android/javatests/src/org/chromium/chrome/browser/multiwindow/MultiWindowUtilsTest.java

Project Member

Comment 13 by bugdroid1@chromium.org, Dec 27 2016

Labels: merge-merged-2924
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9af8d43fec1953c20f6804c0f80dfe6ea0da27f7

commit 9af8d43fec1953c20f6804c0f80dfe6ea0da27f7
Author: Ted Choc <tedchoc@google.com>
Date: Tue Dec 27 17:33:16 2016

Fix incognito notification/cleanup for android multiwindow.

When moving an NTP (very specific to the NTP URL) across
CTA instances, it would put the ref in AsyncTabParams, but
would not use it when creating the tab in the second window.

This was bad because it kept a reference to the incognito
tab forever (preventing the profile from being deleted and
the notification from going away).

This also changes the PendingIntent flag to allow the
notification to take an action as long as it is visible
(then if cleaning up the incognito tabs fails the first
time, the second click might succeed).

BUG=673582,  673489 

Review-Url: https://codereview.chromium.org/2574143004
Review-Url: https://codereview.chromium.org/2603793002 .
Cr-Original-Commit-Position: refs/heads/master@{#438648}
Cr-Commit-Position: refs/branch-heads/2924@{#620}
Cr-Branched-From: 3a87aecc31cd1ffe751dd72c04e5a96a1fc8108a-refs/heads/master@{#433059}

[modify] https://crrev.com/9af8d43fec1953c20f6804c0f80dfe6ea0da27f7/chrome/android/java/src/org/chromium/chrome/browser/ChromeSwitches.java
[modify] https://crrev.com/9af8d43fec1953c20f6804c0f80dfe6ea0da27f7/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
[modify] https://crrev.com/9af8d43fec1953c20f6804c0f80dfe6ea0da27f7/chrome/android/java/src/org/chromium/chrome/browser/incognito/IncognitoNotificationService.java
[modify] https://crrev.com/9af8d43fec1953c20f6804c0f80dfe6ea0da27f7/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java
[modify] https://crrev.com/9af8d43fec1953c20f6804c0f80dfe6ea0da27f7/chrome/android/java_sources.gni
[add] https://crrev.com/9af8d43fec1953c20f6804c0f80dfe6ea0da27f7/chrome/android/javatests/src/org/chromium/chrome/browser/multiwindow/MultiWindowIntegrationTest.java
[modify] https://crrev.com/9af8d43fec1953c20f6804c0f80dfe6ea0da27f7/chrome/android/javatests/src/org/chromium/chrome/browser/multiwindow/MultiWindowUtilsTest.java

tedchoc@ - Just checking in to see if this is fixed? I can still reproduce the behavior in comment#2 on the latest Dev build (57.0.2970.0).
Owner: tedc...@chromium.org
This is indeed not fixed (at least not for https://bugs.chromium.org/p/chromium/issues/detail?id=673489#c2).

I have an idea of how to fix this case as well, but it will be "gross".

The problem here is that you remove the tabbed mode task while a CCT is also running.  After L (since we have the CCT around), it keeps browser process alive and we never explicitly tell CookiesFetcher#deleteCookiesIfNecessary because the incognito Profile isn't deleted as part of ChromeTabbedActivity destruction.  IncognitoTabModel#destroy intentionally does not call destroyIncognitoIfNecessary because it would delete this information in non-user triggered destroy calls.

One immediate fix is to have clicks on the incognito close all notification also delete the profile if native is running, which would then trigger the cookie deletion.

But, we need to makes sure there are no other paths that can result in cookies staying around longer.

Stuff to investigate:

- Open CCT
- Open Tabbed mode
- Open incognito tab
- Go to android recents, swipe away tabbed mode.
- Open tabbed mode again
  * At this point, your cookies should be wiped as you have no incognito tabs, but need to make sure that isn't a cold start only thing

Same general thing pre-L.  There the entire process is killed on swipe.  If you start up a CCT before triggering tabbed mode, would that also prevent cookies from being deleted?

Do we need to delete cookies if we can determine there are no tabbed mode activities in recents?  Do we need to do that on resume of all activity types?

I'll do the fix for the notification first as that is a very, very explicit user gesture for intent.  Will keep looking to see what if anything else we need to fix.
Cc: jay...@chromium.org
@jayker, can you verify it is fixed with tonight's canary?  Would like to get that checked before I merge this to 57.
Will do.
The steps in comment#2 no longer reproduces the issue in the current Play Store Canary (58.0.2993.0).
Labels: Merge-Request-57
Project Member

Comment 22 by sheriffbot@chromium.org, Jan 26 2017

Labels: -Merge-Request-57 Hotlist-Merge-Approved Merge-Approved-57
Your change meets the bar and is auto-approved for M57. Please go ahead and merge the CL to branch 2987 manually. Please contact milestone owner if you have questions.
Owners: amineer@(clank), cmasso@(bling), ketakid@(cros), govind@(desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Project Member

Comment 23 by bugdroid1@chromium.org, Jan 26 2017

Labels: -merge-approved-57 merge-merged-2987
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/29a4956a7ff9985a5e2b951d41b435d1b3d38b94

commit 29a4956a7ff9985a5e2b951d41b435d1b3d38b94
Author: Ted Choc <tedchoc@google.com>
Date: Thu Jan 26 19:43:05 2017

Destroy incognito profile from close all incognito notification.

Also destroy the incognito profile when starting up tabbed mode
and there are no discoverable incognito tabs around.

BUG= 673489 

Review-Url: https://codereview.chromium.org/2649773007
Cr-Original-Commit-Position: refs/heads/master@{#446140}
Review-Url: https://codereview.chromium.org/2653753008 .
Cr-Commit-Position: refs/branch-heads/2987@{#115}
Cr-Branched-From: ad51088c0e8776e8dcd963dbe752c4035ba6dab6-refs/heads/master@{#444943}

[modify] https://crrev.com/29a4956a7ff9985a5e2b951d41b435d1b3d38b94/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
[modify] https://crrev.com/29a4956a7ff9985a5e2b951d41b435d1b3d38b94/chrome/android/java/src/org/chromium/chrome/browser/incognito/IncognitoNotificationService.java
[modify] https://crrev.com/29a4956a7ff9985a5e2b951d41b435d1b3d38b94/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java

Status: Fixed (was: Assigned)
Project Member

Comment 25 by bugdroid1@chromium.org, Jan 27 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/61ef8268f9904aecb561105246c92d753ca53dda

commit 61ef8268f9904aecb561105246c92d753ca53dda
Author: amineer <amineer@chromium.org>
Date: Fri Jan 27 16:33:20 2017

Revert of Destroy incognito profile from close all incognito notification. (patchset #1 id:1 of https://codereview.chromium.org/2653753008/ )

Reason for revert:
Breaks build:

../../chrome/android/java/src/org/chromium/chrome/browser/incognito/IncognitoNotificationService.java:84: error: method get in class BrowserStartupController cannot be applied to given types;
                if (BrowserStartupController.get(LibraryProcessType.PROCESS_BROWSER)
                                            ^
  required: Context,int
  found: int
  reason: actual and formal argument lists differ in length

https://uberchromegw.corp.google.com/i/official.android.continuous/builders/beta-arm/builds/6052

Original issue's description:
> Destroy incognito profile from close all incognito notification.
>
> Also destroy the incognito profile when starting up tabbed mode
> and there are no discoverable incognito tabs around.
>
> BUG= 673489 
>
> Review-Url: https://codereview.chromium.org/2649773007
> Cr-Original-Commit-Position: refs/heads/master@{#446140}
> Review-Url: https://codereview.chromium.org/2653753008 .
> Cr-Commit-Position: refs/branch-heads/2987@{#115}
> Cr-Branched-From: ad51088c0e8776e8dcd963dbe752c4035ba6dab6-refs/heads/master@{#444943}
> Committed: https://chromium.googlesource.com/chromium/src/+/29a4956a7ff9985a5e2b951d41b435d1b3d38b94

TBR=tedchoc@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= 673489 

Review-Url: https://codereview.chromium.org/2655383003
Cr-Commit-Position: refs/branch-heads/2987@{#146}
Cr-Branched-From: ad51088c0e8776e8dcd963dbe752c4035ba6dab6-refs/heads/master@{#444943}

[modify] https://crrev.com/61ef8268f9904aecb561105246c92d753ca53dda/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
[modify] https://crrev.com/61ef8268f9904aecb561105246c92d753ca53dda/chrome/android/java/src/org/chromium/chrome/browser/incognito/IncognitoNotificationService.java
[modify] https://crrev.com/61ef8268f9904aecb561105246c92d753ca53dda/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java

Status: Verified (was: Fixed)
Verified on 57.0.2987.19. Thank you!

Sign in to add a comment