Index: chrome/browser/ui/cocoa/passwords/manage_passwords_bubble_cocoa.mm |
diff --git a/chrome/browser/ui/cocoa/passwords/manage_passwords_bubble_cocoa.mm b/chrome/browser/ui/cocoa/passwords/manage_passwords_bubble_cocoa.mm |
deleted file mode 100644 |
index 8d4baadc69f130026807f877a574662b8336916a..0000000000000000000000000000000000000000 |
--- a/chrome/browser/ui/cocoa/passwords/manage_passwords_bubble_cocoa.mm |
+++ /dev/null |
@@ -1,124 +0,0 @@ |
-// 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. |
- |
-#import "chrome/browser/ui/cocoa/passwords/manage_passwords_bubble_cocoa.h" |
- |
-#include "base/mac/scoped_block.h" |
-#include "chrome/browser/ui/browser_finder.h" |
-#import "chrome/browser/ui/cocoa/browser_window_controller.h" |
-#include "chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.h" |
-#include "chrome/browser/ui/cocoa/location_bar/manage_passwords_decoration.h" |
-#import "chrome/browser/ui/cocoa/passwords/manage_passwords_bubble_controller.h" |
-#include "chrome/browser/ui/passwords/manage_passwords_icon.h" |
-#include "content/public/browser/web_contents.h" |
- |
-typedef void (^Callback)(void); |
- |
-@interface ManagePasswordsBubbleCocoaNotificationBridge : NSObject { |
- base::mac::ScopedBlock<Callback> callback_; |
-} |
-- (id)initWithCallback:(Callback)callback; |
-- (void)onClose; |
-@end |
- |
-@implementation ManagePasswordsBubbleCocoaNotificationBridge |
-- (id)initWithCallback:(Callback)callback { |
- if ((self = [super init])) { |
- callback_.reset(callback, base::scoped_policy::RETAIN); |
- } |
- return self; |
-} |
-- (void)onClose { |
- callback_.get()(); |
-} |
-@end |
- |
-// static |
-ManagePasswordsBubbleCocoa* ManagePasswordsBubbleCocoa::bubble_ = NULL; |
- |
-ManagePasswordsBubbleCocoa::ManagePasswordsBubbleCocoa( |
- content::WebContents* webContents, |
- ManagePasswordsBubbleModel::DisplayReason displayReason, |
- ManagePasswordsIcon* icon) |
- : model_(webContents, displayReason), |
- icon_(icon), |
- closing_(false), |
- controller_(nil), |
- webContents_(webContents), |
- bridge_(nil) { |
- DCHECK(icon_); |
- icon_->SetActive(true); |
-} |
- |
-ManagePasswordsBubbleCocoa::~ManagePasswordsBubbleCocoa() { |
- [[NSNotificationCenter defaultCenter] removeObserver:bridge_]; |
- // Clear the global bubble_ pointer. |
- bubble_ = NULL; |
- if (icon_) |
- icon_->SetActive(false); |
-} |
- |
-void ManagePasswordsBubbleCocoa::Show(bool user_action) { |
- // Create and show the bubble. |
- NSView* browserView = webContents_->GetNativeView(); |
- DCHECK(browserView); |
- NSWindow* browserWindow = [browserView window]; |
- DCHECK(browserWindow); |
- controller_ = [[ManagePasswordsBubbleController alloc] |
- initWithParentWindow:browserWindow |
- model:&model_]; |
- [controller_ setShouldOpenAsKeyWindow:(user_action ? YES : NO)]; |
- [controller_ showWindow:nil]; |
- |
- // Listen for close notification to perform cleanup: the window isn't |
- // necessarily closed by calling Close(). Use a block instead of directly |
- // calling OnClose from the bridge so that we don't need to expose OnClose |
- // in the public API of ManagePasswordsBubbleCocoa. |
- bridge_.reset([[ManagePasswordsBubbleCocoaNotificationBridge alloc] |
- initWithCallback:^{ |
- OnClose(); |
- }]); |
- [[NSNotificationCenter defaultCenter] |
- addObserver:bridge_ |
- selector:@selector(onClose) |
- name:NSWindowWillCloseNotification |
- object:[controller_ window]]; |
-} |
- |
-void ManagePasswordsBubbleCocoa::Close() { |
- if (!closing_) { |
- closing_ = true; |
- [controller_ close]; |
- } |
-} |
- |
-void ManagePasswordsBubbleCocoa::OnClose() { |
- delete this; |
-} |
- |
-// static |
-void ManagePasswordsBubbleCocoa::Show(content::WebContents* webContents, |
- bool user_action) { |
- if (bubble_ && (bubble_->webContents_ != webContents)) { |
- // The bubble is currently shown for some other tab. We should close it now |
- // and open for |webContents|. |
- bubble_->Close(); |
- } |
- if (bubble_) |
- return; |
- |
- NSWindow* window = [webContents->GetNativeView() window]; |
- if (!window) { |
- // The tab isn't active right now. |
- return; |
- } |
- BrowserWindowController* bwc = |
- [BrowserWindowController browserWindowControllerForWindow:window]; |
- bubble_ = new ManagePasswordsBubbleCocoa( |
- webContents, user_action ? ManagePasswordsBubbleModel::USER_ACTION |
- : ManagePasswordsBubbleModel::AUTOMATIC, |
- [bwc locationBarBridge]->manage_passwords_decoration()->icon()); |
- |
- bubble_->Show(user_action); |
-} |