Chromium Code Reviews| 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 |