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

Side by Side Diff: webkit/glue/glue_serialize.cc

Issue 10695107: Fix: file permissions when restoring a page with file inputs with selected files. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years, 4 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
« no previous file with comments | « webkit/glue/glue_serialize.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "webkit/glue/glue_serialize.h" 5 #include "webkit/glue/glue_serialize.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/pickle.h" 9 #include "base/pickle.h"
10 #include "base/utf_string_conversions.h" 10 #include "base/utf_string_conversions.h"
(...skipping 530 matching lines...) Expand 10 before | Expand all | Expand 10 after
541 const std::string& content_state) { 541 const std::string& content_state) {
542 std::vector<FilePath> to_return; 542 std::vector<FilePath> to_return;
543 // TODO(darin): We should avoid using the WebKit API here, so that we do not 543 // TODO(darin): We should avoid using the WebKit API here, so that we do not
544 // need to have WebKit initialized before calling this method. 544 // need to have WebKit initialized before calling this method.
545 const WebHistoryItem& item = 545 const WebHistoryItem& item =
546 HistoryItemFromString(content_state, ALWAYS_INCLUDE_FORM_DATA, true); 546 HistoryItemFromString(content_state, ALWAYS_INCLUDE_FORM_DATA, true);
547 if (item.isNull()) { 547 if (item.isNull()) {
548 // Couldn't parse the string. 548 // Couldn't parse the string.
549 return to_return; 549 return to_return;
550 } 550 }
551 const WebHTTPBody& http_body = item.httpBody(); 551 const WebVector<WebString> file_paths = item.getReferencedFilePaths();
552 if (!http_body.isNull()) { 552 for (size_t i = 0; i < file_paths.size(); ++i)
553 WebHTTPBody::Element element; 553 to_return.push_back(WebStringToFilePath(file_paths[i]));
554 for (size_t i = 0; i < http_body.elementCount(); ++i) {
555 http_body.elementAt(i, element);
556 if (element.type == WebHTTPBody::Element::TypeFile)
557 to_return.push_back(WebStringToFilePath(element.filePath));
558 }
559 }
560 return to_return; 554 return to_return;
561 } 555 }
562 556
563 // For testing purposes only. 557 // For testing purposes only.
564 void HistoryItemToVersionedString(const WebHistoryItem& item, int version, 558 void HistoryItemToVersionedString(const WebHistoryItem& item, int version,
565 std::string* serialized_item) { 559 std::string* serialized_item) {
566 if (item.isNull()) { 560 if (item.isNull()) {
567 serialized_item->clear(); 561 serialized_item->clear();
568 return; 562 return;
569 } 563 }
570 564
571 // Temporarily change the version. 565 // Temporarily change the version.
572 int real_version = kVersion; 566 int real_version = kVersion;
573 kVersion = version; 567 kVersion = version;
574 568
575 SerializeObject obj; 569 SerializeObject obj;
576 WriteHistoryItem(item, &obj); 570 WriteHistoryItem(item, &obj);
577 *serialized_item = obj.GetAsString(); 571 *serialized_item = obj.GetAsString();
578 572
579 kVersion = real_version; 573 kVersion = real_version;
580 } 574 }
581 575
582 int HistoryItemCurrentVersion() { 576 int HistoryItemCurrentVersion() {
583 return kVersion; 577 return kVersion;
584 } 578 }
585 579
586 } // namespace webkit_glue 580 } // namespace webkit_glue
OLDNEW
« no previous file with comments | « webkit/glue/glue_serialize.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698