| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 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 "chrome/browser/ui/views/frame/browser_view.h" | 5 #include "chrome/browser/ui/views/frame/browser_view.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 #include <algorithm> | 8 #include <algorithm> |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 609 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 620 return profiles::IsRegularOrGuestSession(browser_.get()); | 620 return profiles::IsRegularOrGuestSession(browser_.get()); |
| 621 } | 621 } |
| 622 | 622 |
| 623 bool BrowserView::ShouldShowAvatar() const { | 623 bool BrowserView::ShouldShowAvatar() const { |
| 624 #if defined(OS_CHROMEOS) | 624 #if defined(OS_CHROMEOS) |
| 625 if (!browser_->is_type_tabbed() && !browser_->is_app()) | 625 if (!browser_->is_type_tabbed() && !browser_->is_app()) |
| 626 return false; | 626 return false; |
| 627 // Don't show incognito avatar in the guest session. | 627 // Don't show incognito avatar in the guest session. |
| 628 if (IsOffTheRecord() && !IsGuestSession()) | 628 if (IsOffTheRecord() && !IsGuestSession()) |
| 629 return true; | 629 return true; |
| 630 // This function is called via BrowserNonClientFrameView::UpdateAvatarInfo | 630 return chrome::MultiUserWindowManager::ShouldShowAvatar(GetNativeWindow()); |
| 631 // during the creation of the BrowserWindow, so browser->window() will not | |
| 632 // yet be set. In this case we can safely return false. | |
| 633 if (!browser_->window()) | |
| 634 return false; | |
| 635 return chrome::MultiUserWindowManager::ShouldShowAvatar( | |
| 636 browser_->window()->GetNativeWindow()); | |
| 637 #else | 631 #else |
| 638 if (!IsBrowserTypeNormal()) | 632 if (!IsBrowserTypeNormal()) |
| 639 return false; | 633 return false; |
| 640 if (IsOffTheRecord()) // Desktop guest is incognito and needs avatar. | 634 if (IsOffTheRecord()) // Desktop guest is incognito and needs avatar. |
| 641 return true; | 635 return true; |
| 642 // Tests may not have a profile manager. | 636 // Tests may not have a profile manager. |
| 643 if (!g_browser_process->profile_manager()) | 637 if (!g_browser_process->profile_manager()) |
| 644 return false; | 638 return false; |
| 645 ProfileAttributesEntry* entry; | 639 ProfileAttributesEntry* entry; |
| 646 if (!g_browser_process->profile_manager()->GetProfileAttributesStorage(). | 640 if (!g_browser_process->profile_manager()->GetProfileAttributesStorage(). |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 764 return false; | 758 return false; |
| 765 } | 759 } |
| 766 | 760 |
| 767 void BrowserView::SetAlwaysOnTop(bool always_on_top) { | 761 void BrowserView::SetAlwaysOnTop(bool always_on_top) { |
| 768 // Not implemented for browser windows. | 762 // Not implemented for browser windows. |
| 769 NOTIMPLEMENTED(); | 763 NOTIMPLEMENTED(); |
| 770 } | 764 } |
| 771 | 765 |
| 772 gfx::NativeWindow BrowserView::GetNativeWindow() const { | 766 gfx::NativeWindow BrowserView::GetNativeWindow() const { |
| 773 // While the browser destruction is going on, the widget can already be gone, | 767 // While the browser destruction is going on, the widget can already be gone, |
| 774 // but utility functions like FindBrowserWithWindow will come here and crash. | 768 // but utility functions like FindBrowserWithWindow will still call this. |
| 775 // We short circuit therefore. | 769 return GetWidget() ? GetWidget()->GetNativeWindow() : nullptr; |
| 776 if (!GetWidget()) | |
| 777 return nullptr; | |
| 778 return GetWidget()->GetTopLevelWidget()->GetNativeWindow(); | |
| 779 } | 770 } |
| 780 | 771 |
| 781 StatusBubble* BrowserView::GetStatusBubble() { | 772 StatusBubble* BrowserView::GetStatusBubble() { |
| 782 return status_bubble_.get(); | 773 return status_bubble_.get(); |
| 783 } | 774 } |
| 784 | 775 |
| 785 namespace { | 776 namespace { |
| 786 // Only used by ToolbarSizeChanged() below, but placed here because template | 777 // Only used by ToolbarSizeChanged() below, but placed here because template |
| 787 // arguments (to base::AutoReset<>) must have external linkage. | 778 // arguments (to base::AutoReset<>) must have external linkage. |
| 788 enum CallState { NORMAL, REENTRANT, REENTRANT_FORCE_FAST_RESIZE }; | 779 enum CallState { NORMAL, REENTRANT, REENTRANT_FORCE_FAST_RESIZE }; |
| (...skipping 461 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1250 } | 1241 } |
| 1251 | 1242 |
| 1252 gfx::Rect BrowserView::GetRootWindowResizerRect() const { | 1243 gfx::Rect BrowserView::GetRootWindowResizerRect() const { |
| 1253 // Views does not support resizer rects because they caused page cycler | 1244 // Views does not support resizer rects because they caused page cycler |
| 1254 // performance regressions when they were added. See crrev.com/9654 | 1245 // performance regressions when they were added. See crrev.com/9654 |
| 1255 return gfx::Rect(); | 1246 return gfx::Rect(); |
| 1256 } | 1247 } |
| 1257 | 1248 |
| 1258 void BrowserView::ConfirmAddSearchProvider(TemplateURL* template_url, | 1249 void BrowserView::ConfirmAddSearchProvider(TemplateURL* template_url, |
| 1259 Profile* profile) { | 1250 Profile* profile) { |
| 1260 chrome::EditSearchEngine(GetWidget()->GetNativeWindow(), template_url, | 1251 chrome::EditSearchEngine(GetNativeWindow(), template_url, nullptr, profile); |
| 1261 nullptr, profile); | |
| 1262 } | 1252 } |
| 1263 | 1253 |
| 1264 void BrowserView::ShowUpdateChromeDialog() { | 1254 void BrowserView::ShowUpdateChromeDialog() { |
| 1265 UpdateRecommendedMessageBox::Show(GetWidget()->GetNativeWindow()); | 1255 UpdateRecommendedMessageBox::Show(GetNativeWindow()); |
| 1266 } | 1256 } |
| 1267 | 1257 |
| 1268 void BrowserView::ShowBookmarkBubble(const GURL& url, bool already_bookmarked) { | 1258 void BrowserView::ShowBookmarkBubble(const GURL& url, bool already_bookmarked) { |
| 1269 scoped_ptr<BubbleSyncPromoDelegate> delegate; | 1259 scoped_ptr<BubbleSyncPromoDelegate> delegate; |
| 1270 delegate.reset(new BookmarkBubbleSignInDelegate(browser_.get())); | 1260 delegate.reset(new BookmarkBubbleSignInDelegate(browser_.get())); |
| 1271 | 1261 |
| 1272 views::View* anchor_view = GetToolbarView()->GetBookmarkBubbleAnchor(); | 1262 views::View* anchor_view = GetToolbarView()->GetBookmarkBubbleAnchor(); |
| 1273 views::Widget* bubble_widget = BookmarkBubbleView::ShowBubble( | 1263 views::Widget* bubble_widget = BookmarkBubbleView::ShowBubble( |
| 1274 anchor_view, gfx::Rect(), nullptr, bookmark_bar_view_.get(), | 1264 anchor_view, gfx::Rect(), nullptr, bookmark_bar_view_.get(), |
| 1275 std::move(delegate), browser_->profile(), url, already_bookmarked); | 1265 std::move(delegate), browser_->profile(), url, already_bookmarked); |
| (...skipping 1435 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2711 } | 2701 } |
| 2712 | 2702 |
| 2713 extensions::ActiveTabPermissionGranter* | 2703 extensions::ActiveTabPermissionGranter* |
| 2714 BrowserView::GetActiveTabPermissionGranter() { | 2704 BrowserView::GetActiveTabPermissionGranter() { |
| 2715 content::WebContents* web_contents = GetActiveWebContents(); | 2705 content::WebContents* web_contents = GetActiveWebContents(); |
| 2716 if (!web_contents) | 2706 if (!web_contents) |
| 2717 return nullptr; | 2707 return nullptr; |
| 2718 return extensions::TabHelper::FromWebContents(web_contents) | 2708 return extensions::TabHelper::FromWebContents(web_contents) |
| 2719 ->active_tab_permission_granter(); | 2709 ->active_tab_permission_granter(); |
| 2720 } | 2710 } |
| OLD | NEW |