OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #import <Carbon/Carbon.h> | 5 #import <Carbon/Carbon.h> |
6 | 6 |
7 #import "content/browser/web_contents/web_contents_view_mac.h" | 7 #import "content/browser/web_contents/web_contents_view_mac.h" |
8 | 8 |
9 #include <string> | 9 #include <string> |
10 | 10 |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
73 - (void)cancelDeferredClose; | 73 - (void)cancelDeferredClose; |
74 - (void)clearWebContentsView; | 74 - (void)clearWebContentsView; |
75 - (void)closeTabAfterEvent; | 75 - (void)closeTabAfterEvent; |
76 - (void)updateWebContentsVisibility; | 76 - (void)updateWebContentsVisibility; |
77 - (void)viewDidBecomeFirstResponder:(NSNotification*)notification; | 77 - (void)viewDidBecomeFirstResponder:(NSNotification*)notification; |
78 - (content::WebContentsImpl*)webContents; | 78 - (content::WebContentsImpl*)webContents; |
79 @end | 79 @end |
80 | 80 |
81 namespace { | 81 namespace { |
82 | 82 |
| 83 WebContentsViewMac::RenderWidgetHostViewCreateFunction |
| 84 g_create_render_widget_host_view = nullptr; |
| 85 |
83 content::ScreenInfo GetNSViewScreenInfo(NSView* view) { | 86 content::ScreenInfo GetNSViewScreenInfo(NSView* view) { |
84 display::Display display = | 87 display::Display display = |
85 display::Screen::GetScreen()->GetDisplayNearestWindow(view); | 88 display::Screen::GetScreen()->GetDisplayNearestWindow(view); |
86 | 89 |
87 content::ScreenInfo results; | 90 content::ScreenInfo results; |
88 results.device_scale_factor = static_cast<int>(display.device_scale_factor()); | 91 results.device_scale_factor = static_cast<int>(display.device_scale_factor()); |
89 results.icc_profile = display.icc_profile(); | 92 results.icc_profile = display.icc_profile(); |
90 results.depth = display.color_depth(); | 93 results.depth = display.color_depth(); |
91 results.depth_per_component = display.depth_per_component(); | 94 results.depth_per_component = display.depth_per_component(); |
92 results.is_monochrome = display.is_monochrome(); | 95 results.is_monochrome = display.is_monochrome(); |
93 results.rect = display.bounds(); | 96 results.rect = display.bounds(); |
94 results.available_rect = display.work_area(); | 97 results.available_rect = display.work_area(); |
95 results.orientation_angle = display.RotationAsDegree(); | 98 results.orientation_angle = display.RotationAsDegree(); |
96 results.orientation_type = | 99 results.orientation_type = |
97 content::RenderWidgetHostViewBase::GetOrientationTypeForDesktop(display); | 100 content::RenderWidgetHostViewBase::GetOrientationTypeForDesktop(display); |
98 | 101 |
99 return results; | 102 return results; |
100 } | 103 } |
101 | 104 |
102 } // namespace | 105 } // namespace |
103 | 106 |
104 namespace content { | 107 namespace content { |
105 | 108 |
106 // static | 109 // static |
| 110 void WebContentsViewMac::InstallCreateHookForTests( |
| 111 RenderWidgetHostViewCreateFunction create_render_widget_host_view) { |
| 112 CHECK_EQ(nullptr, g_create_render_widget_host_view); |
| 113 g_create_render_widget_host_view = create_render_widget_host_view; |
| 114 } |
| 115 |
| 116 // static |
107 void WebContentsView::GetDefaultScreenInfo(ScreenInfo* results) { | 117 void WebContentsView::GetDefaultScreenInfo(ScreenInfo* results) { |
108 *results = GetNSViewScreenInfo(nil); | 118 *results = GetNSViewScreenInfo(nil); |
109 } | 119 } |
110 | 120 |
111 WebContentsView* CreateWebContentsView( | 121 WebContentsView* CreateWebContentsView( |
112 WebContentsImpl* web_contents, | 122 WebContentsImpl* web_contents, |
113 WebContentsViewDelegate* delegate, | 123 WebContentsViewDelegate* delegate, |
114 RenderViewHostDelegateView** render_view_host_delegate_view) { | 124 RenderViewHostDelegateView** render_view_host_delegate_view) { |
115 WebContentsViewMac* rv = new WebContentsViewMac(web_contents, delegate); | 125 WebContentsViewMac* rv = new WebContentsViewMac(web_contents, delegate); |
116 *render_view_host_delegate_view = rv; | 126 *render_view_host_delegate_view = rv; |
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
343 // During testing, the view will already be set up in most cases to the | 353 // During testing, the view will already be set up in most cases to the |
344 // test view, so we don't want to clobber it with a real one. To verify that | 354 // test view, so we don't want to clobber it with a real one. To verify that |
345 // this actually is happening (and somebody isn't accidentally creating the | 355 // this actually is happening (and somebody isn't accidentally creating the |
346 // view twice), we check for the RVH Factory, which will be set when we're | 356 // view twice), we check for the RVH Factory, which will be set when we're |
347 // making special ones (which go along with the special views). | 357 // making special ones (which go along with the special views). |
348 DCHECK(RenderViewHostFactory::has_factory()); | 358 DCHECK(RenderViewHostFactory::has_factory()); |
349 return static_cast<RenderWidgetHostViewBase*>( | 359 return static_cast<RenderWidgetHostViewBase*>( |
350 render_widget_host->GetView()); | 360 render_widget_host->GetView()); |
351 } | 361 } |
352 | 362 |
353 RenderWidgetHostViewMac* view = new RenderWidgetHostViewMac( | 363 RenderWidgetHostViewMac* view = |
354 render_widget_host, is_guest_view_hack); | 364 g_create_render_widget_host_view |
| 365 ? g_create_render_widget_host_view(render_widget_host, |
| 366 is_guest_view_hack) |
| 367 : new RenderWidgetHostViewMac(render_widget_host, is_guest_view_hack); |
355 if (delegate()) { | 368 if (delegate()) { |
356 base::scoped_nsobject<NSObject<RenderWidgetHostViewMacDelegate> > | 369 base::scoped_nsobject<NSObject<RenderWidgetHostViewMacDelegate> > |
357 rw_delegate( | 370 rw_delegate( |
358 delegate()->CreateRenderWidgetHostViewDelegate(render_widget_host)); | 371 delegate()->CreateRenderWidgetHostViewDelegate(render_widget_host)); |
359 | 372 |
360 view->SetDelegate(rw_delegate.get()); | 373 view->SetDelegate(rw_delegate.get()); |
361 } | 374 } |
362 view->SetAllowPauseForResizeOrRepaint(!allow_other_views_); | 375 view->SetAllowPauseForResizeOrRepaint(!allow_other_views_); |
363 | 376 |
364 // Fancy layout comes later; for now just make it our size and resize it | 377 // Fancy layout comes later; for now just make it our size and resize it |
(...skipping 356 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
721 | 734 |
722 - (void)viewDidHide { | 735 - (void)viewDidHide { |
723 [self updateWebContentsVisibility]; | 736 [self updateWebContentsVisibility]; |
724 } | 737 } |
725 | 738 |
726 - (void)viewDidUnhide { | 739 - (void)viewDidUnhide { |
727 [self updateWebContentsVisibility]; | 740 [self updateWebContentsVisibility]; |
728 } | 741 } |
729 | 742 |
730 @end | 743 @end |
OLD | NEW |