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

Side by Side Diff: content/browser/web_contents/web_contents_view_aura.cc

Issue 211383007: Use FilePaths in content::DropData to avoid redundant conversions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: clang-format Created 6 years, 8 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 | 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 #include "content/browser/web_contents/web_contents_view_aura.h" 5 #include "content/browser/web_contents/web_contents_view_aura.h"
6 6
7 #include "base/auto_reset.h" 7 #include "base/auto_reset.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/file_util.h" 9 #include "base/file_util.h"
10 #include "base/metrics/histogram.h" 10 #include "base/metrics/histogram.h"
(...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after
343 // a shortcut so we add it first. 343 // a shortcut so we add it first.
344 if (!drop_data.file_contents.empty()) 344 if (!drop_data.file_contents.empty())
345 PrepareDragForFileContents(drop_data, provider); 345 PrepareDragForFileContents(drop_data, provider);
346 #endif 346 #endif
347 if (!drop_data.text.string().empty()) 347 if (!drop_data.text.string().empty())
348 provider->SetString(drop_data.text.string()); 348 provider->SetString(drop_data.text.string());
349 if (drop_data.url.is_valid()) 349 if (drop_data.url.is_valid())
350 provider->SetURL(drop_data.url, drop_data.url_title); 350 provider->SetURL(drop_data.url, drop_data.url_title);
351 if (!drop_data.html.string().empty()) 351 if (!drop_data.html.string().empty())
352 provider->SetHtml(drop_data.html.string(), drop_data.html_base_url); 352 provider->SetHtml(drop_data.html.string(), drop_data.html_base_url);
353 if (!drop_data.filenames.empty()) { 353 if (!drop_data.filenames.empty())
354 std::vector<ui::OSExchangeData::FileInfo> filenames; 354 provider->SetFilenames(drop_data.filenames);
355 for (std::vector<DropData::FileInfo>::const_iterator it =
356 drop_data.filenames.begin();
357 it != drop_data.filenames.end(); ++it) {
358 filenames.push_back(
359 ui::OSExchangeData::FileInfo(
360 base::FilePath::FromUTF8Unsafe(base::UTF16ToUTF8(it->path)),
361 base::FilePath::FromUTF8Unsafe(
362 base::UTF16ToUTF8(it->display_name))));
363 }
364 provider->SetFilenames(filenames);
365 }
366 if (!drop_data.custom_data.empty()) { 355 if (!drop_data.custom_data.empty()) {
367 Pickle pickle; 356 Pickle pickle;
368 ui::WriteCustomDataToPickle(drop_data.custom_data, &pickle); 357 ui::WriteCustomDataToPickle(drop_data.custom_data, &pickle);
369 provider->SetPickledData(ui::Clipboard::GetWebCustomDataFormatType(), 358 provider->SetPickledData(ui::Clipboard::GetWebCustomDataFormatType(),
370 pickle); 359 pickle);
371 } 360 }
372 } 361 }
373 362
374 // Utility to fill a DropData object from ui::OSExchangeData. 363 // Utility to fill a DropData object from ui::OSExchangeData.
375 void PrepareDropData(DropData* drop_data, const ui::OSExchangeData& data) { 364 void PrepareDropData(DropData* drop_data, const ui::OSExchangeData& data) {
(...skipping 14 matching lines...) Expand all
390 } 379 }
391 380
392 base::string16 html; 381 base::string16 html;
393 GURL html_base_url; 382 GURL html_base_url;
394 data.GetHtml(&html, &html_base_url); 383 data.GetHtml(&html, &html_base_url);
395 if (!html.empty()) 384 if (!html.empty())
396 drop_data->html = base::NullableString16(html, false); 385 drop_data->html = base::NullableString16(html, false);
397 if (html_base_url.is_valid()) 386 if (html_base_url.is_valid())
398 drop_data->html_base_url = html_base_url; 387 drop_data->html_base_url = html_base_url;
399 388
400 std::vector<ui::OSExchangeData::FileInfo> files; 389 data.GetFilenames(&drop_data->filenames);
401 if (data.GetFilenames(&files) && !files.empty()) {
402 for (std::vector<ui::OSExchangeData::FileInfo>::const_iterator
403 it = files.begin(); it != files.end(); ++it) {
404 drop_data->filenames.push_back(
405 DropData::FileInfo(
406 base::UTF8ToUTF16(it->path.AsUTF8Unsafe()),
407 base::UTF8ToUTF16(it->display_name.AsUTF8Unsafe())));
408 }
409 }
410 390
411 Pickle pickle; 391 Pickle pickle;
412 if (data.GetPickledData(ui::Clipboard::GetWebCustomDataFormatType(), &pickle)) 392 if (data.GetPickledData(ui::Clipboard::GetWebCustomDataFormatType(), &pickle))
413 ui::ReadCustomDataIntoMap( 393 ui::ReadCustomDataIntoMap(
414 pickle.data(), pickle.size(), &drop_data->custom_data); 394 pickle.data(), pickle.size(), &drop_data->custom_data);
415 } 395 }
416 396
417 // Utilities to convert between blink::WebDragOperationsMask and 397 // Utilities to convert between blink::WebDragOperationsMask and
418 // ui::DragDropTypes. 398 // ui::DragDropTypes.
419 int ConvertFromWeb(blink::WebDragOperationsMask ops) { 399 int ConvertFromWeb(blink::WebDragOperationsMask ops) {
(...skipping 1109 matching lines...) Expand 10 before | Expand all | Expand 10 after
1529 event.location(), 1509 event.location(),
1530 gfx::Screen::GetScreenFor(GetNativeView())->GetCursorScreenPoint(), 1510 gfx::Screen::GetScreenFor(GetNativeView())->GetCursorScreenPoint(),
1531 ConvertAuraEventFlagsToWebInputEventModifiers(event.flags())); 1511 ConvertAuraEventFlagsToWebInputEventModifiers(event.flags()));
1532 if (drag_dest_delegate_) 1512 if (drag_dest_delegate_)
1533 drag_dest_delegate_->OnDrop(); 1513 drag_dest_delegate_->OnDrop();
1534 current_drop_data_.reset(); 1514 current_drop_data_.reset();
1535 return ConvertFromWeb(current_drag_op_); 1515 return ConvertFromWeb(current_drag_op_);
1536 } 1516 }
1537 1517
1538 } // namespace content 1518 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698