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

Issue 608375 link

Starred by 4 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Dec 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 3
Type: Bug

Blocking:
issue 576261



Sign in to add a comment

PlzNavigate: Appcache support

Project Member Reported by clamy@chromium.org, May 2 2016

Issue description

PlzNavigate should fully support appcache. Currently a few layout tests are failing.
 

Comment 1 by ananta@chromium.org, Nov 15 2016

Cc: clamy@chromium.org
Owner: ananta@chromium.org
Taking up for investigation

Comment 2 by clamy@chromium.org, Dec 6 2016

Labels: Proj-PlzNavigate-Blocking
Project Member

Comment 3 by bugdroid1@chromium.org, Dec 7 2016

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

commit 292a917258e6ce3395a589fe40623d0697df044b
Author: ananta <ananta@chromium.org>
Date: Wed Dec 07 01:29:27 2016

PlzNavigate: AppCache support

michaeln : Please review the AppCache changes.
nasko/clamy: Please review the rest of the code.

The AppCache system has a concept of host ids, which map to different DOM's being loaded
in the renderer. Whenever a navigation is initiated by the renderer we get a new host id
which is passed by the appcache code in the renderer via the AppCacheHostMsg_RegisterHost
message. This does not work correctly for PlzNavigate as we don't have a renderer when the
navigation request is instantiated. To workaround this we generate host ids in the newly
newly added AppCacheNavigationHandle class. This class is created on the UI thread and has
a counterpart AppCacheNavigationHandleCore on the IO thread. Their lifetimes are controlled
by the lifetime of the NavigationHandle class. The host id is eventually passed to the
passed to the renderer in the FrameMsg_CommitNavigation IPC in the RequestNavigationParams structure.
This eventually is passed to the WebApplicationCacheHostImpl class.

This patch adds support for AppCache in PlzNavigate. The main changes are as below:
1. Addition of new classes AppCacheNavigationHandle and AppCacheNavigationHandle core.
   The AppCacheNavigationHandle class is created when the NavigationHandleImpl::InitAppCacheHandle()
   method is called.

2. The AppCacheNavigationHandleCore class precreates the AppCacheHost class which is used for
   HTTP requests until the renderer registers with us. When the navigation is committed this
   host is passed to the AppCacheBackImpl class via AppCacheDispatcherHost::RegisterPrecreatedHost().

3. The other AppCache changes are as below: Please note that these changes are all for PlzNavigate.
   1. Provide functionality in the AppCacheDispatcherHost class register the precreated host instance
      This is provided via the function RegisterPrecreatedHost()
   2. Provide functionality in the AppCacheHost class to set the AppCacheFrontend pointer. This is required
      when the precreated host is registered with the AppCacheBackendImpl class.

BUG= 608375 
TEST=manual
The test case at http://www.w3schools.com/html/tryit.asp?filename=tryhtml5_html_manifest works fine with PlzNavigate with this patch.

CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation

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

[modify] https://crrev.com/292a917258e6ce3395a589fe40623d0697df044b/content/browser/BUILD.gn
[modify] https://crrev.com/292a917258e6ce3395a589fe40623d0697df044b/content/browser/appcache/appcache_backend_impl.cc
[modify] https://crrev.com/292a917258e6ce3395a589fe40623d0697df044b/content/browser/appcache/appcache_backend_impl.h
[modify] https://crrev.com/292a917258e6ce3395a589fe40623d0697df044b/content/browser/appcache/appcache_dispatcher_host.cc
[modify] https://crrev.com/292a917258e6ce3395a589fe40623d0697df044b/content/browser/appcache/appcache_dispatcher_host.h
[modify] https://crrev.com/292a917258e6ce3395a589fe40623d0697df044b/content/browser/appcache/appcache_host.h
[modify] https://crrev.com/292a917258e6ce3395a589fe40623d0697df044b/content/browser/appcache/appcache_interceptor.cc
[modify] https://crrev.com/292a917258e6ce3395a589fe40623d0697df044b/content/browser/appcache/appcache_interceptor.h
[add] https://crrev.com/292a917258e6ce3395a589fe40623d0697df044b/content/browser/appcache/appcache_navigation_handle.cc
[add] https://crrev.com/292a917258e6ce3395a589fe40623d0697df044b/content/browser/appcache/appcache_navigation_handle.h
[add] https://crrev.com/292a917258e6ce3395a589fe40623d0697df044b/content/browser/appcache/appcache_navigation_handle_core.cc
[add] https://crrev.com/292a917258e6ce3395a589fe40623d0697df044b/content/browser/appcache/appcache_navigation_handle_core.h
[modify] https://crrev.com/292a917258e6ce3395a589fe40623d0697df044b/content/browser/appcache/appcache_storage_impl_unittest.cc
[modify] https://crrev.com/292a917258e6ce3395a589fe40623d0697df044b/content/browser/frame_host/navigation_handle_impl.cc
[modify] https://crrev.com/292a917258e6ce3395a589fe40623d0697df044b/content/browser/frame_host/navigation_handle_impl.h
[modify] https://crrev.com/292a917258e6ce3395a589fe40623d0697df044b/content/browser/frame_host/navigation_request.cc
[modify] https://crrev.com/292a917258e6ce3395a589fe40623d0697df044b/content/browser/frame_host/navigation_request.h
[modify] https://crrev.com/292a917258e6ce3395a589fe40623d0697df044b/content/browser/loader/DEPS
[modify] https://crrev.com/292a917258e6ce3395a589fe40623d0697df044b/content/browser/loader/navigation_url_loader.cc
[modify] https://crrev.com/292a917258e6ce3395a589fe40623d0697df044b/content/browser/loader/navigation_url_loader.h
[modify] https://crrev.com/292a917258e6ce3395a589fe40623d0697df044b/content/browser/loader/navigation_url_loader_impl.cc
[modify] https://crrev.com/292a917258e6ce3395a589fe40623d0697df044b/content/browser/loader/navigation_url_loader_impl.h
[modify] https://crrev.com/292a917258e6ce3395a589fe40623d0697df044b/content/browser/loader/navigation_url_loader_impl_core.cc
[modify] https://crrev.com/292a917258e6ce3395a589fe40623d0697df044b/content/browser/loader/navigation_url_loader_impl_core.h
[modify] https://crrev.com/292a917258e6ce3395a589fe40623d0697df044b/content/browser/loader/navigation_url_loader_unittest.cc
[modify] https://crrev.com/292a917258e6ce3395a589fe40623d0697df044b/content/browser/loader/resource_dispatcher_host_impl.cc
[modify] https://crrev.com/292a917258e6ce3395a589fe40623d0697df044b/content/browser/loader/resource_dispatcher_host_impl.h
[modify] https://crrev.com/292a917258e6ce3395a589fe40623d0697df044b/content/browser/loader/resource_dispatcher_host_unittest.cc
[modify] https://crrev.com/292a917258e6ce3395a589fe40623d0697df044b/content/child/appcache/web_application_cache_host_impl.cc
[modify] https://crrev.com/292a917258e6ce3395a589fe40623d0697df044b/content/child/appcache/web_application_cache_host_impl.h
[modify] https://crrev.com/292a917258e6ce3395a589fe40623d0697df044b/content/common/frame_messages.h
[modify] https://crrev.com/292a917258e6ce3395a589fe40623d0697df044b/content/common/navigation_params.cc
[modify] https://crrev.com/292a917258e6ce3395a589fe40623d0697df044b/content/common/navigation_params.h
[modify] https://crrev.com/292a917258e6ce3395a589fe40623d0697df044b/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/292a917258e6ce3395a589fe40623d0697df044b/content/renderer/renderer_webapplicationcachehost_impl.cc
[modify] https://crrev.com/292a917258e6ce3395a589fe40623d0697df044b/content/renderer/renderer_webapplicationcachehost_impl.h
[modify] https://crrev.com/292a917258e6ce3395a589fe40623d0697df044b/content/renderer/shared_worker/embedded_shared_worker_stub.cc

Status: Fixed (was: Assigned)
Cc: msrchandra@chromium.org
Labels: Needs-Feedback
@clamy -- Could you please provide us any steps to verify the issue from TE's side which would help us triage the issue.
Thanks in Advance.

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

This bug tracks support for an experimental feature that is not used in production code. I don't think it needs to be tested by the TEs.
Labels: -Needs-Feedback

Comment 8 by nasko@chromium.org, Jan 24 2017

Cc: fdegans@chromium.org jsb...@chromium.org iyengar@chromium.org
 Issue 440464  has been merged into this issue.

Sign in to add a comment