Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(249)

Side by Side Diff: extensions/browser/guest_view/guest_view_base.cc

Issue 1034803002: Fixed the sizing bug for PDFs opened from links with target=_blank. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Took out unrelated files. Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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 // owner's visible viewport.
801 normal_width = LogicalPixelsToPhysicalPixels(element_width); 791 auto owner_size = owner_web_contents()->GetRenderWidgetHostView()->
792 GetVisibleViewportSize();
793 normal_height = owner_size.height();
794 normal_width = owner_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
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
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698