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

Side by Side Diff: chrome/browser/ui/views/download/download_item_view.cc

Issue 1672983002: Fix download danger prompt buttons/actions. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix for tests Created 4 years, 10 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/ui/views/download/download_item_view.h" 5 #include "chrome/browser/ui/views/download/download_item_view.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <vector> 10 #include <vector>
(...skipping 1146 matching lines...) Expand 10 before | Expand all | Expand 10 after
1157 delete save_button_; 1157 delete save_button_;
1158 save_button_ = NULL; 1158 save_button_ = NULL;
1159 } 1159 }
1160 RemoveChildView(discard_button_); 1160 RemoveChildView(discard_button_);
1161 delete discard_button_; 1161 delete discard_button_;
1162 discard_button_ = NULL; 1162 discard_button_ = NULL;
1163 RemoveChildView(dangerous_download_label_); 1163 RemoveChildView(dangerous_download_label_);
1164 delete dangerous_download_label_; 1164 delete dangerous_download_label_;
1165 dangerous_download_label_ = NULL; 1165 dangerous_download_label_ = NULL;
1166 dangerous_download_label_sized_ = false; 1166 dangerous_download_label_sized_ = false;
1167 cached_button_size_.SetSize(0,0);
1168 1167
1169 // We need to load the icon now that the download has the real path. 1168 // We need to load the icon now that the download has the real path.
1170 LoadIcon(); 1169 LoadIcon();
1171 } 1170 }
1172 1171
1173 void DownloadItemView::ShowWarningDialog() { 1172 void DownloadItemView::ShowWarningDialog() {
1174 DCHECK(mode_ != DANGEROUS_MODE && mode_ != MALICIOUS_MODE); 1173 DCHECK(mode_ != DANGEROUS_MODE && mode_ != MALICIOUS_MODE);
1175 time_download_warning_shown_ = base::Time::Now(); 1174 time_download_warning_shown_ = base::Time::Now();
1176 content::DownloadDangerType danger_type = download()->GetDangerType(); 1175 content::DownloadDangerType danger_type = download()->GetDangerType();
1177 RecordDangerousDownloadWarningShown(danger_type); 1176 RecordDangerousDownloadWarningShown(danger_type);
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
1234 dangerous_download_label_ = new views::Label(dangerous_label); 1233 dangerous_download_label_ = new views::Label(dangerous_label);
1235 dangerous_download_label_->SetMultiLine(true); 1234 dangerous_download_label_->SetMultiLine(true);
1236 dangerous_download_label_->SetHorizontalAlignment(gfx::ALIGN_LEFT); 1235 dangerous_download_label_->SetHorizontalAlignment(gfx::ALIGN_LEFT);
1237 dangerous_download_label_->SetAutoColorReadabilityEnabled(false); 1236 dangerous_download_label_->SetAutoColorReadabilityEnabled(false);
1238 AddChildView(dangerous_download_label_); 1237 AddChildView(dangerous_download_label_);
1239 SizeLabelToMinWidth(); 1238 SizeLabelToMinWidth();
1240 } 1239 }
1241 1240
1242 gfx::Size DownloadItemView::GetButtonSize() const { 1241 gfx::Size DownloadItemView::GetButtonSize() const {
1243 DCHECK(discard_button_ && (mode_ == MALICIOUS_MODE || save_button_)); 1242 DCHECK(discard_button_ && (mode_ == MALICIOUS_MODE || save_button_));
1244 gfx::Size size; 1243 gfx::Size size = discard_button_->GetPreferredSize();
1245
1246 // We cache the size when successfully retrieved, not for performance reasons
1247 // but because if this DownloadItemView is being animated while the tab is
1248 // not showing, the native buttons are not parented and their preferred size
1249 // is 0, messing-up the layout.
1250 if (cached_button_size_.width() != 0)
1251 return cached_button_size_;
1252
1253 if (save_button_) 1244 if (save_button_)
1254 size = save_button_->GetMinimumSize(); 1245 size.SetToMax(save_button_->GetPreferredSize());
1255 gfx::Size discard_size = discard_button_->GetMinimumSize();
1256
1257 size.SetSize(std::max(size.width(), discard_size.width()),
1258 std::max(size.height(), discard_size.height()));
1259
1260 if (size.width() != 0)
1261 cached_button_size_ = size;
1262
1263 return size; 1246 return size;
1264 } 1247 }
1265 1248
1266 // This method computes the minimum width of the label for displaying its text 1249 // This method computes the minimum width of the label for displaying its text
1267 // on 2 lines. It just breaks the string in 2 lines on the spaces and keeps the 1250 // on 2 lines. It just breaks the string in 2 lines on the spaces and keeps the
1268 // configuration with minimum width. 1251 // configuration with minimum width.
1269 void DownloadItemView::SizeLabelToMinWidth() { 1252 void DownloadItemView::SizeLabelToMinWidth() {
1270 if (dangerous_download_label_sized_) 1253 if (dangerous_download_label_sized_)
1271 return; 1254 return;
1272 1255
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
1385 animation->Reset((to == HOT) ? 1.0 : 0.0); 1368 animation->Reset((to == HOT) ? 1.0 : 0.0);
1386 } 1369 }
1387 } 1370 }
1388 1371
1389 void DownloadItemView::ProgressTimerFired() { 1372 void DownloadItemView::ProgressTimerFired() {
1390 // Only repaint for the indeterminate size case. Otherwise, we'll repaint only 1373 // Only repaint for the indeterminate size case. Otherwise, we'll repaint only
1391 // when there's an update notified via OnDownloadUpdated(). 1374 // when there's an update notified via OnDownloadUpdated().
1392 if (model_.PercentComplete() < 0) 1375 if (model_.PercentComplete() < 0)
1393 SchedulePaint(); 1376 SchedulePaint();
1394 } 1377 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/download/download_item_view.h ('k') | chrome/browser/ui/views/download/download_item_view_md.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698