| OLD | NEW |
| (Empty) | |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 #include "base/bind.h" |
| 6 #include "chrome/browser/ui/website_settings/permission_bubble_delegate.h" |
| 7 #include "chrome/browser/ui/website_settings/permission_bubble_manager.h" |
| 8 #include "chrome/browser/ui/website_settings/permission_bubble_view.h" |
| 9 #include "components/bubble/bubble_builder.h" |
| 10 |
| 11 PermissionBubbleDelegate::PermissionBubbleDelegate( |
| 12 Browser* browser, |
| 13 PermissionBubbleManager* permission_bubble_manager) |
| 14 : browser_(browser), |
| 15 permission_bubble_manager_(permission_bubble_manager), |
| 16 #if !defined(OS_ANDROID) // No bubbles in android tests. |
| 17 view_factory_(base::Bind(&PermissionBubbleView::Create)), |
| 18 #endif |
| 19 view_(nullptr) { |
| 20 DCHECK(browser); |
| 21 } |
| 22 |
| 23 PermissionBubbleDelegate::~PermissionBubbleDelegate() {} |
| 24 |
| 25 void PermissionBubbleDelegate::OnShow() { |
| 26 // TODO(hcarmona): what to do here? |
| 27 view_->SetDelegate(permission_bubble_manager_); |
| 28 view_->Show(permission_bubble_manager_->requests_, |
| 29 permission_bubble_manager_->accept_states_); |
| 30 } |
| 31 |
| 32 void PermissionBubbleDelegate::OnHide() { |
| 33 // TODO(hcarmona): what to do here? |
| 34 // view_->SetDelegate(nullptr); not always.... TODO(hcarmona): decide when. |
| 35 view_->Hide(); |
| 36 } |
| 37 |
| 38 void PermissionBubbleDelegate::OnUpdatePosition() { |
| 39 // TODO(hcarmona): what to do here? |
| 40 view_->UpdateAnchorPosition(); |
| 41 } |
| 42 |
| 43 void PermissionBubbleDelegate::BuildBubble(BubbleBuilder* builder) { |
| 44 view_ = view_factory_.Run(browser_); |
| 45 // TODO(hcarmona): get native view from view_; |
| 46 builder->SetNativeWindow(nullptr); |
| 47 } |
| OLD | NEW |