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

Side by Side Diff: Source/web/WebHistoryItem.cpp

Issue 239993011: Lazily generate HistoryItem's serialized form state (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Merged to trunk 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
« no previous file with comments | « Source/core/testing/Internals.cpp ('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 /* 1 /*
2 * Copyright (C) 2009 Google Inc. All rights reserved. 2 * Copyright (C) 2009 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 15 matching lines...) Expand all
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 */ 29 */
30 30
31 #include "config.h" 31 #include "config.h"
32 #include "WebHistoryItem.h" 32 #include "WebHistoryItem.h"
33 33
34 #include "WebSerializedScriptValue.h" 34 #include "WebSerializedScriptValue.h"
35 #include "bindings/v8/SerializedScriptValue.h" 35 #include "bindings/v8/SerializedScriptValue.h"
36 #include "core/html/forms/FormController.h"
37 #include "core/loader/HistoryItem.h" 36 #include "core/loader/HistoryItem.h"
38 #include "platform/network/FormData.h" 37 #include "platform/network/FormData.h"
39 #include "platform/weborigin/KURL.h" 38 #include "platform/weborigin/KURL.h"
40 #include "public/platform/WebHTTPBody.h" 39 #include "public/platform/WebHTTPBody.h"
41 #include "public/platform/WebPoint.h" 40 #include "public/platform/WebPoint.h"
42 #include "public/platform/WebString.h" 41 #include "public/platform/WebString.h"
43 #include "public/platform/WebVector.h" 42 #include "public/platform/WebVector.h"
44 #include "wtf/text/StringHash.h" 43 #include "wtf/text/StringHash.h"
45 44
46 using namespace WebCore; 45 using namespace WebCore;
47 46
48 namespace blink { 47 namespace blink {
49 namespace { 48 namespace {
50 49
51 void addReferencedFilePaths(HistoryItem* item, HashSet<String>& results) 50 void addReferencedFilePaths(HistoryItem* item, HashSet<String>& results)
52 { 51 {
53 const FormData* formData = item->formData(); 52 const FormData* formData = item->formData();
54 if (formData) { 53 if (formData) {
55 for (size_t i = 0; i < formData->elements().size(); ++i) { 54 for (size_t i = 0; i < formData->elements().size(); ++i) {
56 const FormDataElement& element = formData->elements()[i]; 55 const FormDataElement& element = formData->elements()[i];
57 if (element.m_type == FormDataElement::encodedFile) 56 if (element.m_type == FormDataElement::encodedFile)
58 results.add(element.m_filename); 57 results.add(element.m_filename);
59 } 58 }
60 } 59 }
61 60
62 const Vector<String>& filePaths = FormController::getReferencedFilePaths(ite m->documentState()); 61 const Vector<String>& filePaths = item->getReferencedFilePaths();
63 for (size_t i = 0; i < filePaths.size(); ++i) 62 for (size_t i = 0; i < filePaths.size(); ++i)
64 results.add(filePaths[i]); 63 results.add(filePaths[i]);
65 64
66 const HistoryItemVector& children = item->deprecatedChildren(); 65 const HistoryItemVector& children = item->deprecatedChildren();
67 for (size_t i = 0; i < children.size(); ++i) 66 for (size_t i = 0; i < children.size(); ++i)
68 addReferencedFilePaths(children[i].get(), results); 67 addReferencedFilePaths(children[i].get(), results);
69 } 68 }
70 69
71 } // namespace 70 } // namespace
72 71
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 m_private = item; 240 m_private = item;
242 return *this; 241 return *this;
243 } 242 }
244 243
245 WebHistoryItem::operator PassRefPtr<HistoryItem>() const 244 WebHistoryItem::operator PassRefPtr<HistoryItem>() const
246 { 245 {
247 return m_private.get(); 246 return m_private.get();
248 } 247 }
249 248
250 } // namespace blink 249 } // namespace blink
OLDNEW
« no previous file with comments | « Source/core/testing/Internals.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698