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/location.h" | 9 #include "base/location.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
103 #include "third_party/WebKit/public/platform/WebURL.h" | 103 #include "third_party/WebKit/public/platform/WebURL.h" |
104 #include "third_party/WebKit/public/platform/WebURLError.h" | 104 #include "third_party/WebKit/public/platform/WebURLError.h" |
105 #include "third_party/WebKit/public/platform/WebURLRequest.h" | 105 #include "third_party/WebKit/public/platform/WebURLRequest.h" |
106 #include "third_party/WebKit/public/web/WebBindings.h" | 106 #include "third_party/WebKit/public/web/WebBindings.h" |
107 #include "third_party/WebKit/public/web/WebCompositionUnderline.h" | 107 #include "third_party/WebKit/public/web/WebCompositionUnderline.h" |
108 #include "third_party/WebKit/public/web/WebDataSource.h" | 108 #include "third_party/WebKit/public/web/WebDataSource.h" |
109 #include "third_party/WebKit/public/web/WebDocument.h" | 109 #include "third_party/WebKit/public/web/WebDocument.h" |
110 #include "third_party/WebKit/public/web/WebInputEvent.h" | 110 #include "third_party/WebKit/public/web/WebInputEvent.h" |
111 #include "third_party/WebKit/public/web/WebLocalFrame.h" | 111 #include "third_party/WebKit/public/web/WebLocalFrame.h" |
112 #include "third_party/WebKit/public/web/WebPluginContainer.h" | 112 #include "third_party/WebKit/public/web/WebPluginContainer.h" |
| 113 #include "third_party/WebKit/public/web/WebPluginScriptForbiddenScope.h" |
113 #include "third_party/WebKit/public/web/WebPrintParams.h" | 114 #include "third_party/WebKit/public/web/WebPrintParams.h" |
114 #include "third_party/WebKit/public/web/WebPrintPresetOptions.h" | 115 #include "third_party/WebKit/public/web/WebPrintPresetOptions.h" |
115 #include "third_party/WebKit/public/web/WebPrintScalingOption.h" | 116 #include "third_party/WebKit/public/web/WebPrintScalingOption.h" |
116 #include "third_party/WebKit/public/web/WebScopedUserGesture.h" | 117 #include "third_party/WebKit/public/web/WebScopedUserGesture.h" |
117 #include "third_party/WebKit/public/web/WebScriptSource.h" | 118 #include "third_party/WebKit/public/web/WebScriptSource.h" |
118 #include "third_party/WebKit/public/web/WebSecurityOrigin.h" | 119 #include "third_party/WebKit/public/web/WebSecurityOrigin.h" |
119 #include "third_party/WebKit/public/web/WebUserGestureIndicator.h" | 120 #include "third_party/WebKit/public/web/WebUserGestureIndicator.h" |
120 #include "third_party/WebKit/public/web/WebView.h" | 121 #include "third_party/WebKit/public/web/WebView.h" |
121 #include "third_party/khronos/GLES2/gl2.h" | 122 #include "third_party/khronos/GLES2/gl2.h" |
122 #include "ui/gfx/image/image_skia.h" | 123 #include "ui/gfx/image/image_skia.h" |
(...skipping 2241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2364 ScopedPPVar result = try_catch.FromV8(container_->v8ObjectForElement()); | 2365 ScopedPPVar result = try_catch.FromV8(container_->v8ObjectForElement()); |
2365 DCHECK(!try_catch.HasException()); | 2366 DCHECK(!try_catch.HasException()); |
2366 return result.Release(); | 2367 return result.Release(); |
2367 } | 2368 } |
2368 | 2369 |
2369 PP_Var PepperPluginInstanceImpl::ExecuteScript(PP_Instance instance, | 2370 PP_Var PepperPluginInstanceImpl::ExecuteScript(PP_Instance instance, |
2370 PP_Var script_var, | 2371 PP_Var script_var, |
2371 PP_Var* exception) { | 2372 PP_Var* exception) { |
2372 if (!container_) | 2373 if (!container_) |
2373 return PP_MakeUndefined(); | 2374 return PP_MakeUndefined(); |
| 2375 if (is_deleted_ && blink::WebPluginScriptForbiddenScope::isForbidden()) |
| 2376 return PP_MakeUndefined(); |
2374 RecordFlashJavaScriptUse(); | 2377 RecordFlashJavaScriptUse(); |
2375 | 2378 |
2376 // Executing the script may remove the plugin from the DOM, so we need to keep | 2379 // Executing the script may remove the plugin from the DOM, so we need to keep |
2377 // a reference to ourselves so that we can still process the result after the | 2380 // a reference to ourselves so that we can still process the result after the |
2378 // WebBindings::evaluate() below. | 2381 // WebBindings::evaluate() below. |
2379 scoped_refptr<PepperPluginInstanceImpl> ref(this); | 2382 scoped_refptr<PepperPluginInstanceImpl> ref(this); |
2380 V8VarConverter converter(pp_instance_, V8VarConverter::kAllowObjectVars); | 2383 V8VarConverter converter(pp_instance_, V8VarConverter::kAllowObjectVars); |
2381 PepperTryCatchVar try_catch(this, &converter, exception); | 2384 PepperTryCatchVar try_catch(this, &converter, exception); |
2382 | 2385 |
2383 // Check for an exception due to the context being destroyed. | 2386 // Check for an exception due to the context being destroyed. |
(...skipping 920 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3304 | 3307 |
3305 void PepperPluginInstanceImpl::RecordFlashJavaScriptUse() { | 3308 void PepperPluginInstanceImpl::RecordFlashJavaScriptUse() { |
3306 if (initialized_ && !javascript_used_ && is_flash_plugin_) { | 3309 if (initialized_ && !javascript_used_ && is_flash_plugin_) { |
3307 javascript_used_ = true; | 3310 javascript_used_ = true; |
3308 RenderThread::Get()->RecordAction( | 3311 RenderThread::Get()->RecordAction( |
3309 base::UserMetricsAction("Flash.JavaScriptUsed")); | 3312 base::UserMetricsAction("Flash.JavaScriptUsed")); |
3310 } | 3313 } |
3311 } | 3314 } |
3312 | 3315 |
3313 } // namespace content | 3316 } // namespace content |
OLD | NEW |