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 #include "content/browser/renderer_host/render_widget_host_view_mac.h" | 5 #include "content/browser/renderer_host/render_widget_host_view_mac.h" |
6 | 6 |
7 #include <QuartzCore/QuartzCore.h> | 7 #include <QuartzCore/QuartzCore.h> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/debug/trace_event.h" | 10 #include "base/debug/trace_event.h" |
(...skipping 336 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
347 } | 347 } |
348 | 348 |
349 RenderWidgetHost* RenderWidgetHostViewMac::GetRenderWidgetHost() const { | 349 RenderWidgetHost* RenderWidgetHostViewMac::GetRenderWidgetHost() const { |
350 return render_widget_host_; | 350 return render_widget_host_; |
351 } | 351 } |
352 | 352 |
353 void RenderWidgetHostViewMac::DidBecomeSelected() { | 353 void RenderWidgetHostViewMac::DidBecomeSelected() { |
354 if (!is_hidden_) | 354 if (!is_hidden_) |
355 return; | 355 return; |
356 | 356 |
357 if (tab_switch_paint_time_.is_null()) | 357 if (web_contents_switch_paint_time_.is_null()) |
358 tab_switch_paint_time_ = base::TimeTicks::Now(); | 358 web_contents_switch_paint_time_ = base::TimeTicks::Now(); |
359 is_hidden_ = false; | 359 is_hidden_ = false; |
360 render_widget_host_->WasRestored(); | 360 render_widget_host_->WasRestored(); |
361 | 361 |
362 // We're messing with the window, so do this to ensure no flashes. | 362 // We're messing with the window, so do this to ensure no flashes. |
363 [[cocoa_view_ window] disableScreenUpdatesUntilFlush]; | 363 [[cocoa_view_ window] disableScreenUpdatesUntilFlush]; |
364 } | 364 } |
365 | 365 |
366 void RenderWidgetHostViewMac::WasHidden() { | 366 void RenderWidgetHostViewMac::WasHidden() { |
367 if (is_hidden_) | 367 if (is_hidden_) |
368 return; | 368 return; |
(...skipping 25 matching lines...) Expand all Loading... |
394 SetBounds(rect); | 394 SetBounds(rect); |
395 } | 395 } |
396 | 396 |
397 void RenderWidgetHostViewMac::SetBounds(const gfx::Rect& rect) { | 397 void RenderWidgetHostViewMac::SetBounds(const gfx::Rect& rect) { |
398 // |rect.size()| is view coordinates, |rect.origin| is screen coordinates, | 398 // |rect.size()| is view coordinates, |rect.origin| is screen coordinates, |
399 // TODO(thakis): fix, http://crbug.com/73362 | 399 // TODO(thakis): fix, http://crbug.com/73362 |
400 if (is_hidden_) | 400 if (is_hidden_) |
401 return; | 401 return; |
402 | 402 |
403 // During the initial creation of the RenderWidgetHostView in | 403 // During the initial creation of the RenderWidgetHostView in |
404 // TabContents::CreateRenderViewForRenderManager, SetSize is called with an | 404 // WebContentsImpl::CreateRenderViewForRenderManager, SetSize is called with |
405 // empty size. In the Windows code flow, it is not ignored because subsequent | 405 // an empty size. In the Windows code flow, it is not ignored because |
406 // sizing calls from the OS flow through TCVW::WasSized which calls SetSize() | 406 // subsequent sizing calls from the OS flow through TCVW::WasSized which calls |
407 // again. On Cocoa, we rely on the Cocoa view struture and resizer flags to | 407 // SetSize() again. On Cocoa, we rely on the Cocoa view struture and resizer |
408 // keep things sized properly. On the other hand, if the size is not empty | 408 // flags to keep things sized properly. On the other hand, if the size is not |
409 // then this is a valid request for a pop-up. | 409 // empty then this is a valid request for a pop-up. |
410 if (rect.size().IsEmpty()) | 410 if (rect.size().IsEmpty()) |
411 return; | 411 return; |
412 | 412 |
413 // Ignore the position of |rect| for non-popup rwhvs. This is because | 413 // Ignore the position of |rect| for non-popup rwhvs. This is because |
414 // background tabs do not have a window, but the window is required for the | 414 // background tabs do not have a window, but the window is required for the |
415 // coordinate conversions. Popups are always for a visible tab. | 415 // coordinate conversions. Popups are always for a visible tab. |
416 if (IsPopup()) { | 416 if (IsPopup()) { |
417 // The position of |rect| is screen coordinate system and we have to | 417 // The position of |rect| is screen coordinate system and we have to |
418 // consider Cocoa coordinate system is upside-down and also multi-screen. | 418 // consider Cocoa coordinate system is upside-down and also multi-screen. |
419 NSPoint origin_global = NSPointFromCGPoint(rect.origin().ToCGPoint()); | 419 NSPoint origin_global = NSPointFromCGPoint(rect.origin().ToCGPoint()); |
(...skipping 1517 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1937 | 1937 |
1938 if (!renderWidgetHostView_->whiteout_start_time_.is_null()) { | 1938 if (!renderWidgetHostView_->whiteout_start_time_.is_null()) { |
1939 base::TimeDelta whiteout_duration = base::TimeTicks::Now() - | 1939 base::TimeDelta whiteout_duration = base::TimeTicks::Now() - |
1940 renderWidgetHostView_->whiteout_start_time_; | 1940 renderWidgetHostView_->whiteout_start_time_; |
1941 UMA_HISTOGRAM_TIMES("MPArch.RWHH_WhiteoutDuration", whiteout_duration); | 1941 UMA_HISTOGRAM_TIMES("MPArch.RWHH_WhiteoutDuration", whiteout_duration); |
1942 | 1942 |
1943 // Reset the start time to 0 so that we start recording again the next | 1943 // Reset the start time to 0 so that we start recording again the next |
1944 // time the backing store is NULL... | 1944 // time the backing store is NULL... |
1945 renderWidgetHostView_->whiteout_start_time_ = base::TimeTicks(); | 1945 renderWidgetHostView_->whiteout_start_time_ = base::TimeTicks(); |
1946 } | 1946 } |
1947 if (!renderWidgetHostView_->tab_switch_paint_time_.is_null()) { | 1947 if (!renderWidgetHostView_->web_contents_switch_paint_time_.is_null()) { |
1948 base::TimeDelta tab_switch_paint_duration = base::TimeTicks::Now() - | 1948 base::TimeDelta web_contents_switch_paint_duration = |
1949 renderWidgetHostView_->tab_switch_paint_time_; | 1949 base::TimeTicks::Now() - |
| 1950 renderWidgetHostView_->web_contents_switch_paint_time_; |
1950 UMA_HISTOGRAM_TIMES("MPArch.RWH_TabSwitchPaintDuration", | 1951 UMA_HISTOGRAM_TIMES("MPArch.RWH_TabSwitchPaintDuration", |
1951 tab_switch_paint_duration); | 1952 web_contents_switch_paint_duration); |
1952 // Reset tab_switch_paint_time_ to 0 so future tab selections are | 1953 // Reset contents_switch_paint_time_ to 0 so future tab selections are |
1953 // recorded. | 1954 // recorded. |
1954 renderWidgetHostView_->tab_switch_paint_time_ = base::TimeTicks(); | 1955 renderWidgetHostView_->web_contents_switch_paint_time_ = |
| 1956 base::TimeTicks(); |
1955 } | 1957 } |
1956 } else { | 1958 } else { |
1957 [[NSColor whiteColor] set]; | 1959 [[NSColor whiteColor] set]; |
1958 NSRectFill(dirtyRect); | 1960 NSRectFill(dirtyRect); |
1959 if (renderWidgetHostView_->whiteout_start_time_.is_null()) | 1961 if (renderWidgetHostView_->whiteout_start_time_.is_null()) |
1960 renderWidgetHostView_->whiteout_start_time_ = base::TimeTicks::Now(); | 1962 renderWidgetHostView_->whiteout_start_time_ = base::TimeTicks::Now(); |
1961 } | 1963 } |
1962 } | 1964 } |
1963 | 1965 |
1964 - (BOOL)canBecomeKeyView { | 1966 - (BOOL)canBecomeKeyView { |
(...skipping 913 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2878 if (!string) return NO; | 2880 if (!string) return NO; |
2879 | 2881 |
2880 // If the user is currently using an IME, confirm the IME input, | 2882 // If the user is currently using an IME, confirm the IME input, |
2881 // and then insert the text from the service, the same as TextEdit and Safari. | 2883 // and then insert the text from the service, the same as TextEdit and Safari. |
2882 [self confirmComposition]; | 2884 [self confirmComposition]; |
2883 [self insertText:string]; | 2885 [self insertText:string]; |
2884 return YES; | 2886 return YES; |
2885 } | 2887 } |
2886 | 2888 |
2887 @end | 2889 @end |
OLD | NEW |