Index: chrome/browser/ui/cocoa/download/download_item_controller.mm |
diff --git a/chrome/browser/ui/cocoa/download/download_item_controller.mm b/chrome/browser/ui/cocoa/download/download_item_controller.mm |
index aa896e5c66d60e697de2316a03d5bf6587cbbad3..faac76d7ef690268f108ad453d8df683d24d9334 100644 |
--- a/chrome/browser/ui/cocoa/download/download_item_controller.mm |
+++ b/chrome/browser/ui/cocoa/download/download_item_controller.mm |
@@ -1,4 +1,4 @@ |
-// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
+// Copyright (c) 2012 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. |
@@ -29,6 +29,7 @@ |
#include "ui/base/l10n/l10n_util_mac.h" |
#include "ui/base/resource/resource_bundle.h" |
#include "ui/base/text/text_elider.h" |
+#include "ui/gfx/font.h" |
#include "ui/gfx/image/image.h" |
using content::DownloadItem; |
@@ -41,10 +42,6 @@ namespace { |
// rules so all platforms can get inline in the future. |
const int kTextWidth = 140; // Pixels |
-// The maximum number of characters we show in a file name when displaying the |
-// dangerous download message. |
-const int kFileNameMaxLength = 20; |
- |
// The maximum width in pixels for the file name tooltip. |
const int kToolTipMaxWidth = 900; |
@@ -117,6 +114,7 @@ class DownloadShelfContextMenuMac : public DownloadShelfContextMenu { |
shelf_ = shelf; |
state_ = kNormal; |
creationTime_ = base::Time::Now(); |
+ font_.reset(new gfx::Font()); |
} |
return self; |
} |
@@ -165,7 +163,7 @@ class DownloadShelfContextMenuMac : public DownloadShelfContextMenu { |
DCHECK_EQ(bridge_->download_model(), downloadModel); |
// Handle dangerous downloads. |
- if (downloadModel->download()->GetSafetyState() == DownloadItem::DANGEROUS) { |
+ if (downloadModel->IsDangerous()) { |
[self setState:kDangerous]; |
ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
@@ -173,61 +171,15 @@ class DownloadShelfContextMenuMac : public DownloadShelfContextMenu { |
NSString* confirmButtonTitle; |
NSImage* alertIcon; |
- // The dangerous download label, button text and icon are different under |
- // different cases. |
- if (downloadModel->download()->GetDangerType() == |
- content::DOWNLOAD_DANGER_TYPE_DANGEROUS_URL) { |
- // TODO(noelutz): add support for malicious content. |
- // Safebrowsing shows the download URL leads to malicious file. |
+ dangerousWarning = |
+ base::SysUTF16ToNSString(downloadModel->GetWarningText( |
+ *font_, kTextWidth)); |
+ confirmButtonTitle = |
+ base::SysUTF16ToNSString(downloadModel->GetWarningConfirmButtonText()); |
+ if (downloadModel->IsMalicious()) |
alertIcon = rb.GetNativeImageNamed(IDR_SAFEBROWSING_WARNING); |
- dangerousWarning = l10n_util::GetNSStringWithFixup( |
- IDS_PROMPT_MALICIOUS_DOWNLOAD_URL); |
- confirmButtonTitle = l10n_util::GetNSStringWithFixup( |
- IDS_CONFIRM_DOWNLOAD); |
- } else { |
- // It's a dangerous file type (e.g.: an executable). |
- DCHECK_EQ(downloadModel->download()->GetDangerType(), |
- content::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE); |
+ else |
alertIcon = rb.GetNativeImageNamed(IDR_WARNING); |
- if (ChromeDownloadManagerDelegate::IsExtensionDownload( |
- downloadModel->download())) { |
- dangerousWarning = l10n_util::GetNSStringWithFixup( |
- IDS_PROMPT_DANGEROUS_DOWNLOAD_EXTENSION); |
- confirmButtonTitle = l10n_util::GetNSStringWithFixup( |
- IDS_CONTINUE_EXTENSION_DOWNLOAD); |
- } else { |
- // This basic fixup copies Windows DownloadItemView::DownloadItemView(). |
- |
- // Extract the file extension (if any). |
- FilePath filename(downloadModel->download()->GetTargetName()); |
- FilePath::StringType extension = filename.Extension(); |
- |
- // Remove leading '.' from the extension |
- if (extension.length() > 0) |
- extension = extension.substr(1); |
- |
- // Elide giant extensions. |
- if (extension.length() > kFileNameMaxLength / 2) { |
- string16 utf16_extension; |
- ui::ElideString(UTF8ToUTF16(extension), kFileNameMaxLength / 2, |
- &utf16_extension); |
- extension = UTF16ToUTF8(utf16_extension); |
- } |
- |
- // Rebuild the filename.extension. |
- string16 rootname = UTF8ToUTF16(filename.RemoveExtension().value()); |
- ui::ElideString(rootname, kFileNameMaxLength - extension.length(), |
- &rootname); |
- std::string new_filename = UTF16ToUTF8(rootname); |
- if (extension.length()) |
- new_filename += std::string(".") + extension; |
- |
- dangerousWarning = l10n_util::GetNSStringFWithFixup( |
- IDS_PROMPT_DANGEROUS_DOWNLOAD, UTF8ToUTF16(new_filename)); |
- confirmButtonTitle = |
- l10n_util::GetNSStringWithFixup(IDS_CONFIRM_DOWNLOAD); |
- } |
- } |
DCHECK(alertIcon); |
[image_ setImage:alertIcon]; |
DCHECK(dangerousWarning); |
@@ -294,8 +246,7 @@ class DownloadShelfContextMenuMac : public DownloadShelfContextMenu { |
- (void)updateToolTip { |
string16 elidedFilename = ui::ElideFilename( |
- [self download]->GetFileNameToReportUser(), |
- gfx::Font(), kToolTipMaxWidth); |
+ [self download]->GetFileNameToReportUser(), *font_, kToolTipMaxWidth); |
[progressView_ setToolTip:base::SysUTF16ToNSString(elidedFilename)]; |
} |