PlzNavigate should fully support appcache. Currently a few layout tests are failing.
Taking up for investigation
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
@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.
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.
Issue 440464 has been merged into this issue.
Comment 1 by ananta@chromium.org
, Nov 15 2016Owner: ananta@chromium.org