diff options
author | bbudge@chromium.org <bbudge@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-16 01:50:40 +0000 |
---|---|---|
committer | bbudge@chromium.org <bbudge@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-16 01:50:40 +0000 |
commit | 47cb253f15ca0e9dfcef8dd4b42bb5bc443c522f (patch) | |
tree | a71128d32bc0af6005739c13a99e851ad400d614 /ppapi/c/ppp_instance.h | |
parent | 3af832f9c543e7866d375ba326fe659b6f3df939 (diff) | |
download | chromium_src-47cb253f15ca0e9dfcef8dd4b42bb5bc443c522f.zip chromium_src-47cb253f15ca0e9dfcef8dd4b42bb5bc443c522f.tar.gz chromium_src-47cb253f15ca0e9dfcef8dd4b42bb5bc443c522f.tar.bz2 |
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
Review URL: https://codereview.chromium.org/14371021
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@200412 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/c/ppp_instance.h')
-rw-r--r-- | ppapi/c/ppp_instance.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/ppapi/c/ppp_instance.h b/ppapi/c/ppp_instance.h index bdc2883..d2641f9 100644 --- a/ppapi/c/ppp_instance.h +++ b/ppapi/c/ppp_instance.h @@ -3,7 +3,7 @@ * found in the LICENSE file. */ -/* From ppp_instance.idl modified Thu Jun 28 15:08:39 2012. */ +/* From ppp_instance.idl modified Thu Apr 25 13:07:47 2013. */ #ifndef PPAPI_C_PPP_INSTANCE_H_ #define PPAPI_C_PPP_INSTANCE_H_ @@ -146,7 +146,7 @@ struct PPP_Instance_1_1 { void (*DidChangeFocus)(PP_Instance instance, PP_Bool has_focus); /** * HandleDocumentLoad() is called after initialize for a full-frame - * module that was instantiated based on the MIME type of a DOMWindow + * instance that was instantiated based on the MIME type of a DOMWindow * navigation. This situation only applies to modules that are pre-registered * to handle certain MIME types. If you haven't specifically registered to * handle a MIME type or aren't positive this applies to you, your @@ -169,7 +169,8 @@ struct PPP_Instance_1_1 { * @param[in] url_loader An open <code>PPB_URLLoader</code> instance. * * @return <code>PP_TRUE</code> if the data was handled, - * <code>PP_FALSE</code> otherwise. + * <code>PP_FALSE</code> otherwise. If you return false, the load will be + * canceled for you. */ PP_Bool (*HandleDocumentLoad)(PP_Instance instance, PP_Resource url_loader); }; |