OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "components/guest_view/browser/guest_view_base.h" | 5 #include "components/guest_view/browser/guest_view_base.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/lazy_instance.h" | 9 #include "base/lazy_instance.h" |
10 #include "base/macros.h" | 10 #include "base/macros.h" |
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
259 const gfx::Size& new_size) { | 259 const gfx::Size& new_size) { |
260 if (new_size == old_size) | 260 if (new_size == old_size) |
261 return; | 261 return; |
262 | 262 |
263 // Dispatch the onResize event. | 263 // Dispatch the onResize event. |
264 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue()); | 264 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue()); |
265 args->SetInteger(kOldWidth, old_size.width()); | 265 args->SetInteger(kOldWidth, old_size.width()); |
266 args->SetInteger(kOldHeight, old_size.height()); | 266 args->SetInteger(kOldHeight, old_size.height()); |
267 args->SetInteger(kNewWidth, new_size.width()); | 267 args->SetInteger(kNewWidth, new_size.width()); |
268 args->SetInteger(kNewHeight, new_size.height()); | 268 args->SetInteger(kNewHeight, new_size.height()); |
269 DispatchEventToGuestProxy(new GuestViewEvent(kEventResize, std::move(args))); | 269 DispatchEventToGuestProxy( |
| 270 make_scoped_ptr(new GuestViewEvent(kEventResize, std::move(args)))); |
270 } | 271 } |
271 | 272 |
272 gfx::Size GuestViewBase::GetDefaultSize() const { | 273 gfx::Size GuestViewBase::GetDefaultSize() const { |
273 if (is_full_page_plugin()) { | 274 if (is_full_page_plugin()) { |
274 // Full page plugins default to the size of the owner's viewport. | 275 // Full page plugins default to the size of the owner's viewport. |
275 return owner_web_contents() | 276 return owner_web_contents() |
276 ->GetRenderWidgetHostView() | 277 ->GetRenderWidgetHostView() |
277 ->GetVisibleViewportSize(); | 278 ->GetVisibleViewportSize(); |
278 } else { | 279 } else { |
279 return gfx::Size(kDefaultWidth, kDefaultHeight); | 280 return gfx::Size(kDefaultWidth, kDefaultHeight); |
(...skipping 465 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
745 guest_zoom_controller->SetZoomLevel(data.new_zoom_level); | 746 guest_zoom_controller->SetZoomLevel(data.new_zoom_level); |
746 return; | 747 return; |
747 } | 748 } |
748 | 749 |
749 if (data.web_contents == web_contents()) { | 750 if (data.web_contents == web_contents()) { |
750 // The guest's zoom level has changed. | 751 // The guest's zoom level has changed. |
751 GuestZoomChanged(data.old_zoom_level, data.new_zoom_level); | 752 GuestZoomChanged(data.old_zoom_level, data.new_zoom_level); |
752 } | 753 } |
753 } | 754 } |
754 | 755 |
755 void GuestViewBase::DispatchEventToGuestProxy(GuestViewEvent* event) { | 756 void GuestViewBase::DispatchEventToGuestProxy( |
| 757 scoped_ptr<GuestViewEvent> event) { |
756 event->Dispatch(this, guest_instance_id_); | 758 event->Dispatch(this, guest_instance_id_); |
757 } | 759 } |
758 | 760 |
759 void GuestViewBase::DispatchEventToView(GuestViewEvent* event) { | 761 void GuestViewBase::DispatchEventToView(scoped_ptr<GuestViewEvent> event) { |
760 if (!attached() && | 762 if (!attached() && |
761 (!CanRunInDetachedState() || !can_owner_receive_events())) { | 763 (!CanRunInDetachedState() || !can_owner_receive_events())) { |
762 pending_events_.push_back(linked_ptr<GuestViewEvent>(event)); | 764 pending_events_.push_back(std::move(event)); |
763 return; | 765 return; |
764 } | 766 } |
765 | 767 |
766 event->Dispatch(this, view_instance_id_); | 768 event->Dispatch(this, view_instance_id_); |
767 } | 769 } |
768 | 770 |
769 void GuestViewBase::SendQueuedEvents() { | 771 void GuestViewBase::SendQueuedEvents() { |
770 if (!attached()) | 772 if (!attached()) |
771 return; | 773 return; |
772 while (!pending_events_.empty()) { | 774 while (!pending_events_.empty()) { |
773 linked_ptr<GuestViewEvent> event_ptr = pending_events_.front(); | 775 scoped_ptr<GuestViewEvent> event_ptr = std::move(pending_events_.front()); |
774 pending_events_.pop_front(); | 776 pending_events_.pop_front(); |
775 event_ptr.release()->Dispatch(this, view_instance_id_); | 777 event_ptr->Dispatch(this, view_instance_id_); |
776 } | 778 } |
777 } | 779 } |
778 | 780 |
779 void GuestViewBase::CompleteInit( | 781 void GuestViewBase::CompleteInit( |
780 scoped_ptr<base::DictionaryValue> create_params, | 782 scoped_ptr<base::DictionaryValue> create_params, |
781 const WebContentsCreatedCallback& callback, | 783 const WebContentsCreatedCallback& callback, |
782 WebContents* guest_web_contents) { | 784 WebContents* guest_web_contents) { |
783 if (!guest_web_contents) { | 785 if (!guest_web_contents) { |
784 // The derived class did not create a WebContents so this class serves no | 786 // The derived class did not create a WebContents so this class serves no |
785 // purpose. Let's self-destruct. | 787 // purpose. Let's self-destruct. |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
888 | 890 |
889 void GuestViewBase::UpdateGuestSize(const gfx::Size& new_size, | 891 void GuestViewBase::UpdateGuestSize(const gfx::Size& new_size, |
890 bool due_to_auto_resize) { | 892 bool due_to_auto_resize) { |
891 if (due_to_auto_resize) | 893 if (due_to_auto_resize) |
892 GuestSizeChangedDueToAutoSize(guest_size_, new_size); | 894 GuestSizeChangedDueToAutoSize(guest_size_, new_size); |
893 DispatchOnResizeEvent(guest_size_, new_size); | 895 DispatchOnResizeEvent(guest_size_, new_size); |
894 guest_size_ = new_size; | 896 guest_size_ = new_size; |
895 } | 897 } |
896 | 898 |
897 } // namespace guest_view | 899 } // namespace guest_view |
OLD | NEW |