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 "extensions/browser/guest_view/guest_view_base.h" | 5 #include "extensions/browser/guest_view/guest_view_base.h" |
6 | 6 |
7 #include "base/lazy_instance.h" | 7 #include "base/lazy_instance.h" |
8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
9 #include "components/ui/zoom/page_zoom.h" | 9 #include "components/ui/zoom/page_zoom.h" |
10 #include "components/ui/zoom/zoom_controller.h" | 10 #include "components/ui/zoom/zoom_controller.h" |
11 #include "content/public/browser/navigation_details.h" | 11 #include "content/public/browser/navigation_details.h" |
12 #include "content/public/browser/render_frame_host.h" | 12 #include "content/public/browser/render_frame_host.h" |
13 #include "content/public/browser/render_process_host.h" | 13 #include "content/public/browser/render_process_host.h" |
14 #include "content/public/browser/render_view_host.h" | 14 #include "content/public/browser/render_view_host.h" |
15 #include "content/public/browser/render_widget_host_view.h" | |
15 #include "content/public/browser/web_contents.h" | 16 #include "content/public/browser/web_contents.h" |
16 #include "content/public/common/page_zoom.h" | 17 #include "content/public/common/page_zoom.h" |
17 #include "content/public/common/url_constants.h" | 18 #include "content/public/common/url_constants.h" |
18 #include "extensions/browser/api/extensions_api_client.h" | 19 #include "extensions/browser/api/extensions_api_client.h" |
19 #include "extensions/browser/event_router.h" | 20 #include "extensions/browser/event_router.h" |
20 #include "extensions/browser/extension_registry.h" | 21 #include "extensions/browser/extension_registry.h" |
21 #include "extensions/browser/guest_view/app_view/app_view_guest.h" | 22 #include "extensions/browser/guest_view/app_view/app_view_guest.h" |
22 #include "extensions/browser/guest_view/extension_options/extension_options_gues t.h" | 23 #include "extensions/browser/guest_view/extension_options/extension_options_gues t.h" |
23 #include "extensions/browser/guest_view/extension_view/extension_view_guest.h" | 24 #include "extensions/browser/guest_view/extension_view/extension_view_guest.h" |
24 #include "extensions/browser/guest_view/guest_view_manager.h" | 25 #include "extensions/browser/guest_view/guest_view_manager.h" |
(...skipping 750 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
775 int max_height = 0; | 776 int max_height = 0; |
776 int max_width = 0; | 777 int max_width = 0; |
777 params.GetInteger(guestview::kAttributeMaxHeight, &max_height); | 778 params.GetInteger(guestview::kAttributeMaxHeight, &max_height); |
778 params.GetInteger(guestview::kAttributeMaxWidth, &max_width); | 779 params.GetInteger(guestview::kAttributeMaxWidth, &max_width); |
779 | 780 |
780 int min_height = 0; | 781 int min_height = 0; |
781 int min_width = 0; | 782 int min_width = 0; |
782 params.GetInteger(guestview::kAttributeMinHeight, &min_height); | 783 params.GetInteger(guestview::kAttributeMinHeight, &min_height); |
783 params.GetInteger(guestview::kAttributeMinWidth, &min_width); | 784 params.GetInteger(guestview::kAttributeMinWidth, &min_width); |
784 | 785 |
785 // Set the normal size to the element size so that the guestview will fit the | |
786 // element initially if autosize is disabled. | |
787 double element_height = 0.0; | |
788 double element_width = 0.0; | |
789 params.GetDouble(guestview::kElementHeight, &element_height); | |
790 params.GetDouble(guestview::kElementWidth, &element_width); | |
791 | |
792 // If the element size was provided in logical units (versus physical), then | |
793 // it will be converted to physical units. | |
794 bool element_size_is_logical = false; | |
795 params.GetBoolean(guestview::kElementSizeIsLogical, &element_size_is_logical); | |
796 int normal_height = 0; | 786 int normal_height = 0; |
797 int normal_width = 0; | 787 int normal_width = 0; |
798 if (element_size_is_logical) { | 788 if (is_full_page_plugin()) { |
799 // Convert the element size from logical pixels to physical pixels. | 789 // The initial size of a full page plugin should be set to fill the |
800 normal_height = LogicalPixelsToPhysicalPixels(element_height); | 790 // embedder's visible viewport. |
801 normal_width = LogicalPixelsToPhysicalPixels(element_width); | 791 auto embedder_size = embedder_web_contents()->GetRenderWidgetHostView()-> |
Fady Samuel
2015/03/25 20:30:10
Use owner_web_contents() instead. embedder_web_con
paulmeyer
2015/03/25 20:58:36
Done.
| |
792 GetVisibleViewportSize(); | |
793 normal_height = embedder_size.height(); | |
794 normal_width = embedder_size.width(); | |
802 } else { | 795 } else { |
803 normal_height = lround(element_height); | 796 // Set the normal size to the element size so that the guestview will fit |
804 normal_width = lround(element_width); | 797 // the element initially if autosize is disabled. |
798 double element_height = 0.0; | |
799 double element_width = 0.0; | |
800 params.GetDouble(guestview::kElementHeight, &element_height); | |
801 params.GetDouble(guestview::kElementWidth, &element_width); | |
802 | |
803 // If the element size was provided in logical units (versus physical), then | |
804 // it will be converted to physical units. | |
805 bool element_size_is_logical = false; | |
806 params.GetBoolean(guestview::kElementSizeIsLogical, | |
807 &element_size_is_logical); | |
808 if (element_size_is_logical) { | |
809 // Convert the element size from logical pixels to physical pixels. | |
810 normal_height = LogicalPixelsToPhysicalPixels(element_height); | |
811 normal_width = LogicalPixelsToPhysicalPixels(element_width); | |
812 } else { | |
813 normal_height = lround(element_height); | |
814 normal_width = lround(element_width); | |
815 } | |
805 } | 816 } |
806 | 817 |
807 SetSizeParams set_size_params; | 818 SetSizeParams set_size_params; |
808 set_size_params.enable_auto_size.reset(new bool(auto_size_enabled)); | 819 set_size_params.enable_auto_size.reset(new bool(auto_size_enabled)); |
809 set_size_params.min_size.reset(new gfx::Size(min_width, min_height)); | 820 set_size_params.min_size.reset(new gfx::Size(min_width, min_height)); |
810 set_size_params.max_size.reset(new gfx::Size(max_width, max_height)); | 821 set_size_params.max_size.reset(new gfx::Size(max_width, max_height)); |
811 set_size_params.normal_size.reset(new gfx::Size(normal_width, normal_height)); | 822 set_size_params.normal_size.reset(new gfx::Size(normal_width, normal_height)); |
812 | 823 |
813 // Call SetSize to apply all the appropriate validation and clipping of | 824 // Call SetSize to apply all the appropriate validation and clipping of |
814 // values. | 825 // values. |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
847 void GuestViewBase::RegisterGuestViewTypes() { | 858 void GuestViewBase::RegisterGuestViewTypes() { |
848 AppViewGuest::Register(); | 859 AppViewGuest::Register(); |
849 ExtensionOptionsGuest::Register(); | 860 ExtensionOptionsGuest::Register(); |
850 ExtensionViewGuest::Register(); | 861 ExtensionViewGuest::Register(); |
851 MimeHandlerViewGuest::Register(); | 862 MimeHandlerViewGuest::Register(); |
852 SurfaceWorkerGuest::Register(); | 863 SurfaceWorkerGuest::Register(); |
853 WebViewGuest::Register(); | 864 WebViewGuest::Register(); |
854 } | 865 } |
855 | 866 |
856 } // namespace extensions | 867 } // namespace extensions |
OLD | NEW |