Index: Source/core/dom/DOMURLUtils.cpp |
diff --git a/Source/core/dom/DOMURLUtils.cpp b/Source/core/dom/DOMURLUtils.cpp |
index 7e1fa195c5af5d86fe00115f540654c8e164e65c..7a58044af984215171064bd71451f5e5f207be7b 100644 |
--- a/Source/core/dom/DOMURLUtils.cpp |
+++ b/Source/core/dom/DOMURLUtils.cpp |
@@ -31,6 +31,12 @@ |
namespace WebCore { |
+void DOMURLUtils::update(DOMURLUtils* impl) |
+{ |
+ 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
|
+ setSearchParams(impl, url.query()); |
+} |
+ |
void DOMURLUtils::setHref(DOMURLUtils* impl, const String& value) |
{ |
impl->setInput(value); |
@@ -122,6 +128,12 @@ void DOMURLUtils::setSearch(DOMURLUtils* impl, const String& value) |
if (!url.isValid()) |
return; |
url.setQuery(value); |
+ |
+ if (!value.isEmpty() && value[0] == '?') |
+ setSearchParams(impl, value.substring(1)); |
+ else |
+ setSearchParams(impl, value); |
+ |
impl->setURL(url); |
} |
@@ -139,4 +151,45 @@ void DOMURLUtils::setHash(DOMURLUtils* impl, const String& value) |
impl->setURL(url); |
} |
+DOMURLSearchParams* DOMURLUtils::searchParams(DOMURLUtils* impl, bool& isNull) |
+{ |
+ if (!impl->m_searchParams) |
+ createSearchParams(impl, impl->url().query()); |
+ isNull = false; |
+ return impl->m_searchParams.get(); |
+} |
+ |
+void DOMURLUtils::createSearchParams(DOMURLUtils* impl, const String& queryString) |
+{ |
+ if (!impl->m_searchParams) { |
+ impl->m_searchParams = adoptPtr(DOMURLSearchParams::create(queryString).get()); |
+ impl->m_searchParams->setURLObject(impl); |
+ } else { |
+ setSearchParams(impl, queryString); |
+ } |
+} |
+ |
+void DOMURLUtils::setSearchParams(DOMURLUtils* impl, const String& queryString) |
+{ |
+ if (!impl->m_searchParams) |
+ return; |
+ |
+ ASSERT(impl->m_searchParams->urlObject() == impl); |
+ impl->m_searchParams->setInput(queryString); |
+} |
+ |
+void DOMURLUtils::setSearchParams(DOMURLUtils* impl, DOMURLSearchParams* searchParams) |
+{ |
+ if (!searchParams) |
+ return; |
+ |
+ if (searchParams->urlObject()) |
+ impl->m_searchParams = adoptPtr(DOMURLSearchParams::create(searchParams).get()); |
+ else |
+ impl->m_searchParams = adoptPtr(searchParams); |
+ |
+ ASSERT(!impl->m_searchParams->urlObject()); |
+ impl->m_searchParams->setURLObject(impl); |
+} |
+ |
} // namespace WebCore |