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

Side by Side Diff: Source/core/dom/DOMURLUtils.cpp

Issue 143313002: Implement URLSearchParams. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Handle dependency between URLUtils interfaces and URLSearchParams Created 6 years, 11 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) 2011 Google Inc. All rights reserved. 2 * Copyright (C) 2011 Google Inc. All rights reserved.
3 * Copyright (C) 2012 Motorola Mobility Inc. 3 * Copyright (C) 2012 Motorola Mobility Inc.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 8 *
9 * 1. Redistributions of source code must retain the above copyright 9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 13 matching lines...) Expand all
24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 */ 25 */
26 26
27 #include "config.h" 27 #include "config.h"
28 #include "core/dom/DOMURLUtils.h" 28 #include "core/dom/DOMURLUtils.h"
29 29
30 #include "platform/weborigin/KnownPorts.h" 30 #include "platform/weborigin/KnownPorts.h"
31 31
32 namespace WebCore { 32 namespace WebCore {
33 33
34 void DOMURLUtils::update(DOMURLUtils* impl)
35 {
36 KURL url = impl->url();
Inactive 2014/01/21 15:25:58 We should probably ASSERT to make sure impl is not
sof 2014/01/21 21:16:47 When the context makes it unmistakably clear that
37 setSearchParams(impl, url.query());
38 }
39
34 void DOMURLUtils::setHref(DOMURLUtils* impl, const String& value) 40 void DOMURLUtils::setHref(DOMURLUtils* impl, const String& value)
35 { 41 {
36 impl->setInput(value); 42 impl->setInput(value);
37 } 43 }
38 44
39 void DOMURLUtils::setProtocol(DOMURLUtils* impl, const String& value) 45 void DOMURLUtils::setProtocol(DOMURLUtils* impl, const String& value)
40 { 46 {
41 KURL url = impl->url(); 47 KURL url = impl->url();
42 if (url.isNull()) 48 if (url.isNull())
43 return; 49 return;
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 url.setPath(value); 121 url.setPath(value);
116 impl->setURL(url); 122 impl->setURL(url);
117 } 123 }
118 124
119 void DOMURLUtils::setSearch(DOMURLUtils* impl, const String& value) 125 void DOMURLUtils::setSearch(DOMURLUtils* impl, const String& value)
120 { 126 {
121 KURL url = impl->url(); 127 KURL url = impl->url();
122 if (!url.isValid()) 128 if (!url.isValid())
123 return; 129 return;
124 url.setQuery(value); 130 url.setQuery(value);
131
132 if (!value.isEmpty() && value[0] == '?')
133 setSearchParams(impl, value.substring(1));
134 else
135 setSearchParams(impl, value);
136
125 impl->setURL(url); 137 impl->setURL(url);
126 } 138 }
127 139
128 void DOMURLUtils::setHash(DOMURLUtils* impl, const String& value) 140 void DOMURLUtils::setHash(DOMURLUtils* impl, const String& value)
129 { 141 {
130 KURL url = impl->url(); 142 KURL url = impl->url();
131 if (url.isNull()) 143 if (url.isNull())
132 return; 144 return;
133 145
134 if (value[0] == '#') 146 if (value[0] == '#')
135 url.setFragmentIdentifier(value.substring(1)); 147 url.setFragmentIdentifier(value.substring(1));
136 else 148 else
137 url.setFragmentIdentifier(value); 149 url.setFragmentIdentifier(value);
138 150
139 impl->setURL(url); 151 impl->setURL(url);
140 } 152 }
141 153
154 DOMURLSearchParams* DOMURLUtils::searchParams(DOMURLUtils* impl, bool& isNull)
155 {
156 if (!impl->m_searchParams)
157 createSearchParams(impl, impl->url().query());
158 isNull = false;
159 return impl->m_searchParams.get();
160 }
161
162 void DOMURLUtils::createSearchParams(DOMURLUtils* impl, const String& queryStrin g)
163 {
164 if (!impl->m_searchParams) {
165 impl->m_searchParams = adoptPtr(DOMURLSearchParams::create(queryString). get());
166 impl->m_searchParams->setURLObject(impl);
167 } else {
168 setSearchParams(impl, queryString);
169 }
170 }
171
172 void DOMURLUtils::setSearchParams(DOMURLUtils* impl, const String& queryString)
173 {
174 if (!impl->m_searchParams)
175 return;
176
177 ASSERT(impl->m_searchParams->urlObject() == impl);
178 impl->m_searchParams->setInput(queryString);
179 }
180
181 void DOMURLUtils::setSearchParams(DOMURLUtils* impl, DOMURLSearchParams* searchP arams)
182 {
183 if (!searchParams)
184 return;
185
186 if (searchParams->urlObject())
187 impl->m_searchParams = adoptPtr(DOMURLSearchParams::create(searchParams) .get());
188 else
189 impl->m_searchParams = adoptPtr(searchParams);
190
191 ASSERT(!impl->m_searchParams->urlObject());
192 impl->m_searchParams->setURLObject(impl);
193 }
194
142 } // namespace WebCore 195 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698