Chromium Code Reviews| Index: chrome/browser/ui/views/website_settings/permission_bubble_anchor_delegate_views.cc |
| diff --git a/chrome/browser/ui/views/website_settings/permission_bubble_anchor_delegate_views.cc b/chrome/browser/ui/views/website_settings/permission_bubble_anchor_delegate_views.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..1f00789dacefb06603c2ada0fdc56250ee8d4a53 |
| --- /dev/null |
| +++ b/chrome/browser/ui/views/website_settings/permission_bubble_anchor_delegate_views.cc |
| @@ -0,0 +1,56 @@ |
| +// Copyright 2016 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "base/memory/ptr_util.h" |
| +#include "chrome/browser/ui/browser.h" |
| +#include "chrome/browser/ui/browser_window.h" |
|
tapted
2016/05/11 07:06:19
there should be a lot more #includes needed than t
Elly Fong-Jones
2016/05/11 19:16:37
Done.
|
| + |
|
tapted
2016/05/11 07:06:18
namespace {
Elly Fong-Jones
2016/05/11 19:16:37
Done.
|
| +// The Views browser implementation of PermissionBubbleViewViews' |
| +// AnchorDelegate. Views browsers have a native View to anchor the bubble to, |
| +// which this delegate provides. |
| +class PermissionBubbleAnchorDelegateViews |
| + : public PermissionBubbleViewViews::AnchorDelegate { |
| + public: |
| + explicit PermissionBubbleAnchorDelegateViews(Browser* browser); |
| + ~PermissionBubbleAnchorDelegateViews() override; |
|
tapted
2016/05/11 07:06:18
this probably doesn't need to be declared
Elly Fong-Jones
2016/05/11 19:16:37
Done.
|
| + |
| + views::View* GetAnchorView() override; |
| + gfx::Point GetAnchorPoint() override; |
| + |
| + private: |
| + Browser* browser_; |
| +} |
|
tapted
2016/05/11 07:06:19
DISALLOW_COPY_AND_ASSIGN(..)
(also there's a miss
Elly Fong-Jones
2016/05/11 19:16:37
Done.
|
| + |
| +PermissionBubbleAnchorDelegateViews::PermissionBubbleAnchorDelegateViews( |
| + Browser* browser) |
| + : browser_(browser) { |
| +} |
| +PermissionBubbleAnchorDelegateViews::~PermissionBubbleAnchorDelegateViews() {} |
|
tapted
2016/05/11 07:06:19
nit (if it's kept): blank line before
It's also f
Elly Fong-Jones
2016/05/11 19:16:37
Done.
|
| + |
| +views::View* PermissionBubbleAnchorDelegateViews::GetAnchorView() { |
| + BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser_); |
| + |
| + if (browser_->SupportsWindowFeature(Browser::FEATURE_LOCATIONBAR)) |
| + return browser_view->GetLocationBarView()->location_icon_view(); |
| + |
| + if (browser_view->IsFullscreenBubbleVisible()) |
| + return browser_view->exclusive_access_bubble()->GetView(); |
| + |
| + return browser_view->top_container(); |
| +} |
| + |
| +gfx::Point PermissionBubbleAnchorDelegateViews::GetAnchorPoint() { |
| + return gfx::Point(); |
| +} |
| + |
|
tapted
2016/05/11 07:06:18
} // namespace
Elly Fong-Jones
2016/05/11 19:16:37
Done.
|
| +std::unique_ptr<PermissionBubbleViewViews::AnchorDelegate> |
| +PermissionBubbleViewViews::CreateAnchorDelegate(Browser* browser) { |
| + return base::WrapUnique(new PermissionBubbleAnchorDelegateViews(browser)); |
| +} |
| + |
| +// static |
| +std::unique_ptr<PermissionBubbleView> PermissionBubbleView::Create( |
| + Browser* browser) { |
| + return base::WrapUnique(new PermissionBubbleViewViews(browser)); |
| +} |