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 222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
233 GuestViewManager::FromBrowserContext(browser_context_)-> | 233 GuestViewManager::FromBrowserContext(browser_context_)-> |
234 AddGuest(guest_instance_id_, guest_web_contents); | 234 AddGuest(guest_instance_id_, guest_web_contents); |
235 | 235 |
236 // Populate the view instance ID if we have it on creation. | 236 // Populate the view instance ID if we have it on creation. |
237 create_params.GetInteger(kParameterInstanceId, &view_instance_id_); | 237 create_params.GetInteger(kParameterInstanceId, &view_instance_id_); |
238 | 238 |
239 if (CanRunInDetachedState()) | 239 if (CanRunInDetachedState()) |
240 SetUpSizing(create_params); | 240 SetUpSizing(create_params); |
241 | 241 |
242 // Observe guest zoom changes. | 242 // Observe guest zoom changes. |
243 auto zoom_controller = zoom::ZoomController::FromWebContents(web_contents()); | 243 auto* zoom_controller = zoom::ZoomController::FromWebContents(web_contents()); |
244 zoom_controller->AddObserver(this); | 244 zoom_controller->AddObserver(this); |
245 | 245 |
246 // Give the derived class an opportunity to perform additional initialization. | 246 // Give the derived class an opportunity to perform additional initialization. |
247 DidInitialize(create_params); | 247 DidInitialize(create_params); |
248 } | 248 } |
249 | 249 |
250 void GuestViewBase::LoadURLWithParams( | 250 void GuestViewBase::LoadURLWithParams( |
251 const content::NavigationController::LoadURLParams& load_params) { | 251 const content::NavigationController::LoadURLParams& load_params) { |
252 int guest_proxy_routing_id = host()->LoadURLWithParams(load_params); | 252 int guest_proxy_routing_id = host()->LoadURLWithParams(load_params); |
253 DCHECK(guest_proxy_routing_id_ == MSG_ROUTING_NONE || | 253 DCHECK(guest_proxy_routing_id_ == MSG_ROUTING_NONE || |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
346 // static | 346 // static |
347 GuestViewBase* GuestViewBase::FromWebContents(const WebContents* web_contents) { | 347 GuestViewBase* GuestViewBase::FromWebContents(const WebContents* web_contents) { |
348 WebContentsGuestViewMap* guest_map = webcontents_guestview_map.Pointer(); | 348 WebContentsGuestViewMap* guest_map = webcontents_guestview_map.Pointer(); |
349 auto it = guest_map->find(web_contents); | 349 auto it = guest_map->find(web_contents); |
350 return it == guest_map->end() ? nullptr : it->second; | 350 return it == guest_map->end() ? nullptr : it->second; |
351 } | 351 } |
352 | 352 |
353 // static | 353 // static |
354 GuestViewBase* GuestViewBase::From(int owner_process_id, | 354 GuestViewBase* GuestViewBase::From(int owner_process_id, |
355 int guest_instance_id) { | 355 int guest_instance_id) { |
356 auto host = content::RenderProcessHost::FromID(owner_process_id); | 356 auto* host = content::RenderProcessHost::FromID(owner_process_id); |
357 if (!host) | 357 if (!host) |
358 return nullptr; | 358 return nullptr; |
359 | 359 |
360 WebContents* guest_web_contents = | 360 WebContents* guest_web_contents = |
361 GuestViewManager::FromBrowserContext(host->GetBrowserContext()) | 361 GuestViewManager::FromBrowserContext(host->GetBrowserContext()) |
362 ->GetGuestByInstanceIDSafely(guest_instance_id, owner_process_id); | 362 ->GetGuestByInstanceIDSafely(guest_instance_id, owner_process_id); |
363 if (!guest_web_contents) | 363 if (!guest_web_contents) |
364 return nullptr; | 364 return nullptr; |
365 | 365 |
366 return GuestViewBase::FromWebContents(guest_web_contents); | 366 return GuestViewBase::FromWebContents(guest_web_contents); |
(...skipping 20 matching lines...) Expand all Loading... |
387 } | 387 } |
388 | 388 |
389 bool GuestViewBase::ZoomPropagatesFromEmbedderToGuest() const { | 389 bool GuestViewBase::ZoomPropagatesFromEmbedderToGuest() const { |
390 return true; | 390 return true; |
391 } | 391 } |
392 | 392 |
393 void GuestViewBase::SetContextMenuPosition(const gfx::Point& position) {} | 393 void GuestViewBase::SetContextMenuPosition(const gfx::Point& position) {} |
394 | 394 |
395 WebContents* GuestViewBase::CreateNewGuestWindow( | 395 WebContents* GuestViewBase::CreateNewGuestWindow( |
396 const WebContents::CreateParams& create_params) { | 396 const WebContents::CreateParams& create_params) { |
397 auto guest_manager = GuestViewManager::FromBrowserContext(browser_context()); | 397 auto* guest_manager = GuestViewManager::FromBrowserContext(browser_context()); |
398 return guest_manager->CreateGuestWithWebContentsParams( | 398 return guest_manager->CreateGuestWithWebContentsParams( |
399 GetViewType(), | 399 GetViewType(), |
400 owner_web_contents(), | 400 owner_web_contents(), |
401 create_params); | 401 create_params); |
402 } | 402 } |
403 | 403 |
404 void GuestViewBase::DidAttach(int guest_proxy_routing_id) { | 404 void GuestViewBase::DidAttach(int guest_proxy_routing_id) { |
405 DCHECK(guest_proxy_routing_id_ == MSG_ROUTING_NONE || | 405 DCHECK(guest_proxy_routing_id_ == MSG_ROUTING_NONE || |
406 guest_proxy_routing_id == guest_proxy_routing_id_); | 406 guest_proxy_routing_id == guest_proxy_routing_id_); |
407 guest_proxy_routing_id_ = guest_proxy_routing_id; | 407 guest_proxy_routing_id_ = guest_proxy_routing_id; |
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
722 selection_rect, | 722 selection_rect, |
723 active_match_ordinal, | 723 active_match_ordinal, |
724 final_update); | 724 final_update); |
725 } | 725 } |
726 } | 726 } |
727 | 727 |
728 void GuestViewBase::OnZoomChanged( | 728 void GuestViewBase::OnZoomChanged( |
729 const zoom::ZoomController::ZoomChangedEventData& data) { | 729 const zoom::ZoomController::ZoomChangedEventData& data) { |
730 if (data.web_contents == embedder_web_contents()) { | 730 if (data.web_contents == embedder_web_contents()) { |
731 // The embedder's zoom level has changed. | 731 // The embedder's zoom level has changed. |
732 auto guest_zoom_controller = | 732 auto* guest_zoom_controller = |
733 zoom::ZoomController::FromWebContents(web_contents()); | 733 zoom::ZoomController::FromWebContents(web_contents()); |
734 if (content::ZoomValuesEqual(data.new_zoom_level, | 734 if (content::ZoomValuesEqual(data.new_zoom_level, |
735 guest_zoom_controller->GetZoomLevel())) { | 735 guest_zoom_controller->GetZoomLevel())) { |
736 return; | 736 return; |
737 } | 737 } |
738 // When the embedder's zoom level doesn't match the guest's, then update the | 738 // When the embedder's zoom level doesn't match the guest's, then update the |
739 // guest's zoom level to match. | 739 // guest's zoom level to match. |
740 guest_zoom_controller->SetZoomLevel(data.new_zoom_level); | 740 guest_zoom_controller->SetZoomLevel(data.new_zoom_level); |
741 return; | 741 return; |
742 } | 742 } |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
839 set_size_params.min_size.reset(new gfx::Size(min_width, min_height)); | 839 set_size_params.min_size.reset(new gfx::Size(min_width, min_height)); |
840 set_size_params.max_size.reset(new gfx::Size(max_width, max_height)); | 840 set_size_params.max_size.reset(new gfx::Size(max_width, max_height)); |
841 set_size_params.normal_size.reset(new gfx::Size(normal_width, normal_height)); | 841 set_size_params.normal_size.reset(new gfx::Size(normal_width, normal_height)); |
842 | 842 |
843 // Call SetSize to apply all the appropriate validation and clipping of | 843 // Call SetSize to apply all the appropriate validation and clipping of |
844 // values. | 844 // values. |
845 SetSize(set_size_params); | 845 SetSize(set_size_params); |
846 } | 846 } |
847 | 847 |
848 void GuestViewBase::SetGuestZoomLevelToMatchEmbedder() { | 848 void GuestViewBase::SetGuestZoomLevelToMatchEmbedder() { |
849 auto embedder_zoom_controller = | 849 auto* embedder_zoom_controller = |
850 zoom::ZoomController::FromWebContents(owner_web_contents()); | 850 zoom::ZoomController::FromWebContents(owner_web_contents()); |
851 if (!embedder_zoom_controller) | 851 if (!embedder_zoom_controller) |
852 return; | 852 return; |
853 | 853 |
854 zoom::ZoomController::FromWebContents(web_contents()) | 854 zoom::ZoomController::FromWebContents(web_contents()) |
855 ->SetZoomLevel(embedder_zoom_controller->GetZoomLevel()); | 855 ->SetZoomLevel(embedder_zoom_controller->GetZoomLevel()); |
856 } | 856 } |
857 | 857 |
858 void GuestViewBase::StartTrackingEmbedderZoomLevel() { | 858 void GuestViewBase::StartTrackingEmbedderZoomLevel() { |
859 if (!ZoomPropagatesFromEmbedderToGuest()) | 859 if (!ZoomPropagatesFromEmbedderToGuest()) |
860 return; | 860 return; |
861 | 861 |
862 auto embedder_zoom_controller = | 862 auto* embedder_zoom_controller = |
863 zoom::ZoomController::FromWebContents(owner_web_contents()); | 863 zoom::ZoomController::FromWebContents(owner_web_contents()); |
864 // Chrome Apps do not have a ZoomController. | 864 // Chrome Apps do not have a ZoomController. |
865 if (!embedder_zoom_controller) | 865 if (!embedder_zoom_controller) |
866 return; | 866 return; |
867 // Listen to the embedder's zoom changes. | 867 // Listen to the embedder's zoom changes. |
868 embedder_zoom_controller->AddObserver(this); | 868 embedder_zoom_controller->AddObserver(this); |
869 | 869 |
870 // Set the guest's initial zoom level to be equal to the embedder's. | 870 // Set the guest's initial zoom level to be equal to the embedder's. |
871 SetGuestZoomLevelToMatchEmbedder(); | 871 SetGuestZoomLevelToMatchEmbedder(); |
872 } | 872 } |
873 | 873 |
874 void GuestViewBase::StopTrackingEmbedderZoomLevel() { | 874 void GuestViewBase::StopTrackingEmbedderZoomLevel() { |
875 if (!attached() || !ZoomPropagatesFromEmbedderToGuest()) | 875 if (!attached() || !ZoomPropagatesFromEmbedderToGuest()) |
876 return; | 876 return; |
877 | 877 |
878 auto embedder_zoom_controller = | 878 auto* embedder_zoom_controller = |
879 zoom::ZoomController::FromWebContents(owner_web_contents()); | 879 zoom::ZoomController::FromWebContents(owner_web_contents()); |
880 // Chrome Apps do not have a ZoomController. | 880 // Chrome Apps do not have a ZoomController. |
881 if (!embedder_zoom_controller) | 881 if (!embedder_zoom_controller) |
882 return; | 882 return; |
883 embedder_zoom_controller->RemoveObserver(this); | 883 embedder_zoom_controller->RemoveObserver(this); |
884 } | 884 } |
885 | 885 |
886 void GuestViewBase::UpdateGuestSize(const gfx::Size& new_size, | 886 void GuestViewBase::UpdateGuestSize(const gfx::Size& new_size, |
887 bool due_to_auto_resize) { | 887 bool due_to_auto_resize) { |
888 if (due_to_auto_resize) | 888 if (due_to_auto_resize) |
889 GuestSizeChangedDueToAutoSize(guest_size_, new_size); | 889 GuestSizeChangedDueToAutoSize(guest_size_, new_size); |
890 DispatchOnResizeEvent(guest_size_, new_size); | 890 DispatchOnResizeEvent(guest_size_, new_size); |
891 guest_size_ = new_size; | 891 guest_size_ = new_size; |
892 } | 892 } |
893 | 893 |
894 } // namespace guest_view | 894 } // namespace guest_view |
OLD | NEW |