| 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 |