| OLD | NEW |
| 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/files/file_util.h" | 9 #include "base/files/file_util.h" |
| 10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
| (...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 222 static const char kFormatString[] = "chromium/x-file-system-files"; | 222 static const char kFormatString[] = "chromium/x-file-system-files"; |
| 223 CR_DEFINE_STATIC_LOCAL(ui::OSExchangeData::CustomFormat, | 223 CR_DEFINE_STATIC_LOCAL(ui::OSExchangeData::CustomFormat, |
| 224 format, | 224 format, |
| 225 (ui::Clipboard::GetFormatType(kFormatString))); | 225 (ui::Clipboard::GetFormatType(kFormatString))); |
| 226 return format; | 226 return format; |
| 227 } | 227 } |
| 228 | 228 |
| 229 // Writes file system files to the pickle. | 229 // Writes file system files to the pickle. |
| 230 void WriteFileSystemFilesToPickle( | 230 void WriteFileSystemFilesToPickle( |
| 231 const std::vector<DropData::FileSystemFileInfo>& file_system_files, | 231 const std::vector<DropData::FileSystemFileInfo>& file_system_files, |
| 232 Pickle* pickle) { | 232 base::Pickle* pickle) { |
| 233 pickle->WriteSizeT(file_system_files.size()); | 233 pickle->WriteSizeT(file_system_files.size()); |
| 234 for (size_t i = 0; i < file_system_files.size(); ++i) { | 234 for (size_t i = 0; i < file_system_files.size(); ++i) { |
| 235 pickle->WriteString(file_system_files[i].url.spec()); | 235 pickle->WriteString(file_system_files[i].url.spec()); |
| 236 pickle->WriteInt64(file_system_files[i].size); | 236 pickle->WriteInt64(file_system_files[i].size); |
| 237 } | 237 } |
| 238 } | 238 } |
| 239 | 239 |
| 240 // Reads file system files from the pickle. | 240 // Reads file system files from the pickle. |
| 241 bool ReadFileSystemFilesFromPickle( | 241 bool ReadFileSystemFilesFromPickle( |
| 242 const Pickle& pickle, | 242 const base::Pickle& pickle, |
| 243 std::vector<DropData::FileSystemFileInfo>* file_system_files) { | 243 std::vector<DropData::FileSystemFileInfo>* file_system_files) { |
| 244 PickleIterator iter(pickle); | 244 base::PickleIterator iter(pickle); |
| 245 | 245 |
| 246 size_t num_files = 0; | 246 size_t num_files = 0; |
| 247 if (!iter.ReadSizeT(&num_files)) | 247 if (!iter.ReadSizeT(&num_files)) |
| 248 return false; | 248 return false; |
| 249 file_system_files->resize(num_files); | 249 file_system_files->resize(num_files); |
| 250 | 250 |
| 251 for (size_t i = 0; i < num_files; ++i) { | 251 for (size_t i = 0; i < num_files; ++i) { |
| 252 std::string url_string; | 252 std::string url_string; |
| 253 int64 size = 0; | 253 int64 size = 0; |
| 254 if (!iter.ReadString(&url_string) || !iter.ReadInt64(&size)) | 254 if (!iter.ReadString(&url_string) || !iter.ReadInt64(&size)) |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 288 // exists. | 288 // exists. |
| 289 if (!drop_data.text.string().empty()) | 289 if (!drop_data.text.string().empty()) |
| 290 provider->SetString(drop_data.text.string()); | 290 provider->SetString(drop_data.text.string()); |
| 291 if (drop_data.url.is_valid()) | 291 if (drop_data.url.is_valid()) |
| 292 provider->SetURL(drop_data.url, drop_data.url_title); | 292 provider->SetURL(drop_data.url, drop_data.url_title); |
| 293 if (!drop_data.html.string().empty()) | 293 if (!drop_data.html.string().empty()) |
| 294 provider->SetHtml(drop_data.html.string(), drop_data.html_base_url); | 294 provider->SetHtml(drop_data.html.string(), drop_data.html_base_url); |
| 295 if (!drop_data.filenames.empty()) | 295 if (!drop_data.filenames.empty()) |
| 296 provider->SetFilenames(drop_data.filenames); | 296 provider->SetFilenames(drop_data.filenames); |
| 297 if (!drop_data.file_system_files.empty()) { | 297 if (!drop_data.file_system_files.empty()) { |
| 298 Pickle pickle; | 298 base::Pickle pickle; |
| 299 WriteFileSystemFilesToPickle(drop_data.file_system_files, &pickle); | 299 WriteFileSystemFilesToPickle(drop_data.file_system_files, &pickle); |
| 300 provider->SetPickledData(GetFileSystemFileCustomFormat(), pickle); | 300 provider->SetPickledData(GetFileSystemFileCustomFormat(), pickle); |
| 301 } | 301 } |
| 302 if (!drop_data.custom_data.empty()) { | 302 if (!drop_data.custom_data.empty()) { |
| 303 Pickle pickle; | 303 base::Pickle pickle; |
| 304 ui::WriteCustomDataToPickle(drop_data.custom_data, &pickle); | 304 ui::WriteCustomDataToPickle(drop_data.custom_data, &pickle); |
| 305 provider->SetPickledData(ui::Clipboard::GetWebCustomDataFormatType(), | 305 provider->SetPickledData(ui::Clipboard::GetWebCustomDataFormatType(), |
| 306 pickle); | 306 pickle); |
| 307 } | 307 } |
| 308 } | 308 } |
| 309 | 309 |
| 310 // Utility to fill a DropData object from ui::OSExchangeData. | 310 // Utility to fill a DropData object from ui::OSExchangeData. |
| 311 void PrepareDropData(DropData* drop_data, const ui::OSExchangeData& data) { | 311 void PrepareDropData(DropData* drop_data, const ui::OSExchangeData& data) { |
| 312 drop_data->did_originate_from_renderer = data.DidOriginateFromRenderer(); | 312 drop_data->did_originate_from_renderer = data.DidOriginateFromRenderer(); |
| 313 | 313 |
| (...skipping 14 matching lines...) Expand all Loading... |
| 328 base::string16 html; | 328 base::string16 html; |
| 329 GURL html_base_url; | 329 GURL html_base_url; |
| 330 data.GetHtml(&html, &html_base_url); | 330 data.GetHtml(&html, &html_base_url); |
| 331 if (!html.empty()) | 331 if (!html.empty()) |
| 332 drop_data->html = base::NullableString16(html, false); | 332 drop_data->html = base::NullableString16(html, false); |
| 333 if (html_base_url.is_valid()) | 333 if (html_base_url.is_valid()) |
| 334 drop_data->html_base_url = html_base_url; | 334 drop_data->html_base_url = html_base_url; |
| 335 | 335 |
| 336 data.GetFilenames(&drop_data->filenames); | 336 data.GetFilenames(&drop_data->filenames); |
| 337 | 337 |
| 338 Pickle pickle; | 338 base::Pickle pickle; |
| 339 std::vector<DropData::FileSystemFileInfo> file_system_files; | 339 std::vector<DropData::FileSystemFileInfo> file_system_files; |
| 340 if (data.GetPickledData(GetFileSystemFileCustomFormat(), &pickle) && | 340 if (data.GetPickledData(GetFileSystemFileCustomFormat(), &pickle) && |
| 341 ReadFileSystemFilesFromPickle(pickle, &file_system_files)) | 341 ReadFileSystemFilesFromPickle(pickle, &file_system_files)) |
| 342 drop_data->file_system_files = file_system_files; | 342 drop_data->file_system_files = file_system_files; |
| 343 | 343 |
| 344 if (data.GetPickledData(ui::Clipboard::GetWebCustomDataFormatType(), &pickle)) | 344 if (data.GetPickledData(ui::Clipboard::GetWebCustomDataFormatType(), &pickle)) |
| 345 ui::ReadCustomDataIntoMap( | 345 ui::ReadCustomDataIntoMap( |
| 346 pickle.data(), pickle.size(), &drop_data->custom_data); | 346 pickle.data(), pickle.size(), &drop_data->custom_data); |
| 347 } | 347 } |
| 348 | 348 |
| (...skipping 975 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1324 if (visible) { | 1324 if (visible) { |
| 1325 if (!web_contents_->should_normally_be_visible()) | 1325 if (!web_contents_->should_normally_be_visible()) |
| 1326 web_contents_->WasShown(); | 1326 web_contents_->WasShown(); |
| 1327 } else { | 1327 } else { |
| 1328 if (web_contents_->should_normally_be_visible()) | 1328 if (web_contents_->should_normally_be_visible()) |
| 1329 web_contents_->WasHidden(); | 1329 web_contents_->WasHidden(); |
| 1330 } | 1330 } |
| 1331 } | 1331 } |
| 1332 | 1332 |
| 1333 } // namespace content | 1333 } // namespace content |
| OLD | NEW |