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

Side by Side Diff: third_party/WebKit/Source/core/loader/FormSubmission.h

Issue 1999573003: OOPIFs: Fixing submitting forms targeting a remote frame. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@form-target-is-cross-site-frame
Patch Set: Added a TODO for investigating if remote and local frames can be handled uniformly. Created 4 years, 6 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2010 Google Inc. All rights reserved. 2 * Copyright (C) 2010 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 13 matching lines...) Expand all
24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
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 #ifndef FormSubmission_h 31 #ifndef FormSubmission_h
32 #define FormSubmission_h 32 #define FormSubmission_h
33 33
34 #include "core/loader/FrameLoadRequest.h"
34 #include "platform/heap/Handle.h" 35 #include "platform/heap/Handle.h"
35 #include "platform/weborigin/KURL.h" 36 #include "platform/weborigin/KURL.h"
36 #include "platform/weborigin/Referrer.h" 37 #include "platform/weborigin/Referrer.h"
37 #include "wtf/Allocator.h" 38 #include "wtf/Allocator.h"
38 39
39 namespace blink { 40 namespace blink {
40 41
42 class Document;
41 class EncodedFormData; 43 class EncodedFormData;
42 class Event; 44 class Event;
43 struct FrameLoadRequest;
44 class HTMLFormElement; 45 class HTMLFormElement;
45 46
46 class FormSubmission : public GarbageCollectedFinalized<FormSubmission> { 47 class FormSubmission : public GarbageCollectedFinalized<FormSubmission> {
47 public: 48 public:
48 enum SubmitMethod { GetMethod, PostMethod, DialogMethod }; 49 enum SubmitMethod { GetMethod, PostMethod, DialogMethod };
49 50
50 class Attributes { 51 class Attributes {
51 DISALLOW_NEW(); 52 DISALLOW_NEW();
52 WTF_MAKE_NONCOPYABLE(Attributes); 53 WTF_MAKE_NONCOPYABLE(Attributes);
53 public: 54 public:
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 86
86 String m_action; 87 String m_action;
87 AtomicString m_target; 88 AtomicString m_target;
88 AtomicString m_encodingType; 89 AtomicString m_encodingType;
89 String m_acceptCharset; 90 String m_acceptCharset;
90 }; 91 };
91 92
92 static FormSubmission* create(HTMLFormElement*, const Attributes&, Event*); 93 static FormSubmission* create(HTMLFormElement*, const Attributes&, Event*);
93 DECLARE_TRACE(); 94 DECLARE_TRACE();
94 95
95 void populateFrameLoadRequest(FrameLoadRequest&); 96 FrameLoadRequest createFrameLoadRequest(Document* originDocument);
96 97
97 KURL requestURL() const; 98 KURL requestURL() const;
98 99
99 SubmitMethod method() const { return m_method; } 100 SubmitMethod method() const { return m_method; }
100 const KURL& action() const { return m_action; } 101 const KURL& action() const { return m_action; }
101 const AtomicString& target() const { return m_target; } 102 const AtomicString& target() const { return m_target; }
102 void clearTarget() { m_target = nullAtom; } 103 void clearTarget() { m_target = nullAtom; }
103 HTMLFormElement* form() const { return m_form.get(); } 104 HTMLFormElement* form() const { return m_form.get(); }
104 EncodedFormData* data() const { return m_formData.get(); } 105 EncodedFormData* data() const { return m_formData.get(); }
105 Event* event() const { return m_event.get(); }
106 106
107 const String& result() const { return m_result; } 107 const String& result() const { return m_result; }
108 108
109 private: 109 private:
110 FormSubmission(SubmitMethod, const KURL& action, const AtomicString& target, const AtomicString& contentType, HTMLFormElement*, PassRefPtr<EncodedFormData>, const String& boundary, Event*); 110 FormSubmission(SubmitMethod, const KURL& action, const AtomicString& target, const AtomicString& contentType, HTMLFormElement*, PassRefPtr<EncodedFormData>, const String& boundary, Event*);
111 // FormSubmission for DialogMethod 111 // FormSubmission for DialogMethod
112 FormSubmission(const String& result); 112 FormSubmission(const String& result);
113 113
114 // FIXME: Hold an instance of Attributes instead of individual members. 114 // FIXME: Hold an instance of Attributes instead of individual members.
115 SubmitMethod m_method; 115 SubmitMethod m_method;
116 KURL m_action; 116 KURL m_action;
117 AtomicString m_target; 117 AtomicString m_target;
118 AtomicString m_contentType; 118 AtomicString m_contentType;
119 Member<HTMLFormElement> m_form; 119 Member<HTMLFormElement> m_form;
120 RefPtr<EncodedFormData> m_formData; 120 RefPtr<EncodedFormData> m_formData;
121 String m_boundary; 121 String m_boundary;
122 Member<Event> m_event; 122 Member<Event> m_event;
123 String m_result; 123 String m_result;
124 }; 124 };
125 125
126 } // namespace blink 126 } // namespace blink
127 127
128 #endif // FormSubmission_h 128 #endif // FormSubmission_h
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/html/HTMLFormElement.cpp ('k') | third_party/WebKit/Source/core/loader/FormSubmission.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698