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/debug/trace_event.h" | 9 #include "base/debug/trace_event.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
345 | 345 |
346 private: | 346 private: |
347 PepperPluginInstanceImpl* plugin_; | 347 PepperPluginInstanceImpl* plugin_; |
348 }; | 348 }; |
349 | 349 |
350 | 350 |
351 } // namespace | 351 } // namespace |
352 | 352 |
353 // static | 353 // static |
354 PepperPluginInstanceImpl* PepperPluginInstanceImpl::Create( | 354 PepperPluginInstanceImpl* PepperPluginInstanceImpl::Create( |
355 PluginDelegate* delegate, | 355 PepperPluginDelegateImpl* delegate, |
356 RenderViewImpl* render_view, | 356 RenderViewImpl* render_view, |
357 PluginModule* module, | 357 PluginModule* module, |
358 WebPluginContainer* container, | 358 WebPluginContainer* container, |
359 const GURL& plugin_url) { | 359 const GURL& plugin_url) { |
360 base::Callback<const void*(const char*)> get_plugin_interface_func = | 360 base::Callback<const void*(const char*)> get_plugin_interface_func = |
361 base::Bind(&PluginModule::GetPluginInterface, module); | 361 base::Bind(&PluginModule::GetPluginInterface, module); |
362 PPP_Instance_Combined* ppp_instance_combined = | 362 PPP_Instance_Combined* ppp_instance_combined = |
363 PPP_Instance_Combined::Create(get_plugin_interface_func); | 363 PPP_Instance_Combined::Create(get_plugin_interface_func); |
364 if (!ppp_instance_combined) | 364 if (!ppp_instance_combined) |
365 return NULL; | 365 return NULL; |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
406 finished_loading_ = true; | 406 finished_loading_ = true; |
407 } | 407 } |
408 | 408 |
409 void PepperPluginInstanceImpl::NaClDocumentLoader::didFail( | 409 void PepperPluginInstanceImpl::NaClDocumentLoader::didFail( |
410 WebURLLoader* loader, | 410 WebURLLoader* loader, |
411 const WebURLError& error) { | 411 const WebURLError& error) { |
412 DCHECK(!error_.get()); | 412 DCHECK(!error_.get()); |
413 error_.reset(new WebURLError(error)); | 413 error_.reset(new WebURLError(error)); |
414 } | 414 } |
415 | 415 |
416 PepperPluginInstanceImpl::GamepadImpl::GamepadImpl(PluginDelegate* delegate) | 416 PepperPluginInstanceImpl::GamepadImpl::GamepadImpl( |
| 417 PepperPluginDelegateImpl* delegate) |
417 : Resource(::ppapi::Resource::Untracked()), | 418 : Resource(::ppapi::Resource::Untracked()), |
418 delegate_(delegate) { | 419 delegate_(delegate) { |
419 } | 420 } |
420 | 421 |
421 PepperPluginInstanceImpl::GamepadImpl::~GamepadImpl() { | 422 PepperPluginInstanceImpl::GamepadImpl::~GamepadImpl() { |
422 } | 423 } |
423 | 424 |
424 PPB_Gamepad_API* PepperPluginInstanceImpl::GamepadImpl::AsPPB_Gamepad_API() { | 425 PPB_Gamepad_API* PepperPluginInstanceImpl::GamepadImpl::AsPPB_Gamepad_API() { |
425 return this; | 426 return this; |
426 } | 427 } |
427 | 428 |
428 void PepperPluginInstanceImpl::GamepadImpl::Sample( | 429 void PepperPluginInstanceImpl::GamepadImpl::Sample( |
429 PP_Instance instance, | 430 PP_Instance instance, |
430 PP_GamepadsSampleData* data) { | 431 PP_GamepadsSampleData* data) { |
431 WebKit::WebGamepads webkit_data; | 432 WebKit::WebGamepads webkit_data; |
432 delegate_->SampleGamepads(&webkit_data); | 433 delegate_->SampleGamepads(&webkit_data); |
433 ConvertWebKitGamepadData( | 434 ConvertWebKitGamepadData( |
434 *reinterpret_cast<const ::ppapi::WebKitGamepads*>(&webkit_data), data); | 435 *reinterpret_cast<const ::ppapi::WebKitGamepads*>(&webkit_data), data); |
435 } | 436 } |
436 | 437 |
437 PepperPluginInstanceImpl::PepperPluginInstanceImpl( | 438 PepperPluginInstanceImpl::PepperPluginInstanceImpl( |
438 PluginDelegate* delegate, | 439 PepperPluginDelegateImpl* delegate, |
439 RenderViewImpl* render_view, | 440 RenderViewImpl* render_view, |
440 PluginModule* module, | 441 PluginModule* module, |
441 ::ppapi::PPP_Instance_Combined* instance_interface, | 442 ::ppapi::PPP_Instance_Combined* instance_interface, |
442 WebPluginContainer* container, | 443 WebPluginContainer* container, |
443 const GURL& plugin_url) | 444 const GURL& plugin_url) |
444 : delegate_(delegate), | 445 : delegate_(delegate), |
445 render_view_(render_view), | 446 render_view_(render_view), |
446 module_(module), | 447 module_(module), |
447 instance_interface_(instance_interface), | 448 instance_interface_(instance_interface), |
448 pp_instance_(0), | 449 pp_instance_(0), |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
485 selection_caret_(0), | 486 selection_caret_(0), |
486 selection_anchor_(0), | 487 selection_anchor_(0), |
487 pending_user_gesture_(0.0), | 488 pending_user_gesture_(0.0), |
488 document_loader_(NULL), | 489 document_loader_(NULL), |
489 nacl_document_load_(false), | 490 nacl_document_load_(false), |
490 npp_(new NPP_t), | 491 npp_(new NPP_t), |
491 isolate_(v8::Isolate::GetCurrent()) { | 492 isolate_(v8::Isolate::GetCurrent()) { |
492 pp_instance_ = HostGlobals::Get()->AddInstance(this); | 493 pp_instance_ = HostGlobals::Get()->AddInstance(this); |
493 | 494 |
494 memset(¤t_print_settings_, 0, sizeof(current_print_settings_)); | 495 memset(¤t_print_settings_, 0, sizeof(current_print_settings_)); |
495 DCHECK(delegate); | |
496 module_->InstanceCreated(this); | 496 module_->InstanceCreated(this); |
497 delegate_->InstanceCreated(this); | 497 |
| 498 if (delegate_) |
| 499 delegate_->InstanceCreated(this); |
498 | 500 |
499 if (render_view) // NULL in tests | 501 if (render_view) // NULL in tests |
500 view_data_.is_page_visible = !render_view->is_hidden(); | 502 view_data_.is_page_visible = !render_view->is_hidden(); |
501 | 503 |
502 RendererPpapiHostImpl* host_impl = module_->renderer_ppapi_host(); | 504 RendererPpapiHostImpl* host_impl = module_->renderer_ppapi_host(); |
503 resource_creation_ = host_impl->CreateInProcessResourceCreationAPI(this); | 505 resource_creation_ = host_impl->CreateInProcessResourceCreationAPI(this); |
504 | 506 |
505 // TODO(bbudge) remove this when the trusted NaCl plugin has been removed. | 507 // TODO(bbudge) remove this when the trusted NaCl plugin has been removed. |
506 // We must defer certain plugin events for NaCl instances since we switch | 508 // We must defer certain plugin events for NaCl instances since we switch |
507 // from the in-process to the out-of-process proxy after instantiating them. | 509 // from the in-process to the out-of-process proxy after instantiating them. |
(...skipping 16 matching lines...) Expand all Loading... |
524 // unregister themselves inside the delete call). | 526 // unregister themselves inside the delete call). |
525 PluginObjectSet plugin_object_copy; | 527 PluginObjectSet plugin_object_copy; |
526 live_plugin_objects_.swap(plugin_object_copy); | 528 live_plugin_objects_.swap(plugin_object_copy); |
527 for (PluginObjectSet::iterator i = plugin_object_copy.begin(); | 529 for (PluginObjectSet::iterator i = plugin_object_copy.begin(); |
528 i != plugin_object_copy.end(); ++i) | 530 i != plugin_object_copy.end(); ++i) |
529 delete *i; | 531 delete *i; |
530 | 532 |
531 if (TrackedCallback::IsPending(lock_mouse_callback_)) | 533 if (TrackedCallback::IsPending(lock_mouse_callback_)) |
532 lock_mouse_callback_->Abort(); | 534 lock_mouse_callback_->Abort(); |
533 | 535 |
534 delegate_->InstanceDeleted(this); | 536 if (delegate_) |
| 537 delegate_->InstanceDeleted(this); |
535 UnSetAndDeleteLockTargetAdapter(); | 538 UnSetAndDeleteLockTargetAdapter(); |
536 module_->InstanceDeleted(this); | 539 module_->InstanceDeleted(this); |
537 // If we switched from the NaCl plugin module, notify it too. | 540 // If we switched from the NaCl plugin module, notify it too. |
538 if (original_module_.get()) | 541 if (original_module_.get()) |
539 original_module_->InstanceDeleted(this); | 542 original_module_->InstanceDeleted(this); |
540 | 543 |
541 // This should be last since some of the above "instance deleted" calls will | 544 // This should be last since some of the above "instance deleted" calls will |
542 // want to look up in the global map to get info off of our object. | 545 // want to look up in the global map to get info off of our object. |
543 HostGlobals::Get()->InstanceDeleted(pp_instance_); | 546 HostGlobals::Get()->InstanceDeleted(pp_instance_); |
544 } | 547 } |
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
708 | 711 |
709 bool PepperPluginInstanceImpl::HandleDocumentLoad( | 712 bool PepperPluginInstanceImpl::HandleDocumentLoad( |
710 const WebKit::WebURLResponse& response) { | 713 const WebKit::WebURLResponse& response) { |
711 DCHECK(!document_loader_); | 714 DCHECK(!document_loader_); |
712 if (!nacl_document_load_) { | 715 if (!nacl_document_load_) { |
713 if (module()->is_crashed()) { | 716 if (module()->is_crashed()) { |
714 // Don't create a resource for a crashed plugin. | 717 // Don't create a resource for a crashed plugin. |
715 container()->element().document().frame()->stopLoading(); | 718 container()->element().document().frame()->stopLoading(); |
716 return false; | 719 return false; |
717 } | 720 } |
718 delegate()->HandleDocumentLoad(this, response); | 721 delegate_->HandleDocumentLoad(this, response); |
719 // If the load was not abandoned, document_loader_ will now be set. It's | 722 // If the load was not abandoned, document_loader_ will now be set. It's |
720 // possible that the load was canceled by now and document_loader_ was | 723 // possible that the load was canceled by now and document_loader_ was |
721 // already nulled out. | 724 // already nulled out. |
722 } else { | 725 } else { |
723 // The NaCl proxy isn't available, so save the response and record document | 726 // The NaCl proxy isn't available, so save the response and record document |
724 // load notifications for later replay. | 727 // load notifications for later replay. |
725 nacl_document_response_ = response; | 728 nacl_document_response_ = response; |
726 nacl_document_loader_.reset(new NaClDocumentLoader()); | 729 nacl_document_loader_.reset(new NaClDocumentLoader()); |
727 document_loader_ = nacl_document_loader_.get(); | 730 document_loader_ = nacl_document_loader_.get(); |
728 } | 731 } |
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
883 caret.Offset(view_data_.rect.point.x, view_data_.rect.point.y); | 886 caret.Offset(view_data_.rect.point.x, view_data_.rect.point.y); |
884 return caret; | 887 return caret; |
885 } | 888 } |
886 | 889 |
887 bool PepperPluginInstanceImpl::HandleInputEvent( | 890 bool PepperPluginInstanceImpl::HandleInputEvent( |
888 const WebKit::WebInputEvent& event, | 891 const WebKit::WebInputEvent& event, |
889 WebCursorInfo* cursor_info) { | 892 WebCursorInfo* cursor_info) { |
890 TRACE_EVENT0("ppapi", "PepperPluginInstanceImpl::HandleInputEvent"); | 893 TRACE_EVENT0("ppapi", "PepperPluginInstanceImpl::HandleInputEvent"); |
891 | 894 |
892 if (WebInputEvent::isMouseEventType(event.type)) { | 895 if (WebInputEvent::isMouseEventType(event.type)) { |
893 static_cast<PepperPluginDelegateImpl*>(delegate_)->DidReceiveMouseEvent( | 896 delegate_->DidReceiveMouseEvent(this); |
894 this); | |
895 } | 897 } |
896 | 898 |
897 // Don't dispatch input events to crashed plugins. | 899 // Don't dispatch input events to crashed plugins. |
898 if (module()->is_crashed()) | 900 if (module()->is_crashed()) |
899 return false; | 901 return false; |
900 | 902 |
901 // Keep a reference on the stack. See NOTE above. | 903 // Keep a reference on the stack. See NOTE above. |
902 scoped_refptr<PepperPluginInstanceImpl> ref(this); | 904 scoped_refptr<PepperPluginInstanceImpl> ref(this); |
903 | 905 |
904 bool rv = false; | 906 bool rv = false; |
(...skipping 417 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1322 } | 1324 } |
1323 | 1325 |
1324 return !!plugin_zoom_interface_; | 1326 return !!plugin_zoom_interface_; |
1325 } | 1327 } |
1326 | 1328 |
1327 bool PepperPluginInstanceImpl::PluginHasFocus() const { | 1329 bool PepperPluginInstanceImpl::PluginHasFocus() const { |
1328 return flash_fullscreen_ || (has_webkit_focus_ && has_content_area_focus_); | 1330 return flash_fullscreen_ || (has_webkit_focus_ && has_content_area_focus_); |
1329 } | 1331 } |
1330 | 1332 |
1331 void PepperPluginInstanceImpl::SendFocusChangeNotification() { | 1333 void PepperPluginInstanceImpl::SendFocusChangeNotification() { |
1332 // This call can happen during PepperPluginInstanceImpl destruction, because | 1334 // This call can happen during PepperPluginIn>stanceImpl destruction, because |
1333 // WebKit informs the plugin it's losing focus. See crbug.com/236574 | 1335 // WebKit informs the plugin it's losing focus. See crbug.com/236574 |
1334 if (!delegate_ || !instance_interface_) | 1336 if (!delegate_ || !instance_interface_) |
1335 return; | 1337 return; |
1336 bool has_focus = PluginHasFocus(); | 1338 bool has_focus = PluginHasFocus(); |
1337 delegate()->PluginFocusChanged(this, has_focus); | 1339 delegate_->PluginFocusChanged(this, has_focus); |
1338 instance_interface_->DidChangeFocus(pp_instance(), PP_FromBool(has_focus)); | 1340 instance_interface_->DidChangeFocus(pp_instance(), PP_FromBool(has_focus)); |
1339 } | 1341 } |
1340 | 1342 |
1341 void PepperPluginInstanceImpl::UpdateTouchEventRequest() { | 1343 void PepperPluginInstanceImpl::UpdateTouchEventRequest() { |
1342 bool raw_touch = (filtered_input_event_mask_ & PP_INPUTEVENT_CLASS_TOUCH) || | 1344 bool raw_touch = (filtered_input_event_mask_ & PP_INPUTEVENT_CLASS_TOUCH) || |
1343 (input_event_mask_ & PP_INPUTEVENT_CLASS_TOUCH); | 1345 (input_event_mask_ & PP_INPUTEVENT_CLASS_TOUCH); |
1344 container_->requestTouchEventType(raw_touch ? | 1346 container_->requestTouchEventType(raw_touch ? |
1345 WebKit::WebPluginContainer::TouchEventRequestTypeRaw : | 1347 WebKit::WebPluginContainer::TouchEventRequestTypeRaw : |
1346 WebKit::WebPluginContainer::TouchEventRequestTypeSynthesizedMouse); | 1348 WebKit::WebPluginContainer::TouchEventRequestTypeSynthesizedMouse); |
1347 } | 1349 } |
(...skipping 988 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2336 void PepperPluginInstanceImpl::UnlockMouse(PP_Instance instance) { | 2338 void PepperPluginInstanceImpl::UnlockMouse(PP_Instance instance) { |
2337 GetMouseLockDispatcher()->UnlockMouse(GetOrCreateLockTargetAdapter()); | 2339 GetMouseLockDispatcher()->UnlockMouse(GetOrCreateLockTargetAdapter()); |
2338 } | 2340 } |
2339 | 2341 |
2340 void PepperPluginInstanceImpl::SetTextInputType(PP_Instance instance, | 2342 void PepperPluginInstanceImpl::SetTextInputType(PP_Instance instance, |
2341 PP_TextInput_Type type) { | 2343 PP_TextInput_Type type) { |
2342 int itype = type; | 2344 int itype = type; |
2343 if (itype < 0 || itype > ui::TEXT_INPUT_TYPE_URL) | 2345 if (itype < 0 || itype > ui::TEXT_INPUT_TYPE_URL) |
2344 itype = ui::TEXT_INPUT_TYPE_NONE; | 2346 itype = ui::TEXT_INPUT_TYPE_NONE; |
2345 text_input_type_ = static_cast<ui::TextInputType>(itype); | 2347 text_input_type_ = static_cast<ui::TextInputType>(itype); |
2346 delegate()->PluginTextInputTypeChanged(this); | 2348 delegate_->PluginTextInputTypeChanged(this); |
2347 } | 2349 } |
2348 | 2350 |
2349 void PepperPluginInstanceImpl::UpdateCaretPosition( | 2351 void PepperPluginInstanceImpl::UpdateCaretPosition( |
2350 PP_Instance instance, | 2352 PP_Instance instance, |
2351 const PP_Rect& caret, | 2353 const PP_Rect& caret, |
2352 const PP_Rect& bounding_box) { | 2354 const PP_Rect& bounding_box) { |
2353 text_input_caret_ = PP_ToGfxRect(caret); | 2355 text_input_caret_ = PP_ToGfxRect(caret); |
2354 text_input_caret_bounds_ = PP_ToGfxRect(bounding_box); | 2356 text_input_caret_bounds_ = PP_ToGfxRect(bounding_box); |
2355 text_input_caret_set_ = true; | 2357 text_input_caret_set_ = true; |
2356 delegate()->PluginCaretPositionChanged(this); | 2358 delegate_->PluginCaretPositionChanged(this); |
2357 } | 2359 } |
2358 | 2360 |
2359 void PepperPluginInstanceImpl::CancelCompositionText(PP_Instance instance) { | 2361 void PepperPluginInstanceImpl::CancelCompositionText(PP_Instance instance) { |
2360 delegate()->PluginRequestedCancelComposition(this); | 2362 delegate_->PluginRequestedCancelComposition(this); |
2361 } | 2363 } |
2362 | 2364 |
2363 void PepperPluginInstanceImpl::SelectionChanged(PP_Instance instance) { | 2365 void PepperPluginInstanceImpl::SelectionChanged(PP_Instance instance) { |
2364 // TODO(kinaba): currently the browser always calls RequestSurroundingText. | 2366 // TODO(kinaba): currently the browser always calls RequestSurroundingText. |
2365 // It can be optimized so that it won't call it back until the information | 2367 // It can be optimized so that it won't call it back until the information |
2366 // is really needed. | 2368 // is really needed. |
2367 | 2369 |
2368 // Avoid calling in nested context or else this will reenter the plugin. This | 2370 // Avoid calling in nested context or else this will reenter the plugin. This |
2369 // uses a weak pointer rather than exploiting the fact that this class is | 2371 // uses a weak pointer rather than exploiting the fact that this class is |
2370 // refcounted because we don't actually want this operation to affect the | 2372 // refcounted because we don't actually want this operation to affect the |
2371 // lifetime of the instance. | 2373 // lifetime of the instance. |
2372 base::MessageLoop::current()->PostTask( | 2374 base::MessageLoop::current()->PostTask( |
2373 FROM_HERE, | 2375 FROM_HERE, |
2374 base::Bind(&PepperPluginInstanceImpl::RequestSurroundingText, | 2376 base::Bind(&PepperPluginInstanceImpl::RequestSurroundingText, |
2375 AsWeakPtr(), | 2377 AsWeakPtr(), |
2376 static_cast<size_t>(kExtraCharsForTextInput))); | 2378 static_cast<size_t>(kExtraCharsForTextInput))); |
2377 } | 2379 } |
2378 | 2380 |
2379 void PepperPluginInstanceImpl::UpdateSurroundingText(PP_Instance instance, | 2381 void PepperPluginInstanceImpl::UpdateSurroundingText(PP_Instance instance, |
2380 const char* text, | 2382 const char* text, |
2381 uint32_t caret, | 2383 uint32_t caret, |
2382 uint32_t anchor) { | 2384 uint32_t anchor) { |
2383 surrounding_text_ = text; | 2385 surrounding_text_ = text; |
2384 selection_caret_ = caret; | 2386 selection_caret_ = caret; |
2385 selection_anchor_ = anchor; | 2387 selection_anchor_ = anchor; |
2386 delegate()->PluginSelectionChanged(this); | 2388 delegate_->PluginSelectionChanged(this); |
2387 } | 2389 } |
2388 | 2390 |
2389 PP_Var PepperPluginInstanceImpl::ResolveRelativeToDocument( | 2391 PP_Var PepperPluginInstanceImpl::ResolveRelativeToDocument( |
2390 PP_Instance instance, | 2392 PP_Instance instance, |
2391 PP_Var relative, | 2393 PP_Var relative, |
2392 PP_URLComponents_Dev* components) { | 2394 PP_URLComponents_Dev* components) { |
2393 StringVar* relative_string = StringVar::FromPPVar(relative); | 2395 StringVar* relative_string = StringVar::FromPPVar(relative); |
2394 if (!relative_string) | 2396 if (!relative_string) |
2395 return PP_MakeNull(); | 2397 return PP_MakeNull(); |
2396 | 2398 |
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2627 | 2629 |
2628 void PepperPluginInstanceImpl::SetAlwaysOnTop(bool on_top) { | 2630 void PepperPluginInstanceImpl::SetAlwaysOnTop(bool on_top) { |
2629 always_on_top_ = on_top; | 2631 always_on_top_ = on_top; |
2630 } | 2632 } |
2631 | 2633 |
2632 void PepperPluginInstanceImpl::DoSetCursor(WebCursorInfo* cursor) { | 2634 void PepperPluginInstanceImpl::DoSetCursor(WebCursorInfo* cursor) { |
2633 cursor_.reset(cursor); | 2635 cursor_.reset(cursor); |
2634 if (fullscreen_container_) { | 2636 if (fullscreen_container_) { |
2635 fullscreen_container_->DidChangeCursor(*cursor); | 2637 fullscreen_container_->DidChangeCursor(*cursor); |
2636 } else { | 2638 } else { |
2637 static_cast<PepperPluginDelegateImpl*>(delegate_)->DidChangeCursor( | 2639 delegate_->DidChangeCursor(this, *cursor); |
2638 this, *cursor); | |
2639 } | 2640 } |
2640 } | 2641 } |
2641 | 2642 |
2642 bool PepperPluginInstanceImpl::IsFullPagePlugin() { | 2643 bool PepperPluginInstanceImpl::IsFullPagePlugin() { |
2643 WebFrame* frame = container()->element().document().frame(); | 2644 WebFrame* frame = container()->element().document().frame(); |
2644 return frame->view()->mainFrame()->document().isPluginDocument(); | 2645 return frame->view()->mainFrame()->document().isPluginDocument(); |
2645 } | 2646 } |
2646 | 2647 |
2647 void PepperPluginInstanceImpl::FlashSetFullscreen(bool fullscreen, | 2648 void PepperPluginInstanceImpl::FlashSetFullscreen(bool fullscreen, |
2648 bool delay_report) { | 2649 bool delay_report) { |
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2817 } | 2818 } |
2818 | 2819 |
2819 void PepperPluginInstanceImpl::UnSetAndDeleteLockTargetAdapter() { | 2820 void PepperPluginInstanceImpl::UnSetAndDeleteLockTargetAdapter() { |
2820 if (lock_target_.get()) { | 2821 if (lock_target_.get()) { |
2821 GetMouseLockDispatcher()->OnLockTargetDestroyed(lock_target_.get()); | 2822 GetMouseLockDispatcher()->OnLockTargetDestroyed(lock_target_.get()); |
2822 lock_target_.reset(); | 2823 lock_target_.reset(); |
2823 } | 2824 } |
2824 } | 2825 } |
2825 | 2826 |
2826 } // namespace content | 2827 } // namespace content |
OLD | NEW |