| Index: webkit/plugins/ppapi/ppapi_plugin_instance.cc
|
| diff --git a/webkit/plugins/ppapi/ppapi_plugin_instance.cc b/webkit/plugins/ppapi/ppapi_plugin_instance.cc
|
| index d6a1da05ad2c6cb996ae5e893fce7dab52190d32..c8d052d909b97b52ed02838d1508f567ac518c3f 100644
|
| --- a/webkit/plugins/ppapi/ppapi_plugin_instance.cc
|
| +++ b/webkit/plugins/ppapi/ppapi_plugin_instance.cc
|
| @@ -37,6 +37,7 @@
|
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebPluginContainer.h"
|
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebRect.h"
|
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebString.h"
|
| +#include "third_party/WebKit/Source/WebKit/chromium/public/WebURL.h"
|
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebURLRequest.h"
|
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h"
|
| #include "ui/gfx/rect.h"
|
| @@ -53,6 +54,7 @@
|
| #include "webkit/plugins/ppapi/ppb_image_data_impl.h"
|
| #include "webkit/plugins/ppapi/ppb_surface_3d_impl.h"
|
| #include "webkit/plugins/ppapi/ppb_url_loader_impl.h"
|
| +#include "webkit/plugins/ppapi/ppb_url_request_info_impl.h"
|
| #include "webkit/plugins/ppapi/ppp_pdf.h"
|
| #include "webkit/plugins/ppapi/string.h"
|
| #include "webkit/plugins/ppapi/var.h"
|
| @@ -1130,25 +1132,34 @@ void PluginInstance::SetFullscreen(bool fullscreen, bool delay_report) {
|
| }
|
| }
|
|
|
| -bool PluginInstance::NavigateToURL(const char* url, const char* target) {
|
| - if (!url || !target || !container_)
|
| - return false;
|
| +int32_t PluginInstance::Navigate(PPB_URLRequestInfo_Impl* request,
|
| + const char* target,
|
| + bool from_user_action) {
|
| + if (!container_)
|
| + return PP_ERROR_FAILED;
|
|
|
| WebDocument document = container_->element().document();
|
| - GURL complete_url = document.completeURL(WebString::fromUTF8(url));
|
| - // Don't try to deal with the security issues of javascript.
|
| - if (complete_url.SchemeIs("javascript"))
|
| - return false;
|
| + WebFrame* frame = document.frame();
|
| + if (!frame)
|
| + return PP_ERROR_FAILED;
|
| + WebURLRequest web_request(request->ToWebURLRequest(frame));
|
| + web_request.setFirstPartyForCookies(document.firstPartyForCookies());
|
| + web_request.setHasUserGesture(from_user_action);
|
|
|
| - WebURLRequest request(complete_url);
|
| - document.frame()->setReferrerForRequest(request, GURL());
|
| - request.setHTTPMethod(WebString::fromUTF8("GET"));
|
| - request.setFirstPartyForCookies(document.firstPartyForCookies());
|
| - request.setHasUserGesture(true);
|
| + if (GURL(web_request.url()).SchemeIs("javascript")) {
|
| + // TODO(vtl)
|
| + NOTIMPLEMENTED();
|
| + return PP_ERROR_FAILED;
|
| + }
|
| +
|
| + // Only GETs and POSTs are supported.
|
| + if (web_request.httpMethod() != "GET" &&
|
| + web_request.httpMethod() != "POST")
|
| + return PP_ERROR_BADARGUMENT;
|
|
|
| WebString target_str = WebString::fromUTF8(target);
|
| - container_->loadFrameRequest(request, target_str, false, NULL);
|
| - return true;
|
| + container_->loadFrameRequest(web_request, target_str, false, NULL);
|
| + return PP_OK;
|
| }
|
|
|
| PluginDelegate::PlatformContext3D* PluginInstance::CreateContext3D() {
|
|
|