Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(397)

Side by Side Diff: chrome/browser/download/download_danger_prompt.cc

Issue 18179004: Dismiss action in tab modal dialogs. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase, fix CrOS build Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/download/download_danger_prompt.h" 5 #include "chrome/browser/download/download_danger_prompt.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "chrome/browser/chrome_notification_types.h" 8 #include "chrome/browser/chrome_notification_types.h"
9 #include "chrome/browser/download/chrome_download_manager_delegate.h" 9 #include "chrome/browser/download/chrome_download_manager_delegate.h"
10 #include "chrome/browser/ui/tab_modal_confirm_dialog.h" 10 #include "chrome/browser/ui/tab_modal_confirm_dialog.h"
(...skipping 22 matching lines...) Expand all
33 private: 33 private:
34 // content::DownloadItem::Observer 34 // content::DownloadItem::Observer
35 virtual void OnDownloadUpdated(content::DownloadItem* download) OVERRIDE; 35 virtual void OnDownloadUpdated(content::DownloadItem* download) OVERRIDE;
36 36
37 // TabModalConfirmDialogDelegate 37 // TabModalConfirmDialogDelegate
38 virtual string16 GetTitle() OVERRIDE; 38 virtual string16 GetTitle() OVERRIDE;
39 virtual string16 GetMessage() OVERRIDE; 39 virtual string16 GetMessage() OVERRIDE;
40 virtual string16 GetAcceptButtonTitle() OVERRIDE; 40 virtual string16 GetAcceptButtonTitle() OVERRIDE;
41 virtual void OnAccepted() OVERRIDE; 41 virtual void OnAccepted() OVERRIDE;
42 virtual void OnCanceled() OVERRIDE; 42 virtual void OnCanceled() OVERRIDE;
43 virtual void OnClosed() OVERRIDE;
43 44
44 void RunDone(Action action); 45 void RunDone(Action action);
45 46
46 content::DownloadItem* download_; 47 content::DownloadItem* download_;
47 bool show_context_; 48 bool show_context_;
48 OnDone done_; 49 OnDone done_;
49 50
50 DISALLOW_COPY_AND_ASSIGN(DownloadDangerPromptImpl); 51 DISALLOW_COPY_AND_ASSIGN(DownloadDangerPromptImpl);
51 }; 52 };
52 53
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
132 } 133 }
133 134
134 void DownloadDangerPromptImpl::OnAccepted() { 135 void DownloadDangerPromptImpl::OnAccepted() {
135 RunDone(ACCEPT); 136 RunDone(ACCEPT);
136 } 137 }
137 138
138 void DownloadDangerPromptImpl::OnCanceled() { 139 void DownloadDangerPromptImpl::OnCanceled() {
139 RunDone(CANCEL); 140 RunDone(CANCEL);
140 } 141 }
141 142
143 void DownloadDangerPromptImpl::OnClosed() {
144 RunDone(CANCEL);
145 }
146
142 void DownloadDangerPromptImpl::RunDone(Action action) { 147 void DownloadDangerPromptImpl::RunDone(Action action) {
143 // Invoking the callback can cause the download item state to change or cause 148 // Invoking the callback can cause the download item state to change or cause
144 // the constrained window to close, and |callback| refers to a member 149 // the constrained window to close, and |callback| refers to a member
145 // variable. 150 // variable.
146 OnDone done = done_; 151 OnDone done = done_;
147 done_.Reset(); 152 done_.Reset();
148 if (download_ != NULL) { 153 if (download_ != NULL) {
149 download_->RemoveObserver(this); 154 download_->RemoveObserver(this);
150 download_ = NULL; 155 download_ = NULL;
151 } 156 }
152 if (!done.is_null()) 157 if (!done.is_null())
153 done.Run(action); 158 done.Run(action);
154 } 159 }
155 160
156 } // namespace 161 } // namespace
157 162
158 // static 163 // static
159 DownloadDangerPrompt* DownloadDangerPrompt::Create( 164 DownloadDangerPrompt* DownloadDangerPrompt::Create(
160 content::DownloadItem* item, 165 content::DownloadItem* item,
161 content::WebContents* web_contents, 166 content::WebContents* web_contents,
162 bool show_context, 167 bool show_context,
163 const OnDone& done) { 168 const OnDone& done) {
164 DownloadDangerPromptImpl* prompt = new DownloadDangerPromptImpl( 169 DownloadDangerPromptImpl* prompt = new DownloadDangerPromptImpl(
165 item, show_context, done); 170 item, show_context, done);
166 // |prompt| will be deleted when the dialog is done. 171 // |prompt| will be deleted when the dialog is done.
167 TabModalConfirmDialog::Create(prompt, web_contents); 172 TabModalConfirmDialog::Create(prompt, web_contents);
168 return prompt; 173 return prompt;
169 } 174 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698