Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "content/renderer/pepper/pepper_plugin_instance_impl.h" | 5 #include "content/renderer/pepper/pepper_plugin_instance_impl.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/callback_helpers.h" | 8 #include "base/callback_helpers.h" |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/memory/linked_ptr.h" | 10 #include "base/memory/linked_ptr.h" |
| (...skipping 3143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3154 return PP_ERROR_FAILED; | 3154 return PP_ERROR_FAILED; |
| 3155 | 3155 |
| 3156 ppapi::URLRequestInfoData completed_request = request; | 3156 ppapi::URLRequestInfoData completed_request = request; |
| 3157 | 3157 |
| 3158 WebURLRequest web_request; | 3158 WebURLRequest web_request; |
| 3159 if (!CreateWebURLRequest( | 3159 if (!CreateWebURLRequest( |
| 3160 pp_instance_, &completed_request, frame, &web_request)) { | 3160 pp_instance_, &completed_request, frame, &web_request)) { |
| 3161 return PP_ERROR_FAILED; | 3161 return PP_ERROR_FAILED; |
| 3162 } | 3162 } |
| 3163 web_request.setFirstPartyForCookies(document.firstPartyForCookies()); | 3163 web_request.setFirstPartyForCookies(document.firstPartyForCookies()); |
| 3164 web_request.setHasUserGesture(from_user_action); | 3164 if (IsProcessingUserGesture()) |
| 3165 web_request.setHasUserGesture(true); | |
| 3165 | 3166 |
| 3166 GURL gurl(web_request.url()); | 3167 GURL gurl(web_request.url()); |
| 3167 if (gurl.SchemeIs(url::kJavaScriptScheme)) { | 3168 if (gurl.SchemeIs(url::kJavaScriptScheme)) { |
| 3168 // In imitation of the NPAPI implementation, only |target_frame == frame| is | 3169 // In imitation of the NPAPI implementation, only |target_frame == frame| is |
| 3169 // allowed for security reasons. | 3170 // allowed for security reasons. |
| 3170 WebFrame* target_frame = | 3171 WebFrame* target_frame = |
| 3171 frame->view()->findFrameByName(WebString::fromUTF8(target), frame); | 3172 frame->view()->findFrameByName(WebString::fromUTF8(target), frame); |
| 3172 if (target_frame != frame) | 3173 if (target_frame != frame) |
| 3173 return PP_ERROR_NOACCESS; | 3174 return PP_ERROR_NOACCESS; |
| 3174 | 3175 |
| 3175 // TODO(viettrungluu): NPAPI sends the result back to the plugin -- do we | 3176 // TODO(viettrungluu): NPAPI sends the result back to the plugin -- do we |
| 3176 // need that? | 3177 // need that? |
| 3177 WebString result = container_->executeScriptURL(gurl, from_user_action); | 3178 blink::WebScopedUserGesture user_gesture(CurrentUserGestureToken()); |
| 3179 WebString result = container_->executeScriptURL(gurl, false); | |
|
Mike West
2015/04/08 07:36:39
Nit: Can we drop the second argument?
| |
| 3178 return result.isNull() ? PP_ERROR_FAILED : PP_OK; | 3180 return result.isNull() ? PP_ERROR_FAILED : PP_OK; |
| 3179 } | 3181 } |
| 3180 | 3182 |
| 3181 // Only GETs and POSTs are supported. | 3183 // Only GETs and POSTs are supported. |
| 3182 if (web_request.httpMethod() != "GET" && web_request.httpMethod() != "POST") | 3184 if (web_request.httpMethod() != "GET" && web_request.httpMethod() != "POST") |
| 3183 return PP_ERROR_BADARGUMENT; | 3185 return PP_ERROR_BADARGUMENT; |
| 3184 | 3186 |
| 3185 WebString target_str = WebString::fromUTF8(target); | 3187 WebString target_str = WebString::fromUTF8(target); |
| 3188 blink::WebScopedUserGesture user_gesture(CurrentUserGestureToken()); | |
| 3186 container_->loadFrameRequest(web_request, target_str, false, NULL); | 3189 container_->loadFrameRequest(web_request, target_str, false, NULL); |
| 3187 return PP_OK; | 3190 return PP_OK; |
| 3188 } | 3191 } |
| 3189 | 3192 |
| 3190 int PepperPluginInstanceImpl::MakePendingFileRefRendererHost( | 3193 int PepperPluginInstanceImpl::MakePendingFileRefRendererHost( |
| 3191 const base::FilePath& path) { | 3194 const base::FilePath& path) { |
| 3192 RendererPpapiHostImpl* host_impl = module_->renderer_ppapi_host(); | 3195 RendererPpapiHostImpl* host_impl = module_->renderer_ppapi_host(); |
| 3193 PepperFileRefRendererHost* file_ref_host( | 3196 PepperFileRefRendererHost* file_ref_host( |
| 3194 new PepperFileRefRendererHost(host_impl, pp_instance(), 0, path)); | 3197 new PepperFileRefRendererHost(host_impl, pp_instance(), 0, path)); |
| 3195 return host_impl->GetPpapiHost()->AddPendingResourceHost( | 3198 return host_impl->GetPpapiHost()->AddPendingResourceHost( |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3336 | 3339 |
| 3337 void PepperPluginInstanceImpl::RecordFlashJavaScriptUse() { | 3340 void PepperPluginInstanceImpl::RecordFlashJavaScriptUse() { |
| 3338 if (initialized_ && !javascript_used_ && is_flash_plugin_) { | 3341 if (initialized_ && !javascript_used_ && is_flash_plugin_) { |
| 3339 javascript_used_ = true; | 3342 javascript_used_ = true; |
| 3340 RenderThread::Get()->RecordAction( | 3343 RenderThread::Get()->RecordAction( |
| 3341 base::UserMetricsAction("Flash.JavaScriptUsed")); | 3344 base::UserMetricsAction("Flash.JavaScriptUsed")); |
| 3342 } | 3345 } |
| 3343 } | 3346 } |
| 3344 | 3347 |
| 3345 } // namespace content | 3348 } // namespace content |
| OLD | NEW |