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

Issue 607074 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jul 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 1
Type: Bug-Regression



Sign in to add a comment

Regression:Task for security error page is displayed in task manager.

Reported by vku...@etouch.net, Apr 27 2016

Issue description

Chrome Version: 51.0.2704.29(Official Build)Revision d7a063c1fedf1f6ccb6eb9f50a9028bd742652d7-refs/branch-heads/2704@{#260} (64 Bit)
OS:Mac

What steps will reproduce the problem?
1.Freshly launch chrome and navigate to http://malware.testing.google.test/testing/malware/
2.Click on wrench menu,open 'task manager' via more tools, Select 'Tab:security error' and click on end process button.
3.Reload the page and again open task manager observe

Actual: Task for security error page is displayed even if the crash page is not loaded.

Expected: Task for security error page should be displayed only if the page is loaded completely.

This is a regression issue broken in 'M49' and will soon update other info.
 

Comment 1 by vku...@etouch.net, Apr 27 2016

Cc: rob@robwu.nl
Labels: hasbisect
Owner: ben@chromium.org
Status: Assigned (was: Unconfirmed)
Manual regression range:
Good Build: 49.0.2583.0
Bad Build:  49.0.2584.0

CL:
https://chromium.googlesource.com/chromium/src/+log/49.0.2583.0..49.0.2584.0?pretty=fuller&n=10000
(Unable to narrow down the range using tool since url doesn't open in chromium builds)

Suspecting: 363363 or 363368 ?
Kindly help to re-assign, if your changes are not cause for this issue.

Note: Issue not seen on Win & Linux OS.
Actual_Task manager.mov
1.7 MB Download
Expected_Task manager.mov
1.7 MB Download

Comment 2 by nick@chromium.org, Apr 29 2016

Cc: afakhry@chromium.org creis@chromium.org tapted@chromium.org
Owner: afakhry@chromium.org
Described here is a Mac-only TaskManager behavior change, though I suspect we might be able to repro it on other platforms using --disable-new-task-manager.

Attribution to ben@'s CLs doesn't seem plausible. I'd look for a change to render_process_host_impl, content/ interstitital logic, the (old) task manager, or web_contents_observer behavior (so render_frame_host, web_contents, etc).
This seems to repro for me in Windows as well? Tested: 52.0.2721.0

The weird bit: clicking "Reload" on the terminated 'Tab:security error', creates a task manager entry pointing at the *previous* URL for that tab (e.g. about:blank), but the tab looks like the security error. Also, the favicon in the tab strip still has a sad tab.

Similar stuff happens on Mac with the new task manager ui (flip: chrome://flags/#mac-views-dialogs)
terminate-security-win.mov
3.3 MB Download
Is this issue still happening?

Honestly, it's hard to see if there's any difference between the behaviors of the task manager in the actual and expected videos. In both, the page is opened in a tab, killed, refreshed and it's there in the task manager.

I'm unable to repro in linux or chrome os.

Also, it seems we are using a different page now (attached).
Selection_070.png
59.1 KB View Download

Comment 5 by f...@chromium.org, May 18 2016

RE #4: Your screenshot shows a Google redirector warning as a regular website. That is not an actual Chrome warning. It's happening because the link you clicked on to test sent you through a Google redirector. Make sure to actually copy/paste the URL for the test page into Chrome when testing.
Cc: a...@chromium.org
avi@ or creis@, would updating the WebContentsObservers of titles changes in WebContentsImpl::NotifyNavigationStateChanged() [1] when we have INVALIDATE_TYPE_TITLE as one of the |changed_flags|, be a right thing to do?

Something like:
if (changed_flags & INVALIDATE_TYPE_TITLE) {
  FOR_EACH_OBSERVER(
      WebContentsObserver, observers_,
      TitleWasSet(GetLastCommittedNavigationEntryForRenderManager(), false));
}

Context: In order to show the correct title of the task when there is an interstitial page, we need to inform the task manager via WebContentsObserver::TitleWasSet() that there's a change in the title as a result of this path:

#2 0x2b3efbb1a736 content::NavigationEntryImpl::SetTitle()
#3 0x2b3efbb021ba content::InterstitialPageImpl::UpdateTitle()
#4 0x2b3efbb4290b content::RenderFrameHostImpl::OnUpdateTitle()

[1]: https://cs.chromium.org/chromium/src/content/browser/web_contents/web_contents_impl.cc?type=cs&q=WebContentsImpl::NotifyNavigationStateChanged&sq=package:chromium&l=1255

Comment 7 by creis@chromium.org, Jun 20 2016

Cc: nick@chromium.org
I totally agree that WebContentsObserver should hear about all the title changes, and this one seems to be missed at the moment.  I fully support fixing that.

NotifyNavigationStateChanged doesn't seem like the right place for this, though, since it's meant to notify the delegate (not WebContentsObservers directly) on a variety of different navigation-related events.  Also, that might be redundant with what happens in the normal tab case.

At first glance, it looks like WebContentsImpl::UpdateTitle normally calls WebContentsObserver::TitleWasSet via UpdateTitleForEntry.  Maybe InterstitialPageImpl should be calling UpdateTitleForEntry on the transient NavigationEntry?  I'm not sure if that's easy to wire up, but it seems like it's a step in the right direction.
Re #7: Thanks! That fixes it for showing the interstitial page. However, when the interstitial page is dismissed ("Back to safety" is pressed), WebContentsObserver::TitleWasSet() doesn't get called as a result of content::InterstitialPageImpl::DontProceed(). So listeners to this event like the task manager still see the web contents title as "Security Error" Even though it changed to "New Tab".

I think we still need to call WebContentsImpl::UpdateTitleForEntry() either inside DontProceed() or Hide(). Note that we won't have the transient entry after this: https://cs.chromium.org/chromium/src/content/browser/frame_host/interstitial_page_impl.cc?sq=package:chromium&rcl=1466579912&l=674


Project Member

Comment 9 by bugdroid1@chromium.org, Jul 14 2016

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

commit 6f0c1ec23bc1eabe221fccdb4b28b1d96273a705
Author: afakhry <afakhry@chromium.org>
Date: Thu Jul 14 13:55:13 2016

Using WebContents::UpdateTitleForEntry() instead of NavigationEntry::SetTitle()

NavigationEntry::SetTitle() doesn't result in the emission of
WebContentsObserver::TitleWasSet() events. This used to cause listeners like
the task manager to show wrong titles of tabs (for example in the event of an
interstitial page).

BUG= 607074 
TEST=content_browsertests --gtest_filter=InterstitialPageImplTest.*
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_site_isolation

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

[modify] https://crrev.com/6f0c1ec23bc1eabe221fccdb4b28b1d96273a705/chrome/browser/devtools/devtools_ui_bindings.cc
[modify] https://crrev.com/6f0c1ec23bc1eabe221fccdb4b28b1d96273a705/chrome/browser/media/tab_desktop_media_list_unittest.cc
[modify] https://crrev.com/6f0c1ec23bc1eabe221fccdb4b28b1d96273a705/chrome/browser/task_management/providers/web_contents/web_contents_task_provider.cc
[modify] https://crrev.com/6f0c1ec23bc1eabe221fccdb4b28b1d96273a705/chrome/browser/ui/browser_commands.cc
[modify] https://crrev.com/6f0c1ec23bc1eabe221fccdb4b28b1d96273a705/chrome/browser/ui/search/search_tab_helper.cc
[modify] https://crrev.com/6f0c1ec23bc1eabe221fccdb4b28b1d96273a705/chrome/browser/ui/toolbar/back_forward_menu_model_unittest.cc
[modify] https://crrev.com/6f0c1ec23bc1eabe221fccdb4b28b1d96273a705/chrome/test/base/browser_with_test_window_test.cc
[modify] https://crrev.com/6f0c1ec23bc1eabe221fccdb4b28b1d96273a705/content/browser/frame_host/interstitial_page_impl.cc
[modify] https://crrev.com/6f0c1ec23bc1eabe221fccdb4b28b1d96273a705/content/browser/frame_host/interstitial_page_impl_browsertest.cc
[modify] https://crrev.com/6f0c1ec23bc1eabe221fccdb4b28b1d96273a705/content/browser/frame_host/navigation_controller_impl_unittest.cc
[modify] https://crrev.com/6f0c1ec23bc1eabe221fccdb4b28b1d96273a705/content/browser/web_contents/web_contents_impl.cc
[modify] https://crrev.com/6f0c1ec23bc1eabe221fccdb4b28b1d96273a705/content/browser/web_contents/web_contents_impl.h
[modify] https://crrev.com/6f0c1ec23bc1eabe221fccdb4b28b1d96273a705/content/public/browser/navigation_entry.h
[modify] https://crrev.com/6f0c1ec23bc1eabe221fccdb4b28b1d96273a705/content/public/browser/web_contents.h
[modify] https://crrev.com/6f0c1ec23bc1eabe221fccdb4b28b1d96273a705/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc

Project Member

Comment 10 by bugdroid1@chromium.org, Jul 14 2016

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

commit 707a8b14b3a547d21668166d062d57a9c55767ba
Author: afakhry <afakhry@chromium.org>
Date: Thu Jul 14 18:21:12 2016

Fix interstitial pages not updating the task manager renderers' titles and favicons

After we fixed the WebContentsObserver::TitleWasSet() events not being emitted in some cases
including the interstitial pages in this CL: https://codereview.chromium.org/2086423005/,
we now make sure that the favicon is also updated when the title changes.
We also use the DidFinishNavigation() instead of DidNavigateMainFrame().

Screen recording: https://drive.google.com/a/google.com/file/d/0B6G_-uQnf1_LX0VtUnNWaEd6cUU/view?usp=sharing

BUG= 607074 

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

[modify] https://crrev.com/707a8b14b3a547d21668166d062d57a9c55767ba/chrome/browser/task_management/providers/web_contents/guest_task.cc
[modify] https://crrev.com/707a8b14b3a547d21668166d062d57a9c55767ba/chrome/browser/task_management/providers/web_contents/web_contents_task_provider.cc

Status: Fixed (was: Assigned)
Issue is now fixed. Failing to dismiss the interstitial page when killed for second time is tracked by this  issue 620358 .
Components: -Security>UX
Labels: Team-Security-UX
Security>UX component is deprecated in favor of the Team-Security-UX label

Sign in to add a comment