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

Side by Side Diff: content/browser/web_contents/web_drag_source_mac.mm

Issue 102593002: Convert string16 to base::string16 in content. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years 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 | Annotate | Revision Log
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 #import "content/browser/web_contents/web_drag_source_mac.h" 5 #import "content/browser/web_contents/web_drag_source_mac.h"
6 6
7 #include <sys/param.h> 7 #include <sys/param.h>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/files/file_path.h" 10 #include "base/files/file_path.h"
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 using content::PromiseFileFinalizer; 42 using content::PromiseFileFinalizer;
43 using content::RenderViewHostImpl; 43 using content::RenderViewHostImpl;
44 using net::FileStream; 44 using net::FileStream;
45 45
46 namespace { 46 namespace {
47 47
48 // An unofficial standard pasteboard title type to be provided alongside the 48 // An unofficial standard pasteboard title type to be provided alongside the
49 // |NSURLPboardType|. 49 // |NSURLPboardType|.
50 NSString* const kNSURLTitlePboardType = @"public.url-name"; 50 NSString* const kNSURLTitlePboardType = @"public.url-name";
51 51
52 // Converts a string16 into a FilePath. Use this method instead of 52 // Converts a base::string16 into a FilePath. Use this method instead of
53 // -[NSString fileSystemRepresentation] to prevent exceptions from being thrown. 53 // -[NSString fileSystemRepresentation] to prevent exceptions from being thrown.
54 // See http://crbug.com/78782 for more info. 54 // See http://crbug.com/78782 for more info.
55 base::FilePath FilePathFromFilename(const string16& filename) { 55 base::FilePath FilePathFromFilename(const base::string16& filename) {
56 NSString* str = SysUTF16ToNSString(filename); 56 NSString* str = SysUTF16ToNSString(filename);
57 char buf[MAXPATHLEN]; 57 char buf[MAXPATHLEN];
58 if (![str getFileSystemRepresentation:buf maxLength:sizeof(buf)]) 58 if (![str getFileSystemRepresentation:buf maxLength:sizeof(buf)])
59 return base::FilePath(); 59 return base::FilePath();
60 return base::FilePath(buf); 60 return base::FilePath(buf);
61 } 61 }
62 62
63 // Returns a filename appropriate for the drop data 63 // Returns a filename appropriate for the drop data
64 // TODO(viettrungluu): Refactor to make it common across platforms, 64 // TODO(viettrungluu): Refactor to make it common across platforms,
65 // and move it somewhere sensible. 65 // and move it somewhere sensible.
66 base::FilePath GetFileNameFromDragData(const DropData& drop_data) { 66 base::FilePath GetFileNameFromDragData(const DropData& drop_data) {
67 base::FilePath file_name( 67 base::FilePath file_name(
68 FilePathFromFilename(drop_data.file_description_filename)); 68 FilePathFromFilename(drop_data.file_description_filename));
69 69
70 // Images without ALT text will only have a file extension so we need to 70 // Images without ALT text will only have a file extension so we need to
71 // synthesize one from the provided extension and URL. 71 // synthesize one from the provided extension and URL.
72 if (file_name.empty()) { 72 if (file_name.empty()) {
73 // Retrieve the name from the URL. 73 // Retrieve the name from the URL.
74 string16 suggested_filename = 74 base::string16 suggested_filename =
75 net::GetSuggestedFilename(drop_data.url, "", "", "", "", ""); 75 net::GetSuggestedFilename(drop_data.url, "", "", "", "", "");
76 const std::string extension = file_name.Extension(); 76 const std::string extension = file_name.Extension();
77 file_name = FilePathFromFilename(suggested_filename); 77 file_name = FilePathFromFilename(suggested_filename);
78 file_name = file_name.ReplaceExtension(extension); 78 file_name = file_name.ReplaceExtension(extension);
79 } 79 }
80 80
81 return file_name; 81 return file_name;
82 } 82 }
83 83
84 // This helper's sole task is to write out data for a promised file; the caller 84 // This helper's sole task is to write out data for a promised file; the caller
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 contentsView_ = nil; 140 contentsView_ = nil;
141 } 141 }
142 142
143 - (NSDragOperation)draggingSourceOperationMaskForLocal:(BOOL)isLocal { 143 - (NSDragOperation)draggingSourceOperationMaskForLocal:(BOOL)isLocal {
144 return dragOperationMask_; 144 return dragOperationMask_;
145 } 145 }
146 146
147 - (void)lazyWriteToPasteboard:(NSPasteboard*)pboard forType:(NSString*)type { 147 - (void)lazyWriteToPasteboard:(NSPasteboard*)pboard forType:(NSString*)type {
148 // NSHTMLPboardType requires the character set to be declared. Otherwise, it 148 // NSHTMLPboardType requires the character set to be declared. Otherwise, it
149 // assumes US-ASCII. Awesome. 149 // assumes US-ASCII. Awesome.
150 const string16 kHtmlHeader = ASCIIToUTF16( 150 const base::string16 kHtmlHeader = ASCIIToUTF16(
151 "<meta http-equiv=\"Content-Type\" content=\"text/html;charset=UTF-8\">"); 151 "<meta http-equiv=\"Content-Type\" content=\"text/html;charset=UTF-8\">");
152 152
153 // Be extra paranoid; avoid crashing. 153 // Be extra paranoid; avoid crashing.
154 if (!dropData_) { 154 if (!dropData_) {
155 NOTREACHED(); 155 NOTREACHED();
156 return; 156 return;
157 } 157 }
158 158
159 // HTML. 159 // HTML.
160 if ([type isEqualToString:NSHTMLPboardType] || 160 if ([type isEqualToString:NSHTMLPboardType] ||
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
379 // MIME type. 379 // MIME type.
380 std::string mimeType; 380 std::string mimeType;
381 381
382 // File. 382 // File.
383 if (!dropData_->file_contents.empty() || 383 if (!dropData_->file_contents.empty() ||
384 !dropData_->download_metadata.empty()) { 384 !dropData_->download_metadata.empty()) {
385 if (dropData_->download_metadata.empty()) { 385 if (dropData_->download_metadata.empty()) {
386 downloadFileName_ = GetFileNameFromDragData(*dropData_); 386 downloadFileName_ = GetFileNameFromDragData(*dropData_);
387 net::GetMimeTypeFromExtension(downloadFileName_.Extension(), &mimeType); 387 net::GetMimeTypeFromExtension(downloadFileName_.Extension(), &mimeType);
388 } else { 388 } else {
389 string16 mimeType16; 389 base::string16 mimeType16;
390 base::FilePath fileName; 390 base::FilePath fileName;
391 if (content::ParseDownloadMetadata( 391 if (content::ParseDownloadMetadata(
392 dropData_->download_metadata, 392 dropData_->download_metadata,
393 &mimeType16, 393 &mimeType16,
394 &fileName, 394 &fileName,
395 &downloadURL_)) { 395 &downloadURL_)) {
396 // Generate the file name based on both mime type and proposed file 396 // Generate the file name based on both mime type and proposed file
397 // name. 397 // name.
398 std::string defaultName = 398 std::string defaultName =
399 content::GetContentClient()->browser()->GetDefaultDownloadName(); 399 content::GetContentClient()->browser()->GetDefaultDownloadName();
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
480 - (NSImage*)dragImage { 480 - (NSImage*)dragImage {
481 if (dragImage_) 481 if (dragImage_)
482 return dragImage_; 482 return dragImage_;
483 483
484 // Default to returning a generic image. 484 // Default to returning a generic image.
485 return content::GetContentClient()->GetNativeImageNamed( 485 return content::GetContentClient()->GetNativeImageNamed(
486 IDR_DEFAULT_FAVICON).ToNSImage(); 486 IDR_DEFAULT_FAVICON).ToNSImage();
487 } 487 }
488 488
489 @end // @implementation WebDragSource (Private) 489 @end // @implementation WebDragSource (Private)
OLDNEW
« no previous file with comments | « content/browser/web_contents/web_drag_source_gtk.h ('k') | content/browser/webui/web_ui_data_source_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698