| 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/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/debug/trace_event.h" | 10 #include "base/debug/trace_event.h" |
| (...skipping 2286 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2297 } | 2297 } |
| 2298 | 2298 |
| 2299 PP_Bool PepperPluginInstanceImpl::FlashIsFullscreen(PP_Instance instance) { | 2299 PP_Bool PepperPluginInstanceImpl::FlashIsFullscreen(PP_Instance instance) { |
| 2300 return PP_FromBool(flash_fullscreen_); | 2300 return PP_FromBool(flash_fullscreen_); |
| 2301 } | 2301 } |
| 2302 | 2302 |
| 2303 PP_Var PepperPluginInstanceImpl::GetWindowObject(PP_Instance instance) { | 2303 PP_Var PepperPluginInstanceImpl::GetWindowObject(PP_Instance instance) { |
| 2304 if (!container_) | 2304 if (!container_) |
| 2305 return PP_MakeUndefined(); | 2305 return PP_MakeUndefined(); |
| 2306 | 2306 |
| 2307 PepperTryCatchVar try_catch(this, NULL); | 2307 V8VarConverter converter(pp_instance_, V8VarConverter::kAllowObjectVars); |
| 2308 PepperTryCatchVar try_catch(this, &converter, NULL); |
| 2308 WebLocalFrame* frame = container_->element().document().frame(); | 2309 WebLocalFrame* frame = container_->element().document().frame(); |
| 2309 if (!frame) { | 2310 if (!frame) { |
| 2310 try_catch.SetException("No frame exists for window object."); | 2311 try_catch.SetException("No frame exists for window object."); |
| 2311 return PP_MakeUndefined(); | 2312 return PP_MakeUndefined(); |
| 2312 } | 2313 } |
| 2313 | 2314 |
| 2314 ScopedPPVar result = | 2315 ScopedPPVar result = |
| 2315 try_catch.FromV8(frame->mainWorldScriptContext()->Global()); | 2316 try_catch.FromV8(frame->mainWorldScriptContext()->Global()); |
| 2316 DCHECK(!try_catch.HasException()); | 2317 DCHECK(!try_catch.HasException()); |
| 2317 return result.Release(); | 2318 return result.Release(); |
| 2318 } | 2319 } |
| 2319 | 2320 |
| 2320 PP_Var PepperPluginInstanceImpl::GetOwnerElementObject(PP_Instance instance) { | 2321 PP_Var PepperPluginInstanceImpl::GetOwnerElementObject(PP_Instance instance) { |
| 2321 if (!container_) | 2322 if (!container_) |
| 2322 return PP_MakeUndefined(); | 2323 return PP_MakeUndefined(); |
| 2323 PepperTryCatchVar try_catch(this, NULL); | 2324 V8VarConverter converter(pp_instance_, V8VarConverter::kAllowObjectVars); |
| 2325 PepperTryCatchVar try_catch(this, &converter, NULL); |
| 2324 ScopedPPVar result = try_catch.FromV8(container_->v8ObjectForElement()); | 2326 ScopedPPVar result = try_catch.FromV8(container_->v8ObjectForElement()); |
| 2325 DCHECK(!try_catch.HasException()); | 2327 DCHECK(!try_catch.HasException()); |
| 2326 return result.Release(); | 2328 return result.Release(); |
| 2327 } | 2329 } |
| 2328 | 2330 |
| 2329 PP_Var PepperPluginInstanceImpl::ExecuteScript(PP_Instance instance, | 2331 PP_Var PepperPluginInstanceImpl::ExecuteScript(PP_Instance instance, |
| 2330 PP_Var script_var, | 2332 PP_Var script_var, |
| 2331 PP_Var* exception) { | 2333 PP_Var* exception) { |
| 2332 if (!container_) | 2334 if (!container_) |
| 2333 return PP_MakeUndefined(); | 2335 return PP_MakeUndefined(); |
| 2334 | 2336 |
| 2335 // Executing the script may remove the plugin from the DOM, so we need to keep | 2337 // Executing the script may remove the plugin from the DOM, so we need to keep |
| 2336 // a reference to ourselves so that we can still process the result after the | 2338 // a reference to ourselves so that we can still process the result after the |
| 2337 // WebBindings::evaluate() below. | 2339 // WebBindings::evaluate() below. |
| 2338 scoped_refptr<PepperPluginInstanceImpl> ref(this); | 2340 scoped_refptr<PepperPluginInstanceImpl> ref(this); |
| 2339 PepperTryCatchVar try_catch(this, exception); | 2341 V8VarConverter converter(pp_instance_, V8VarConverter::kAllowObjectVars); |
| 2342 PepperTryCatchVar try_catch(this, &converter, exception); |
| 2340 | 2343 |
| 2341 // Check for an exception due to the context being destroyed. | 2344 // Check for an exception due to the context being destroyed. |
| 2342 if (try_catch.HasException()) | 2345 if (try_catch.HasException()) |
| 2343 return PP_MakeUndefined(); | 2346 return PP_MakeUndefined(); |
| 2344 | 2347 |
| 2345 WebLocalFrame* frame = container_->element().document().frame(); | 2348 WebLocalFrame* frame = container_->element().document().frame(); |
| 2346 if (!frame) { | 2349 if (!frame) { |
| 2347 try_catch.SetException("No frame to execute script in."); | 2350 try_catch.SetException("No frame to execute script in."); |
| 2348 return PP_MakeUndefined(); | 2351 return PP_MakeUndefined(); |
| 2349 } | 2352 } |
| (...skipping 950 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3300 void PepperPluginInstanceImpl::SetPluginThrottled(bool throttled) { | 3303 void PepperPluginInstanceImpl::SetPluginThrottled(bool throttled) { |
| 3301 // Do not throttle if we've already disabled power saver. | 3304 // Do not throttle if we've already disabled power saver. |
| 3302 if (!power_saver_enabled_ && throttled) | 3305 if (!power_saver_enabled_ && throttled) |
| 3303 return; | 3306 return; |
| 3304 | 3307 |
| 3305 plugin_throttled_ = throttled; | 3308 plugin_throttled_ = throttled; |
| 3306 SendDidChangeView(); | 3309 SendDidChangeView(); |
| 3307 } | 3310 } |
| 3308 | 3311 |
| 3309 } // namespace content | 3312 } // namespace content |
| OLD | NEW |