blob: 4412909ef6d55580939a729ae5c6995a6233ae23 [file] [log] [blame]
// Copyright 2014 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 "chrome/browser/ui/cocoa/permission_bubble/permission_bubble_cocoa.h"
#include "base/memory/ptr_util.h"
#import "chrome/browser/ui/cocoa/base_bubble_controller.h"
#import "chrome/browser/ui/cocoa/permission_bubble/permission_bubble_controller.h"
#import "chrome/browser/ui/permission_bubble/permission_prompt.h"
#include "content/public/browser/web_contents.h"
#import "ui/base/cocoa/nsview_additions.h"
PermissionBubbleCocoa::PermissionBubbleCocoa(Browser* browser,
Delegate* delegate)
: browser_(browser), delegate_(delegate), bubbleController_(nil) {
DCHECK(browser_);
if (!bubbleController_) {
bubbleController_ =
[[PermissionBubbleController alloc] initWithBrowser:browser_
bridge:this];
}
[bubbleController_ showWithDelegate:delegate_];
}
PermissionBubbleCocoa::~PermissionBubbleCocoa() {
[bubbleController_ close];
}
bool PermissionBubbleCocoa::CanAcceptRequestUpdate() {
return ![[[bubbleController_ window] contentView] cr_isMouseInView];
}
void PermissionBubbleCocoa::UpdateAnchorPosition() {
[bubbleController_ updateAnchorPosition];
}
gfx::NativeWindow PermissionBubbleCocoa::GetNativeWindow() {
return [bubbleController_ window];
}
void PermissionBubbleCocoa::OnBubbleClosing() {
bubbleController_ = nil;
}