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

Issue 639842 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 3
Type: Bug



Sign in to add a comment

Send subtree of same-process PageStates on back/forward

Project Member Reported by creis@chromium.org, Aug 22 2016

Issue description

For the new subframe FrameNavigationEntry based navigation logic ( issue 236848 ), the renderer process sends an IPC to the browser process when creating new child frames during a back/forward navigation, in order to look for a history item to load in the frame.  This operation used to be synchronous, since the PageState in the renderer process used to have a tree of history items, rather than just one for a specific frame.

Making it asynchronous is not a problem in most cases, and it's necessary when the subframe history item needs to be loaded in a different process.  However, we've had to introduce some hacks to deal with the case of about:blank, which should have loaded synchronously (allowing the parent page to immediately start scripting it).  We're having to ignore attempts to redundantly navigate to about:blank, to avoid clobbering scheduled navigations ( issue 585194 's dynamic-iframe case in r406861, and now  issue 638088 ) and injected content (issue 626416 in r410748).

To avoid these hacks and optimize the common case that subframe history items load in the same process as their parent frame, we should consider sending the subtree of same-process PageStates when navigating a frame back/forward.  The renderer process could cache this subtree to use as the frames are created, rather than having to ask the browser process every time.  (We could optionally include the unique names of all frames in the subtree, even the ones that won't load in this process, so that the fallback case can be handled by the renderer as well.)
 
Project Member

Comment 1 by bugdroid1@chromium.org, Sep 22 2016

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

commit 45b3bba45f5c1276726541db2f6f8ca6c5e05b65
Author: creis <creis@chromium.org>
Date: Thu Sep 22 22:47:13 2016

Notify the renderer if a history navigation has no subframe items.

In this case, the renderer does not need to consult the browser
process if subframes are created during the navigation.  Since there
are no history items for it, the renderer can just load the default
URL.

BUG= 638088 , 639842
TEST=Restore chrome://settings after disabling MD settings mode.
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation

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

[modify] https://crrev.com/45b3bba45f5c1276726541db2f6f8ca6c5e05b65/content/browser/frame_host/navigation_controller_impl_browsertest.cc
[modify] https://crrev.com/45b3bba45f5c1276726541db2f6f8ca6c5e05b65/content/browser/frame_host/navigation_entry_impl.cc
[modify] https://crrev.com/45b3bba45f5c1276726541db2f6f8ca6c5e05b65/content/browser/frame_host/navigation_entry_impl.h
[modify] https://crrev.com/45b3bba45f5c1276726541db2f6f8ca6c5e05b65/content/browser/frame_host/navigation_request.cc
[modify] https://crrev.com/45b3bba45f5c1276726541db2f6f8ca6c5e05b65/content/browser/frame_host/navigator_impl.cc
[modify] https://crrev.com/45b3bba45f5c1276726541db2f6f8ca6c5e05b65/content/common/frame_messages.h
[modify] https://crrev.com/45b3bba45f5c1276726541db2f6f8ca6c5e05b65/content/common/navigation_params.cc
[modify] https://crrev.com/45b3bba45f5c1276726541db2f6f8ca6c5e05b65/content/common/navigation_params.h
[modify] https://crrev.com/45b3bba45f5c1276726541db2f6f8ca6c5e05b65/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/45b3bba45f5c1276726541db2f6f8ca6c5e05b65/content/renderer/render_frame_impl.h

Project Member

Comment 2 by bugdroid1@chromium.org, Sep 29 2016

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

commit c8ca51e469c96ab4a3e1b0cd9772687077b38984
Author: creis <creis@chromium.org>
Date: Thu Sep 29 23:10:28 2016

Tell renderer which subframes have history items on back/forward.

This avoids making an IPC trip to the browser process for frames
that will not find a history item there.

BUG= 649345 , 639842
TEST=See bug for repro steps.
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation

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

[modify] https://crrev.com/c8ca51e469c96ab4a3e1b0cd9772687077b38984/content/browser/frame_host/navigation_controller_impl_browsertest.cc
[modify] https://crrev.com/c8ca51e469c96ab4a3e1b0cd9772687077b38984/content/browser/frame_host/navigation_entry_impl.cc
[modify] https://crrev.com/c8ca51e469c96ab4a3e1b0cd9772687077b38984/content/browser/frame_host/navigation_entry_impl.h
[modify] https://crrev.com/c8ca51e469c96ab4a3e1b0cd9772687077b38984/content/browser/frame_host/navigation_request.cc
[modify] https://crrev.com/c8ca51e469c96ab4a3e1b0cd9772687077b38984/content/browser/frame_host/navigator_impl.cc
[modify] https://crrev.com/c8ca51e469c96ab4a3e1b0cd9772687077b38984/content/common/frame_messages.h
[modify] https://crrev.com/c8ca51e469c96ab4a3e1b0cd9772687077b38984/content/common/navigation_params.cc
[modify] https://crrev.com/c8ca51e469c96ab4a3e1b0cd9772687077b38984/content/common/navigation_params.h
[modify] https://crrev.com/c8ca51e469c96ab4a3e1b0cd9772687077b38984/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/c8ca51e469c96ab4a3e1b0cd9772687077b38984/content/renderer/render_frame_impl.h
[add] https://crrev.com/c8ca51e469c96ab4a3e1b0cd9772687077b38984/content/test/data/navigation_controller/dynamic_iframe.html

Project Member

Comment 3 by bugdroid1@chromium.org, Sep 30 2016

Labels: merge-merged-2840
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2c38c57dd850f83ba7d1a6713a0552175200efd1

commit 2c38c57dd850f83ba7d1a6713a0552175200efd1
Author: Charles Reis <creis@chromium.org>
Date: Fri Sep 30 19:54:05 2016

Notify the renderer if a history navigation has no subframe items.

In this case, the renderer does not need to consult the browser
process if subframes are created during the navigation.  Since there
are no history items for it, the renderer can just load the default
URL.

BUG= 638088 , 639842
TEST=Restore chrome://settings after disabling MD settings mode.
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation

Review-Url: https://codereview.chromium.org/2316003002
Cr-Commit-Position: refs/heads/master@{#420486}
(cherry picked from commit 45b3bba45f5c1276726541db2f6f8ca6c5e05b65)

Review URL: https://codereview.chromium.org/2380943006 .

Cr-Commit-Position: refs/branch-heads/2840@{#604}
Cr-Branched-From: 1ae106dbab4bddd85132d5b75c670794311f4c57-refs/heads/master@{#414607}

[modify] https://crrev.com/2c38c57dd850f83ba7d1a6713a0552175200efd1/content/browser/frame_host/navigation_controller_impl_browsertest.cc
[modify] https://crrev.com/2c38c57dd850f83ba7d1a6713a0552175200efd1/content/browser/frame_host/navigation_entry_impl.cc
[modify] https://crrev.com/2c38c57dd850f83ba7d1a6713a0552175200efd1/content/browser/frame_host/navigation_entry_impl.h
[modify] https://crrev.com/2c38c57dd850f83ba7d1a6713a0552175200efd1/content/browser/frame_host/navigation_request.cc
[modify] https://crrev.com/2c38c57dd850f83ba7d1a6713a0552175200efd1/content/browser/frame_host/navigator_impl.cc
[modify] https://crrev.com/2c38c57dd850f83ba7d1a6713a0552175200efd1/content/common/frame_messages.h
[modify] https://crrev.com/2c38c57dd850f83ba7d1a6713a0552175200efd1/content/common/navigation_params.cc
[modify] https://crrev.com/2c38c57dd850f83ba7d1a6713a0552175200efd1/content/common/navigation_params.h
[modify] https://crrev.com/2c38c57dd850f83ba7d1a6713a0552175200efd1/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/2c38c57dd850f83ba7d1a6713a0552175200efd1/content/renderer/render_frame_impl.h

Project Member

Comment 4 by bugdroid1@chromium.org, Sep 30 2016

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

commit 1f7947be3253299a579a67d3fee5a9978d13d7cf
Author: creis <creis@chromium.org>
Date: Fri Sep 30 20:47:35 2016

Revert of Notify the renderer if a history navigation has no subframe items. (patchset #1 id:1 of https://codereview.chromium.org/2380943006/ )

Reason for revert:
Broke compile on M54.

Original issue's description:
> Notify the renderer if a history navigation has no subframe items.
>
> In this case, the renderer does not need to consult the browser
> process if subframes are created during the navigation.  Since there
> are no history items for it, the renderer can just load the default
> URL.
>
> BUG= 638088 , 639842
> TEST=Restore chrome://settings after disabling MD settings mode.
> CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation
>
> Review-Url: https://codereview.chromium.org/2316003002
> Cr-Commit-Position: refs/heads/master@{#420486}
> (cherry picked from commit 45b3bba45f5c1276726541db2f6f8ca6c5e05b65)
>
> Committed: https://chromium.googlesource.com/chromium/src/+/2c38c57dd850f83ba7d1a6713a0552175200efd1

TBR=alexmos@chromium.org,nasko@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= 638088 , 639842

Review-Url: https://codereview.chromium.org/2384833002
Cr-Commit-Position: refs/branch-heads/2840@{#606}
Cr-Branched-From: 1ae106dbab4bddd85132d5b75c670794311f4c57-refs/heads/master@{#414607}

[modify] https://crrev.com/1f7947be3253299a579a67d3fee5a9978d13d7cf/content/browser/frame_host/navigation_controller_impl_browsertest.cc
[modify] https://crrev.com/1f7947be3253299a579a67d3fee5a9978d13d7cf/content/browser/frame_host/navigation_entry_impl.cc
[modify] https://crrev.com/1f7947be3253299a579a67d3fee5a9978d13d7cf/content/browser/frame_host/navigation_entry_impl.h
[modify] https://crrev.com/1f7947be3253299a579a67d3fee5a9978d13d7cf/content/browser/frame_host/navigation_request.cc
[modify] https://crrev.com/1f7947be3253299a579a67d3fee5a9978d13d7cf/content/browser/frame_host/navigator_impl.cc
[modify] https://crrev.com/1f7947be3253299a579a67d3fee5a9978d13d7cf/content/common/frame_messages.h
[modify] https://crrev.com/1f7947be3253299a579a67d3fee5a9978d13d7cf/content/common/navigation_params.cc
[modify] https://crrev.com/1f7947be3253299a579a67d3fee5a9978d13d7cf/content/common/navigation_params.h
[modify] https://crrev.com/1f7947be3253299a579a67d3fee5a9978d13d7cf/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/1f7947be3253299a579a67d3fee5a9978d13d7cf/content/renderer/render_frame_impl.h

Project Member

Comment 5 by bugdroid1@chromium.org, Sep 30 2016

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

commit bd0bc90fb57c339a8890c38ad1d2612009b2d5e9
Author: Charles Reis <creis@chromium.org>
Date: Fri Sep 30 22:24:51 2016

Notify the renderer if a history navigation has no subframe items.

In this case, the renderer does not need to consult the browser
process if subframes are created during the navigation.  Since there
are no history items for it, the renderer can just load the default
URL.

BUG= 638088 , 639842
TEST=Restore chrome://settings after disabling MD settings mode.
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation

Review-Url: https://codereview.chromium.org/2316003002
Cr-Commit-Position: refs/heads/master@{#420486}
(cherry picked from commit 45b3bba45f5c1276726541db2f6f8ca6c5e05b65)

Review URL: https://codereview.chromium.org/2383303002 .

Cr-Commit-Position: refs/branch-heads/2840@{#610}
Cr-Branched-From: 1ae106dbab4bddd85132d5b75c670794311f4c57-refs/heads/master@{#414607}

[modify] https://crrev.com/bd0bc90fb57c339a8890c38ad1d2612009b2d5e9/content/browser/frame_host/navigation_controller_impl_browsertest.cc
[modify] https://crrev.com/bd0bc90fb57c339a8890c38ad1d2612009b2d5e9/content/browser/frame_host/navigation_entry_impl.cc
[modify] https://crrev.com/bd0bc90fb57c339a8890c38ad1d2612009b2d5e9/content/browser/frame_host/navigation_entry_impl.h
[modify] https://crrev.com/bd0bc90fb57c339a8890c38ad1d2612009b2d5e9/content/browser/frame_host/navigation_request.cc
[modify] https://crrev.com/bd0bc90fb57c339a8890c38ad1d2612009b2d5e9/content/browser/frame_host/navigator_impl.cc
[modify] https://crrev.com/bd0bc90fb57c339a8890c38ad1d2612009b2d5e9/content/common/frame_messages.h
[modify] https://crrev.com/bd0bc90fb57c339a8890c38ad1d2612009b2d5e9/content/common/navigation_params.cc
[modify] https://crrev.com/bd0bc90fb57c339a8890c38ad1d2612009b2d5e9/content/common/navigation_params.h
[modify] https://crrev.com/bd0bc90fb57c339a8890c38ad1d2612009b2d5e9/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/bd0bc90fb57c339a8890c38ad1d2612009b2d5e9/content/renderer/render_frame_impl.h

Project Member

Comment 6 by bugdroid1@chromium.org, Oct 1 2016

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

commit 1c99ce14a59e2bc3fc9da83684748315ad5e2023
Author: Charles Reis <creis@chromium.org>
Date: Sat Oct 01 02:52:31 2016

Tell renderer which subframes have history items on back/forward.

This avoids making an IPC trip to the browser process for frames
that will not find a history item there.

BUG= 649345 , 639842
TEST=See bug for repro steps.
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation

Review-Url: https://codereview.chromium.org/2380943002
Cr-Commit-Position: refs/heads/master@{#421972}
(cherry picked from commit c8ca51e469c96ab4a3e1b0cd9772687077b38984)

Review URL: https://codereview.chromium.org/2385923002 .

Cr-Commit-Position: refs/branch-heads/2840@{#616}
Cr-Branched-From: 1ae106dbab4bddd85132d5b75c670794311f4c57-refs/heads/master@{#414607}

[modify] https://crrev.com/1c99ce14a59e2bc3fc9da83684748315ad5e2023/content/browser/frame_host/navigation_controller_impl_browsertest.cc
[modify] https://crrev.com/1c99ce14a59e2bc3fc9da83684748315ad5e2023/content/browser/frame_host/navigation_entry_impl.cc
[modify] https://crrev.com/1c99ce14a59e2bc3fc9da83684748315ad5e2023/content/browser/frame_host/navigation_entry_impl.h
[modify] https://crrev.com/1c99ce14a59e2bc3fc9da83684748315ad5e2023/content/browser/frame_host/navigation_request.cc
[modify] https://crrev.com/1c99ce14a59e2bc3fc9da83684748315ad5e2023/content/browser/frame_host/navigator_impl.cc
[modify] https://crrev.com/1c99ce14a59e2bc3fc9da83684748315ad5e2023/content/common/frame_messages.h
[modify] https://crrev.com/1c99ce14a59e2bc3fc9da83684748315ad5e2023/content/common/navigation_params.cc
[modify] https://crrev.com/1c99ce14a59e2bc3fc9da83684748315ad5e2023/content/common/navigation_params.h
[modify] https://crrev.com/1c99ce14a59e2bc3fc9da83684748315ad5e2023/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/1c99ce14a59e2bc3fc9da83684748315ad5e2023/content/renderer/render_frame_impl.h
[add] https://crrev.com/1c99ce14a59e2bc3fc9da83684748315ad5e2023/content/test/data/navigation_controller/dynamic_iframe.html

Labels: TE-Verified-54.0.2840.50 TE-Verified-M54
Verified the issue on windows 10, Ubuntu 14.04 and Mac 10.11.6 using chrome beta version #54.0.2840.50 as per the steps mentioned in the merged issue id:  649345.

The steps followed to reproduce the issue are as follows:
-----------
1. Launched Chrome and navigated to https://goo.gl/CJ9dt
2. Scrolled down the page and clicked on 'Next>' button.
3. Clicked on back navigation button and observed that the forward navigation button is enabled.

Hence, the fix is working as expected.

Attaching screencast for reference

Adding the verified labels.


649345.ogv
13.8 MB View Download
Project Member

Comment 8 by bugdroid1@chromium.org, Oct 21 2016

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

commit 37c954965f2f221aec294a0a28dfbba1c7543f2a
Author: Charles Reis <creis@chromium.org>
Date: Fri Oct 21 20:38:58 2016

Fix history nav to a script-injected about:blank frame.

This CL tracks whether the browser process has an about:blank history
item for subframes during a history navigation.  If the renderer would
be staying on about:blank, it can skip asking the browser and commit
the initial about:blank page synchronously.

BUG= 657896 , 639842
TEST=See bug for repro steps.
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation
R=alexmos@chromium.org

Review URL: https://codereview.chromium.org/2438743005 .

Cr-Commit-Position: refs/heads/master@{#426880}

[modify] https://crrev.com/37c954965f2f221aec294a0a28dfbba1c7543f2a/content/browser/frame_host/navigation_controller_impl_browsertest.cc
[modify] https://crrev.com/37c954965f2f221aec294a0a28dfbba1c7543f2a/content/browser/frame_host/navigation_entry_impl.cc
[modify] https://crrev.com/37c954965f2f221aec294a0a28dfbba1c7543f2a/content/browser/frame_host/navigation_entry_impl.h
[modify] https://crrev.com/37c954965f2f221aec294a0a28dfbba1c7543f2a/content/browser/frame_host/navigation_request.cc
[modify] https://crrev.com/37c954965f2f221aec294a0a28dfbba1c7543f2a/content/common/navigation_params.cc
[modify] https://crrev.com/37c954965f2f221aec294a0a28dfbba1c7543f2a/content/common/navigation_params.h
[modify] https://crrev.com/37c954965f2f221aec294a0a28dfbba1c7543f2a/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/37c954965f2f221aec294a0a28dfbba1c7543f2a/content/renderer/render_frame_impl.h
[add] https://crrev.com/37c954965f2f221aec294a0a28dfbba1c7543f2a/content/test/data/navigation_controller/inject_iframe_srcdoc_with_nested_frame.html
[add] https://crrev.com/37c954965f2f221aec294a0a28dfbba1c7543f2a/content/test/data/navigation_controller/inject_subframe_into_blank_iframe.html
[modify] https://crrev.com/37c954965f2f221aec294a0a28dfbba1c7543f2a/testing/buildbot/filters/browser-side-navigation.linux.content_browsertests.filter

Project Member

Comment 9 by bugdroid1@chromium.org, Oct 24 2016

Labels: merge-merged-2883
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/411325b228248f37b4977f304550d42f0ce04638

commit 411325b228248f37b4977f304550d42f0ce04638
Author: Charles Reis <creis@chromium.org>
Date: Mon Oct 24 18:22:22 2016

Fix history nav to a script-injected about:blank frame.

This CL tracks whether the browser process has an about:blank history
item for subframes during a history navigation.  If the renderer would
be staying on about:blank, it can skip asking the browser and commit
the initial about:blank page synchronously.

BUG= 657896 , 639842
TEST=See bug for repro steps.
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation
R=alexmos@chromium.org

Review URL: https://codereview.chromium.org/2438743005 .

Cr-Commit-Position: refs/heads/master@{#426880}
(cherry picked from commit 37c954965f2f221aec294a0a28dfbba1c7543f2a)

Review URL: https://codereview.chromium.org/2445053002 .

Cr-Commit-Position: refs/branch-heads/2883@{#243}
Cr-Branched-From: 614d31daee2f61b0180df403a8ad43f20b9f6dd7-refs/heads/master@{#423768}

[modify] https://crrev.com/411325b228248f37b4977f304550d42f0ce04638/content/browser/frame_host/navigation_controller_impl_browsertest.cc
[modify] https://crrev.com/411325b228248f37b4977f304550d42f0ce04638/content/browser/frame_host/navigation_entry_impl.cc
[modify] https://crrev.com/411325b228248f37b4977f304550d42f0ce04638/content/browser/frame_host/navigation_entry_impl.h
[modify] https://crrev.com/411325b228248f37b4977f304550d42f0ce04638/content/browser/frame_host/navigation_request.cc
[modify] https://crrev.com/411325b228248f37b4977f304550d42f0ce04638/content/common/navigation_params.cc
[modify] https://crrev.com/411325b228248f37b4977f304550d42f0ce04638/content/common/navigation_params.h
[modify] https://crrev.com/411325b228248f37b4977f304550d42f0ce04638/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/411325b228248f37b4977f304550d42f0ce04638/content/renderer/render_frame_impl.h
[add] https://crrev.com/411325b228248f37b4977f304550d42f0ce04638/content/test/data/navigation_controller/inject_iframe_srcdoc_with_nested_frame.html
[add] https://crrev.com/411325b228248f37b4977f304550d42f0ce04638/content/test/data/navigation_controller/inject_subframe_into_blank_iframe.html
[modify] https://crrev.com/411325b228248f37b4977f304550d42f0ce04638/testing/buildbot/filters/browser-side-navigation.linux.content_browsertests.filter

Labels: TE-Verified-55.0.2883.28. TE-Verified-M55.
Verified the issue on windows 10, Ubuntu 14.04 and Mac 10.11.6 using chrome beta version #55.0.2883.28 as per the steps mentioned in the merged issue id: 657896.

The steps followed to reproduce the issue are as follows:
-----------
1. Visit https://storage.googleapis.com/mps-storage/miyamoto/support/biglobe/gpt_async.html
2. Clicked link to go to "Next page"
3. Clicked on back navigation button.

Observed that Ad rendered in the iframe as expected.

Hence, the fix is working as expected.

Attaching screen cast for reference

Adding the verified labels.
Adding the attachment
639842.ogv
1.3 MB View Download
Project Member

Comment 12 by bugdroid1@chromium.org, Oct 27 2016

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

commit 6dbf3923c80c88beab18436e77125b52d446ca08
Author: Charles Reis <creis@chromium.org>
Date: Thu Oct 27 21:34:20 2016

Fix history nav to a script-injected about:blank frame.

This CL tracks whether the browser process has an about:blank history
item for subframes during a history navigation.  If the renderer would
be staying on about:blank, it can skip asking the browser and commit
the initial about:blank page synchronously.

BUG= 657896 , 639842
TEST=See bug for repro steps.
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation
R=alexmos@chromium.org

Review URL: https://codereview.chromium.org/2438743005 .

Cr-Commit-Position: refs/heads/master@{#426880}
(cherry picked from commit 37c954965f2f221aec294a0a28dfbba1c7543f2a)

Review URL: https://codereview.chromium.org/2454233002 .

Cr-Commit-Position: refs/branch-heads/2840@{#786}
Cr-Branched-From: 1ae106dbab4bddd85132d5b75c670794311f4c57-refs/heads/master@{#414607}

[modify] https://crrev.com/6dbf3923c80c88beab18436e77125b52d446ca08/content/browser/frame_host/navigation_controller_impl_browsertest.cc
[modify] https://crrev.com/6dbf3923c80c88beab18436e77125b52d446ca08/content/browser/frame_host/navigation_entry_impl.cc
[modify] https://crrev.com/6dbf3923c80c88beab18436e77125b52d446ca08/content/browser/frame_host/navigation_entry_impl.h
[modify] https://crrev.com/6dbf3923c80c88beab18436e77125b52d446ca08/content/browser/frame_host/navigation_request.cc
[modify] https://crrev.com/6dbf3923c80c88beab18436e77125b52d446ca08/content/common/navigation_params.cc
[modify] https://crrev.com/6dbf3923c80c88beab18436e77125b52d446ca08/content/common/navigation_params.h
[modify] https://crrev.com/6dbf3923c80c88beab18436e77125b52d446ca08/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/6dbf3923c80c88beab18436e77125b52d446ca08/content/renderer/render_frame_impl.h
[add] https://crrev.com/6dbf3923c80c88beab18436e77125b52d446ca08/content/test/data/navigation_controller/inject_iframe_srcdoc_with_nested_frame.html
[add] https://crrev.com/6dbf3923c80c88beab18436e77125b52d446ca08/content/test/data/navigation_controller/inject_subframe_into_blank_iframe.html
[modify] https://crrev.com/6dbf3923c80c88beab18436e77125b52d446ca08/testing/buildbot/filters/browser-side-navigation.linux.content_browsertests.filter

Project Member

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

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

commit 411325b228248f37b4977f304550d42f0ce04638
Author: Charles Reis <creis@chromium.org>
Date: Mon Oct 24 18:22:22 2016

Fix history nav to a script-injected about:blank frame.

This CL tracks whether the browser process has an about:blank history
item for subframes during a history navigation.  If the renderer would
be staying on about:blank, it can skip asking the browser and commit
the initial about:blank page synchronously.

BUG= 657896 , 639842
TEST=See bug for repro steps.
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation
R=alexmos@chromium.org

Review URL: https://codereview.chromium.org/2438743005 .

Cr-Commit-Position: refs/heads/master@{#426880}
(cherry picked from commit 37c954965f2f221aec294a0a28dfbba1c7543f2a)

Review URL: https://codereview.chromium.org/2445053002 .

Cr-Commit-Position: refs/branch-heads/2883@{#243}
Cr-Branched-From: 614d31daee2f61b0180df403a8ad43f20b9f6dd7-refs/heads/master@{#423768}

[modify] https://crrev.com/411325b228248f37b4977f304550d42f0ce04638/content/browser/frame_host/navigation_controller_impl_browsertest.cc
[modify] https://crrev.com/411325b228248f37b4977f304550d42f0ce04638/content/browser/frame_host/navigation_entry_impl.cc
[modify] https://crrev.com/411325b228248f37b4977f304550d42f0ce04638/content/browser/frame_host/navigation_entry_impl.h
[modify] https://crrev.com/411325b228248f37b4977f304550d42f0ce04638/content/browser/frame_host/navigation_request.cc
[modify] https://crrev.com/411325b228248f37b4977f304550d42f0ce04638/content/common/navigation_params.cc
[modify] https://crrev.com/411325b228248f37b4977f304550d42f0ce04638/content/common/navigation_params.h
[modify] https://crrev.com/411325b228248f37b4977f304550d42f0ce04638/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/411325b228248f37b4977f304550d42f0ce04638/content/renderer/render_frame_impl.h
[add] https://crrev.com/411325b228248f37b4977f304550d42f0ce04638/content/test/data/navigation_controller/inject_iframe_srcdoc_with_nested_frame.html
[add] https://crrev.com/411325b228248f37b4977f304550d42f0ce04638/content/test/data/navigation_controller/inject_subframe_into_blank_iframe.html
[modify] https://crrev.com/411325b228248f37b4977f304550d42f0ce04638/testing/buildbot/filters/browser-side-navigation.linux.content_browsertests.filter

Project Member

Comment 14 by bugdroid1@chromium.org, Oct 27 2016

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

commit 2c38c57dd850f83ba7d1a6713a0552175200efd1
Author: Charles Reis <creis@chromium.org>
Date: Fri Sep 30 19:54:05 2016

Notify the renderer if a history navigation has no subframe items.

In this case, the renderer does not need to consult the browser
process if subframes are created during the navigation.  Since there
are no history items for it, the renderer can just load the default
URL.

BUG= 638088 , 639842
TEST=Restore chrome://settings after disabling MD settings mode.
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation

Review-Url: https://codereview.chromium.org/2316003002
Cr-Commit-Position: refs/heads/master@{#420486}
(cherry picked from commit 45b3bba45f5c1276726541db2f6f8ca6c5e05b65)

Review URL: https://codereview.chromium.org/2380943006 .

Cr-Commit-Position: refs/branch-heads/2840@{#604}
Cr-Branched-From: 1ae106dbab4bddd85132d5b75c670794311f4c57-refs/heads/master@{#414607}

[modify] https://crrev.com/2c38c57dd850f83ba7d1a6713a0552175200efd1/content/browser/frame_host/navigation_controller_impl_browsertest.cc
[modify] https://crrev.com/2c38c57dd850f83ba7d1a6713a0552175200efd1/content/browser/frame_host/navigation_entry_impl.cc
[modify] https://crrev.com/2c38c57dd850f83ba7d1a6713a0552175200efd1/content/browser/frame_host/navigation_entry_impl.h
[modify] https://crrev.com/2c38c57dd850f83ba7d1a6713a0552175200efd1/content/browser/frame_host/navigation_request.cc
[modify] https://crrev.com/2c38c57dd850f83ba7d1a6713a0552175200efd1/content/browser/frame_host/navigator_impl.cc
[modify] https://crrev.com/2c38c57dd850f83ba7d1a6713a0552175200efd1/content/common/frame_messages.h
[modify] https://crrev.com/2c38c57dd850f83ba7d1a6713a0552175200efd1/content/common/navigation_params.cc
[modify] https://crrev.com/2c38c57dd850f83ba7d1a6713a0552175200efd1/content/common/navigation_params.h
[modify] https://crrev.com/2c38c57dd850f83ba7d1a6713a0552175200efd1/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/2c38c57dd850f83ba7d1a6713a0552175200efd1/content/renderer/render_frame_impl.h

Project Member

Comment 15 by bugdroid1@chromium.org, Oct 27 2016

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

commit 1f7947be3253299a579a67d3fee5a9978d13d7cf
Author: creis <creis@chromium.org>
Date: Fri Sep 30 20:47:35 2016

Revert of Notify the renderer if a history navigation has no subframe items. (patchset #1 id:1 of https://codereview.chromium.org/2380943006/ )

Reason for revert:
Broke compile on M54.

Original issue's description:
> Notify the renderer if a history navigation has no subframe items.
>
> In this case, the renderer does not need to consult the browser
> process if subframes are created during the navigation.  Since there
> are no history items for it, the renderer can just load the default
> URL.
>
> BUG= 638088 , 639842
> TEST=Restore chrome://settings after disabling MD settings mode.
> CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation
>
> Review-Url: https://codereview.chromium.org/2316003002
> Cr-Commit-Position: refs/heads/master@{#420486}
> (cherry picked from commit 45b3bba45f5c1276726541db2f6f8ca6c5e05b65)
>
> Committed: https://chromium.googlesource.com/chromium/src/+/2c38c57dd850f83ba7d1a6713a0552175200efd1

TBR=alexmos@chromium.org,nasko@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= 638088 , 639842

Review-Url: https://codereview.chromium.org/2384833002
Cr-Commit-Position: refs/branch-heads/2840@{#606}
Cr-Branched-From: 1ae106dbab4bddd85132d5b75c670794311f4c57-refs/heads/master@{#414607}

[modify] https://crrev.com/1f7947be3253299a579a67d3fee5a9978d13d7cf/content/browser/frame_host/navigation_controller_impl_browsertest.cc
[modify] https://crrev.com/1f7947be3253299a579a67d3fee5a9978d13d7cf/content/browser/frame_host/navigation_entry_impl.cc
[modify] https://crrev.com/1f7947be3253299a579a67d3fee5a9978d13d7cf/content/browser/frame_host/navigation_entry_impl.h
[modify] https://crrev.com/1f7947be3253299a579a67d3fee5a9978d13d7cf/content/browser/frame_host/navigation_request.cc
[modify] https://crrev.com/1f7947be3253299a579a67d3fee5a9978d13d7cf/content/browser/frame_host/navigator_impl.cc
[modify] https://crrev.com/1f7947be3253299a579a67d3fee5a9978d13d7cf/content/common/frame_messages.h
[modify] https://crrev.com/1f7947be3253299a579a67d3fee5a9978d13d7cf/content/common/navigation_params.cc
[modify] https://crrev.com/1f7947be3253299a579a67d3fee5a9978d13d7cf/content/common/navigation_params.h
[modify] https://crrev.com/1f7947be3253299a579a67d3fee5a9978d13d7cf/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/1f7947be3253299a579a67d3fee5a9978d13d7cf/content/renderer/render_frame_impl.h

Project Member

Comment 16 by bugdroid1@chromium.org, Oct 27 2016

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

commit bd0bc90fb57c339a8890c38ad1d2612009b2d5e9
Author: Charles Reis <creis@chromium.org>
Date: Fri Sep 30 22:24:51 2016

Notify the renderer if a history navigation has no subframe items.

In this case, the renderer does not need to consult the browser
process if subframes are created during the navigation.  Since there
are no history items for it, the renderer can just load the default
URL.

BUG= 638088 , 639842
TEST=Restore chrome://settings after disabling MD settings mode.
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation

Review-Url: https://codereview.chromium.org/2316003002
Cr-Commit-Position: refs/heads/master@{#420486}
(cherry picked from commit 45b3bba45f5c1276726541db2f6f8ca6c5e05b65)

Review URL: https://codereview.chromium.org/2383303002 .

Cr-Commit-Position: refs/branch-heads/2840@{#610}
Cr-Branched-From: 1ae106dbab4bddd85132d5b75c670794311f4c57-refs/heads/master@{#414607}

[modify] https://crrev.com/bd0bc90fb57c339a8890c38ad1d2612009b2d5e9/content/browser/frame_host/navigation_controller_impl_browsertest.cc
[modify] https://crrev.com/bd0bc90fb57c339a8890c38ad1d2612009b2d5e9/content/browser/frame_host/navigation_entry_impl.cc
[modify] https://crrev.com/bd0bc90fb57c339a8890c38ad1d2612009b2d5e9/content/browser/frame_host/navigation_entry_impl.h
[modify] https://crrev.com/bd0bc90fb57c339a8890c38ad1d2612009b2d5e9/content/browser/frame_host/navigation_request.cc
[modify] https://crrev.com/bd0bc90fb57c339a8890c38ad1d2612009b2d5e9/content/browser/frame_host/navigator_impl.cc
[modify] https://crrev.com/bd0bc90fb57c339a8890c38ad1d2612009b2d5e9/content/common/frame_messages.h
[modify] https://crrev.com/bd0bc90fb57c339a8890c38ad1d2612009b2d5e9/content/common/navigation_params.cc
[modify] https://crrev.com/bd0bc90fb57c339a8890c38ad1d2612009b2d5e9/content/common/navigation_params.h
[modify] https://crrev.com/bd0bc90fb57c339a8890c38ad1d2612009b2d5e9/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/bd0bc90fb57c339a8890c38ad1d2612009b2d5e9/content/renderer/render_frame_impl.h

Project Member

Comment 17 by bugdroid1@chromium.org, Oct 27 2016

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

commit 1c99ce14a59e2bc3fc9da83684748315ad5e2023
Author: Charles Reis <creis@chromium.org>
Date: Sat Oct 01 02:52:31 2016

Tell renderer which subframes have history items on back/forward.

This avoids making an IPC trip to the browser process for frames
that will not find a history item there.

BUG= 649345 , 639842
TEST=See bug for repro steps.
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation

Review-Url: https://codereview.chromium.org/2380943002
Cr-Commit-Position: refs/heads/master@{#421972}
(cherry picked from commit c8ca51e469c96ab4a3e1b0cd9772687077b38984)

Review URL: https://codereview.chromium.org/2385923002 .

Cr-Commit-Position: refs/branch-heads/2840@{#616}
Cr-Branched-From: 1ae106dbab4bddd85132d5b75c670794311f4c57-refs/heads/master@{#414607}

[modify] https://crrev.com/1c99ce14a59e2bc3fc9da83684748315ad5e2023/content/browser/frame_host/navigation_controller_impl_browsertest.cc
[modify] https://crrev.com/1c99ce14a59e2bc3fc9da83684748315ad5e2023/content/browser/frame_host/navigation_entry_impl.cc
[modify] https://crrev.com/1c99ce14a59e2bc3fc9da83684748315ad5e2023/content/browser/frame_host/navigation_entry_impl.h
[modify] https://crrev.com/1c99ce14a59e2bc3fc9da83684748315ad5e2023/content/browser/frame_host/navigation_request.cc
[modify] https://crrev.com/1c99ce14a59e2bc3fc9da83684748315ad5e2023/content/browser/frame_host/navigator_impl.cc
[modify] https://crrev.com/1c99ce14a59e2bc3fc9da83684748315ad5e2023/content/common/frame_messages.h
[modify] https://crrev.com/1c99ce14a59e2bc3fc9da83684748315ad5e2023/content/common/navigation_params.cc
[modify] https://crrev.com/1c99ce14a59e2bc3fc9da83684748315ad5e2023/content/common/navigation_params.h
[modify] https://crrev.com/1c99ce14a59e2bc3fc9da83684748315ad5e2023/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/1c99ce14a59e2bc3fc9da83684748315ad5e2023/content/renderer/render_frame_impl.h
[add] https://crrev.com/1c99ce14a59e2bc3fc9da83684748315ad5e2023/content/test/data/navigation_controller/dynamic_iframe.html

Project Member

Comment 18 by bugdroid1@chromium.org, Oct 27 2016

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

commit 6dbf3923c80c88beab18436e77125b52d446ca08
Author: Charles Reis <creis@chromium.org>
Date: Thu Oct 27 21:34:20 2016

Fix history nav to a script-injected about:blank frame.

This CL tracks whether the browser process has an about:blank history
item for subframes during a history navigation.  If the renderer would
be staying on about:blank, it can skip asking the browser and commit
the initial about:blank page synchronously.

BUG= 657896 , 639842
TEST=See bug for repro steps.
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation
R=alexmos@chromium.org

Review URL: https://codereview.chromium.org/2438743005 .

Cr-Commit-Position: refs/heads/master@{#426880}
(cherry picked from commit 37c954965f2f221aec294a0a28dfbba1c7543f2a)

Review URL: https://codereview.chromium.org/2454233002 .

Cr-Commit-Position: refs/branch-heads/2840@{#786}
Cr-Branched-From: 1ae106dbab4bddd85132d5b75c670794311f4c57-refs/heads/master@{#414607}

[modify] https://crrev.com/6dbf3923c80c88beab18436e77125b52d446ca08/content/browser/frame_host/navigation_controller_impl_browsertest.cc
[modify] https://crrev.com/6dbf3923c80c88beab18436e77125b52d446ca08/content/browser/frame_host/navigation_entry_impl.cc
[modify] https://crrev.com/6dbf3923c80c88beab18436e77125b52d446ca08/content/browser/frame_host/navigation_entry_impl.h
[modify] https://crrev.com/6dbf3923c80c88beab18436e77125b52d446ca08/content/browser/frame_host/navigation_request.cc
[modify] https://crrev.com/6dbf3923c80c88beab18436e77125b52d446ca08/content/common/navigation_params.cc
[modify] https://crrev.com/6dbf3923c80c88beab18436e77125b52d446ca08/content/common/navigation_params.h
[modify] https://crrev.com/6dbf3923c80c88beab18436e77125b52d446ca08/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/6dbf3923c80c88beab18436e77125b52d446ca08/content/renderer/render_frame_impl.h
[add] https://crrev.com/6dbf3923c80c88beab18436e77125b52d446ca08/content/test/data/navigation_controller/inject_iframe_srcdoc_with_nested_frame.html
[add] https://crrev.com/6dbf3923c80c88beab18436e77125b52d446ca08/content/test/data/navigation_controller/inject_subframe_into_blank_iframe.html
[modify] https://crrev.com/6dbf3923c80c88beab18436e77125b52d446ca08/testing/buildbot/filters/browser-side-navigation.linux.content_browsertests.filter

Sign in to add a comment