Chromium Code Reviews| Index: chrome/browser/ui/cocoa/passwords/password_prompt_view_bridge.mm |
| diff --git a/chrome/browser/ui/cocoa/passwords/password_prompt_view_bridge.mm b/chrome/browser/ui/cocoa/passwords/password_prompt_view_bridge.mm |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..81830b13193419c638093f32720006cec0670ecf |
| --- /dev/null |
| +++ b/chrome/browser/ui/cocoa/passwords/password_prompt_view_bridge.mm |
| @@ -0,0 +1,66 @@ |
| +// Copyright (c) 2016 The Chromium Authors. All rights reserved. |
|
vabr (Chromium)
2016/01/21 10:02:10
nit: No "(c)" in the copyright message.
vasilii
2016/01/21 12:48:50
Done.
|
| +// 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/passwords/password_prompt_view_bridge.h" |
| + |
| +#include "chrome/browser/profiles/profile.h" |
| +#import "chrome/browser/ui/cocoa/constrained_window/constrained_window_custom_sheet.h" |
| +#import "chrome/browser/ui/cocoa/constrained_window/constrained_window_custom_window.h" |
| +#import "chrome/browser/ui/cocoa/passwords/account_chooser_view_controller.h" |
| +#include "chrome/browser/ui/passwords/password_dialog_controller.h" |
| +#include "content/public/browser/web_contents.h" |
| + |
| +PasswordPromptViewBridge::PasswordPromptViewBridge( |
| + PasswordDialogController* controller, |
| + content::WebContents* web_contents) |
| + : controller_(controller), |
| + web_contents_(web_contents) { |
| +} |
| + |
| +PasswordPromptViewBridge::~PasswordPromptViewBridge() = default; |
| + |
| +void PasswordPromptViewBridge::Show() { |
| + view_controller_.reset( |
| + [[AccountChooserViewController alloc] initWithBridge:this]); |
| + // Setup the constrained window that will show the view. |
| + base::scoped_nsobject<NSWindow> window([[ConstrainedWindowCustomWindow alloc] |
| + initWithContentRect:[[view_controller_ view] bounds]]); |
| + [window setContentView:[view_controller_ view]]; |
| + base::scoped_nsobject<CustomConstrainedWindowSheet> sheet( |
| + [[CustomConstrainedWindowSheet alloc] initWithCustomWindow:window]); |
| + constrained_window_.reset( |
| + new ConstrainedWindowMac(this, web_contents_, sheet)); |
| +} |
| + |
| +void PasswordPromptViewBridge::ControllerGone() { |
| + controller_ = nullptr; |
| + PerformClose(); |
| +} |
| + |
| +void PasswordPromptViewBridge::OnConstrainedWindowClosed( |
| + ConstrainedWindowMac* window) { |
| + if (controller_) |
| + controller_->OnCloseAccountChooser(); |
| + delete this; |
| +} |
| + |
| +void PasswordPromptViewBridge::PerformClose() { |
| + constrained_window_->CloseWebContentsModalDialog(); |
| +} |
| + |
| +PasswordDialogController* |
| +PasswordPromptViewBridge::GetDialogController() { |
| + return controller_; |
| +} |
| + |
| +net::URLRequestContextGetter* |
| +PasswordPromptViewBridge::GetRequestContext() const { |
| + return Profile::FromBrowserContext(web_contents_->GetBrowserContext())-> |
| + GetRequestContext(); |
| +} |
| + |
| +AccountChooserPrompt* CreateAccountChooserPromptView( |
| + PasswordDialogController* controller, content::WebContents* web_contents) { |
| + return new PasswordPromptViewBridge(controller, web_contents); |
| +} |