Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(249)

Issue 14371021: Implementation of URLLoader using PluginResource/ResourceHost. (Closed)

Created:
7 years, 8 months ago by bbudge
Modified:
7 years, 7 months ago
CC:
chromium-reviews, yusukes+watch_chromium.org, jam, yzshen+watch_chromium.org, joi+watch-content_chromium.org, darin-cc_chromium.org, raymes+watch_chromium.org, piman+watch_chromium.org, ihf+watch_chromium.org
Base URL:
http://git.chromium.org/chromium/src.git@master
Visibility:
Public.

Description

Implementation of URLLoader using PluginResource/ResourceHost. This change is essentially the same as: https://codereview.chromium.org/11416363 Here's the description from that CL: "This doesn't use the resource call/reply infrastructure, but rather pipes WebKit callbacks to the plugin via unsolicited callbacks. This eliminates state tracking in the host which makes things simpler. This fixes some bugs in Close() as well to fix the below-mentioned bug." Other things contained in the original CL: - Add a GetPluginPID method to RendererPpapiHost. This is needed when the loader host Opens() a request. - Add a HandleDocumentLoad method to PluginDelegate and implements it in PepperPluginDelegateImpl. This creates the host for both in- and out-of-process proxies. - Removes the GetURLLoaderBufferedBytes function from the PPB_Proxy_Private interface. - Removes the HandleDocumentLoad implementation in the PPP_Instance_Proxy class. - Removes the document_loader_ field from webkit::ppapi::WebPluginImpl and changes the implementation to forward document load notifications to the PluginInstance. - Changes the PluginInstance to manage the document loader. This CL differs from the original in two ways. First, the trusted interface keeps the RegisterStatusCallback function. The NaCl plugin relies on this to generate progress messages back to the embedding page. Second, PluginInstance is changed to recognize when it's a NaCl instance, and to defer calling the plugin delegate's HandleDocumentLoad method until after the proxy is switched. In the meantime, it saves document events in a special loader object. When the proxy is switched, the delegate's HandleDocumentLoad method is called and the response and document events are then replayed through the new loader resource. BUG=69457 R=brettw@chromium.org Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=200412

Patch Set 1 #

Patch Set 2 : Rebase, PPAPI tests pass. #

Patch Set 3 : Add missing overrides in mocks. #

Patch Set 4 : Recreate issue. #

Patch Set 5 : Rebase again. #

Patch Set 6 : Test idea for deferring NaCl MIME handler document load. #

Patch Set 7 : Add DocumentLoader class to record document load events. #

Total comments: 2

Patch Set 8 : Rebase. #

Total comments: 4

Patch Set 9 : Rebase, fix nits. #

Patch Set 10 : Rebase, track src/webkit gypi changes. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1478 lines, -1665 lines) Patch
M content/content_renderer.gypi View 1 2 3 4 5 6 7 8 9 1 chunk +2 lines, -0 lines 0 comments Download
M content/public/renderer/renderer_ppapi_host.h View 1 chunk +4 lines, -0 lines 0 comments Download
M content/renderer/pepper/content_renderer_pepper_host_factory.cc View 1 2 3 4 5 6 7 8 2 chunks +4 lines, -0 lines 0 comments Download
M content/renderer/pepper/mock_renderer_ppapi_host.h View 1 2 1 chunk +1 line, -0 lines 0 comments Download
M content/renderer/pepper/mock_renderer_ppapi_host.cc View 1 2 1 chunk +5 lines, -0 lines 0 comments Download
M content/renderer/pepper/pepper_in_process_resource_creation.h View 1 2 3 4 1 chunk +2 lines, -0 lines 0 comments Download
M content/renderer/pepper/pepper_in_process_resource_creation.cc View 1 2 3 4 5 6 7 8 2 chunks +8 lines, -0 lines 0 comments Download
M content/renderer/pepper/pepper_plugin_delegate_impl.h View 1 2 3 4 1 chunk +3 lines, -0 lines 0 comments Download
M content/renderer/pepper/pepper_plugin_delegate_impl.cc View 1 2 3 4 4 chunks +66 lines, -0 lines 0 comments Download
A content/renderer/pepper/pepper_url_loader_host.h View 1 2 3 4 5 6 1 chunk +138 lines, -0 lines 0 comments Download
A content/renderer/pepper/pepper_url_loader_host.cc View 1 2 3 4 5 6 1 chunk +380 lines, -0 lines 0 comments Download
M content/renderer/pepper/renderer_ppapi_host_impl.h View 3 chunks +5 lines, -2 lines 0 comments Download
M content/renderer/pepper/renderer_ppapi_host_impl.cc View 1 2 3 4 5 6 7 8 1 chunk +6 lines, -0 lines 0 comments Download
M ppapi/api/ppp_instance.idl View 2 chunks +3 lines, -2 lines 0 comments Download
M ppapi/c/ppp_instance.h View 3 chunks +4 lines, -3 lines 0 comments Download
M ppapi/c/private/ppb_proxy_private.h View 2 chunks +1 line, -6 lines 0 comments Download
M ppapi/ppapi_proxy.gypi View 1 2 3 4 5 6 7 8 2 chunks +2 lines, -2 lines 0 comments Download
M ppapi/proxy/interface_list.cc View 1 2 3 4 5 6 7 8 2 chunks +0 lines, -2 lines 0 comments Download
M ppapi/proxy/plugin_resource.h View 1 chunk +2 lines, -0 lines 0 comments Download
M ppapi/proxy/ppapi_messages.h View 1 2 3 4 5 6 7 8 6 chunks +62 lines, -47 lines 0 comments Download
M ppapi/proxy/ppapi_proxy_test.cc View 1 2 3 4 5 6 7 2 chunks +0 lines, -6 lines 0 comments Download
D ppapi/proxy/ppb_url_loader_proxy.h View 1 chunk +0 lines, -92 lines 0 comments Download
D ppapi/proxy/ppb_url_loader_proxy.cc View 1 2 3 1 chunk +0 lines, -652 lines 0 comments Download
M ppapi/proxy/ppp_instance_proxy.h View 2 chunks +4 lines, -2 lines 0 comments Download
M ppapi/proxy/ppp_instance_proxy.cc View 3 chunks +28 lines, -44 lines 0 comments Download
M ppapi/proxy/resource_creation_proxy.h View 1 2 3 4 5 6 7 8 1 chunk +2 lines, -0 lines 0 comments Download
M ppapi/proxy/resource_creation_proxy.cc View 1 2 3 4 5 6 7 8 3 chunks +7 lines, -2 lines 0 comments Download
A ppapi/proxy/url_loader_resource.h View 1 chunk +146 lines, -0 lines 0 comments Download
A ppapi/proxy/url_loader_resource.cc View 1 1 chunk +392 lines, -0 lines 0 comments Download
M ppapi/proxy/url_response_info_resource.h View 1 2 3 4 5 6 7 8 1 chunk +2 lines, -0 lines 0 comments Download
M ppapi/shared_impl/api_id.h View 1 chunk +0 lines, -1 line 0 comments Download
M ppapi/shared_impl/resource.cc View 1 2 3 4 1 chunk +1 line, -0 lines 0 comments Download
M ppapi/tests/test_url_loader.cc View 1 1 chunk +0 lines, -1 line 0 comments Download
M ppapi/thunk/interfaces_ppb_private.h View 1 2 3 4 1 chunk +3 lines, -0 lines 0 comments Download
M ppapi/thunk/interfaces_ppb_public_stable.h View 2 chunks +1 line, -2 lines 0 comments Download
M ppapi/thunk/ppb_url_loader_api.h View 1 chunk +0 lines, -8 lines 0 comments Download
M ppapi/thunk/resource_creation_api.h View 1 2 3 4 5 6 7 8 2 chunks +7 lines, -0 lines 0 comments Download
M ppapi/thunk/thunk.h View 2 chunks +0 lines, -3 lines 0 comments Download
M webkit/plugins/ppapi/mock_plugin_delegate.h View 1 2 3 4 1 chunk +2 lines, -0 lines 0 comments Download
M webkit/plugins/ppapi/mock_plugin_delegate.cc View 1 2 3 4 1 chunk +5 lines, -0 lines 0 comments Download
M webkit/plugins/ppapi/plugin_delegate.h View 1 2 3 4 2 chunks +11 lines, -0 lines 0 comments Download
M webkit/plugins/ppapi/plugin_module.cc View 1 2 3 4 5 6 7 8 9 1 chunk +0 lines, -2 lines 0 comments Download
M webkit/plugins/ppapi/ppapi_plugin_instance.h View 1 2 3 4 5 6 7 chunks +53 lines, -5 lines 0 comments Download
M webkit/plugins/ppapi/ppapi_plugin_instance.cc View 1 2 3 4 5 6 7 8 9 9 chunks +93 lines, -12 lines 0 comments Download
M webkit/plugins/ppapi/ppapi_webplugin_impl.h View 1 chunk +0 lines, -1 line 0 comments Download
M webkit/plugins/ppapi/ppapi_webplugin_impl.cc View 1 2 3 4 5 6 7 3 chunks +12 lines, -24 lines 0 comments Download
M webkit/plugins/ppapi/ppb_proxy_impl.cc View 3 chunks +0 lines, -9 lines 0 comments Download
D webkit/plugins/ppapi/ppb_url_loader_impl.h View 1 chunk +0 lines, -176 lines 0 comments Download
D webkit/plugins/ppapi/ppb_url_loader_impl.cc View 1 2 3 4 5 6 7 1 chunk +0 lines, -550 lines 0 comments Download
M webkit/plugins/ppapi/resource_creation_impl.h View 1 2 3 4 5 6 7 8 2 chunks +2 lines, -1 line 0 comments Download
M webkit/plugins/ppapi/resource_creation_impl.cc View 1 2 3 4 5 6 7 8 3 chunks +7 lines, -5 lines 0 comments Download
M webkit/plugins/ppapi/url_response_info_util.h View 2 chunks +2 lines, -1 line 0 comments Download
M webkit/plugins/webkit_plugins.gypi View 1 2 3 4 5 6 7 8 9 1 chunk +0 lines, -2 lines 0 comments Download

Messages

Total messages: 11 (0 generated)
bbudge
This should pass all the tests, including the NaCl mime type handling one in nacl_integration. ...
7 years, 7 months ago (2013-05-08 14:28:45 UTC) #1
bbudge
https://codereview.chromium.org/14371021/diff/42001/webkit/plugins/ppapi/ppapi_plugin_instance.cc File webkit/plugins/ppapi/ppapi_plugin_instance.cc (right): https://codereview.chromium.org/14371021/diff/42001/webkit/plugins/ppapi/ppapi_plugin_instance.cc#newcode457 webkit/plugins/ppapi/ppapi_plugin_instance.cc:457: nacl_document_load_ = true; If you can think of a ...
7 years, 7 months ago (2013-05-08 14:29:49 UTC) #2
bbudge
https://codereview.chromium.org/14371021/diff/42001/webkit/plugins/ppapi/ppapi_plugin_instance.cc File webkit/plugins/ppapi/ppapi_plugin_instance.cc (right): https://codereview.chromium.org/14371021/diff/42001/webkit/plugins/ppapi/ppapi_plugin_instance.cc#newcode457 webkit/plugins/ppapi/ppapi_plugin_instance.cc:457: nacl_document_load_ = true; On 2013/05/08 14:29:49, bbudge1 wrote: > ...
7 years, 7 months ago (2013-05-10 00:07:27 UTC) #3
bbudge
7 years, 7 months ago (2013-05-10 22:37:08 UTC) #4
brettw
Can you enhance the CL description? Probably the referencing CL is something that would be ...
7 years, 7 months ago (2013-05-13 21:02:38 UTC) #5
bbudge
+Justin for IPC message review (ppapi_messages.h)
7 years, 7 months ago (2013-05-13 22:49:54 UTC) #6
jschuh
On 2013/05/13 22:49:54, bbudge1 wrote: > +Justin for IPC message review (ppapi_messages.h) Doesn't seem like ...
7 years, 7 months ago (2013-05-15 16:32:32 UTC) #7
brettw
Just nits, I think I understand what you did. Good luck! https://codereview.chromium.org/14371021/diff/46001/webkit/plugins/ppapi/ppapi_plugin_instance.cc File webkit/plugins/ppapi/ppapi_plugin_instance.cc (right): ...
7 years, 7 months ago (2013-05-15 17:14:29 UTC) #8
brettw
LGTM with previous nits
7 years, 7 months ago (2013-05-15 17:14:38 UTC) #9
bbudge
https://codereview.chromium.org/14371021/diff/46001/webkit/plugins/ppapi/ppapi_plugin_instance.cc File webkit/plugins/ppapi/ppapi_plugin_instance.cc (right): https://codereview.chromium.org/14371021/diff/46001/webkit/plugins/ppapi/ppapi_plugin_instance.cc#newcode337 webkit/plugins/ppapi/ppapi_plugin_instance.cc:337: it != data_.end(); ++it) { On 2013/05/15 17:14:29, brettw ...
7 years, 7 months ago (2013-05-15 19:05:27 UTC) #10
bbudge
7 years, 7 months ago (2013-05-16 01:50:49 UTC) #11
Message was sent while issue was closed.
Committed patchset #10 manually as r200412.

Powered by Google App Engine
This is Rietveld 408576698