New issue
Advanced search Search tips

Issue 919488 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jan 15
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Chrome , Mac
Pri: 2
Type: Bug



Sign in to add a comment

Too many entries are removed from History

Project Member Reported by dullweber@chromium.org, Jan 7

Issue description

Chrome Version: 73.0.3660.0
OS: Android but probably others as well

What steps will reproduce the problem?
(1) Visit github.com
(2) Click a few links from the menu such as "business and marketplace"
(3) Delete the last history entry ("marketplace")

What is the expected result?
Only this entry should get removed

What happens instead?
All previous visits to Github are removed as well. 
 
Owner: calamity@chromium.org
Status: Assigned (was: Untriaged)
The issue seems to come from ExpireHistoryBackend::GetVisitsAndRedirectParents(), which adds pages that refer to a specific site to the list of urls to be deleted. When I disable that part, only the urls that were selected are deleted.

The method was added in https://crbug.com/786878. 
calamity@: Could you take a look?
I only managed to reproduce this on mobile.
Cc: s...@chromium.org
Issue 786878 mentions something about transition types. I guess that we could abort the visit collections when we hit another CHAIN_END?
That sounds reasonable. I wonder if the referring_visit field changed semantics or if I just messed up and didn't realize what that field meant in the non-redirect case.

Sorry for the trouble!
Cc: calamity@chromium.org
Owner: dullweber@chromium.org
I created a CL for this: https://crrev.com/c/1409448
Project Member

Comment 5 by bugdroid1@chromium.org, Jan 15

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

commit 4a476f0f2c75f2d91ac8f7f45fed6544fe9970f3
Author: Christian Dullweber <dullweber@chromium.org>
Date: Tue Jan 15 11:42:18 2019

Fix removal of too many urls from history

In some cases, deleting a url from history would also remove other
history entries because the whole referer chain gets removed. The
intention was to only delete redirect that lead to the specified
history entry and not actual referers.
This is fixed by stopping the redirect collection when a CHAIN_START
entry is found.

Bug:  919488 
Change-Id: If317d643b37ccb12942bc419b316df493b490699
Reviewed-on: https://chromium-review.googlesource.com/c/1409448
Commit-Queue: Christian Dullweber <dullweber@chromium.org>
Reviewed-by: calamity <calamity@chromium.org>
Reviewed-by: Sylvain Defresne <sdefresne@chromium.org>
Cr-Commit-Position: refs/heads/master@{#622816}
[modify] https://crrev.com/4a476f0f2c75f2d91ac8f7f45fed6544fe9970f3/components/history/core/browser/expire_history_backend.cc
[modify] https://crrev.com/4a476f0f2c75f2d91ac8f7f45fed6544fe9970f3/components/history/core/browser/expire_history_backend_unittest.cc

Status: Fixed (was: Assigned)

Sign in to add a comment