WebKit Bugzilla
Attachment 372354 Details for
Bug 198971
: Web Inspector: parseQueryParameters fails to successfully parse query parameter values that contain "="
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-198971-20190618113343.patch (text/plain), 5.53 KB, created by
Devin Rousso
on 2019-06-18 11:33:43 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Devin Rousso
Created:
2019-06-18 11:33:43 PDT
Size:
5.53 KB
patch
obsolete
>diff --git a/Source/WebInspectorUI/ChangeLog b/Source/WebInspectorUI/ChangeLog >index d8a0087b090b84c273c215a6ed018e360ba099a7..e336363e1f1c5ab1f1bc15bd12d82d0341748e9f 100644 >--- a/Source/WebInspectorUI/ChangeLog >+++ b/Source/WebInspectorUI/ChangeLog >@@ -1,3 +1,14 @@ >+2019-06-18 Devin Rousso <drousso@apple.com> >+ >+ Web Inspector: parseQueryParameters fails to successfully parse query parameter values that contain "=" >+ https://bugs.webkit.org/show_bug.cgi?id=198971 >+ <rdar://problem/51852782> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * UserInterface/Base/URLUtilities.js: >+ (parseQueryString): >+ > 2019-06-17 Matt Baker <mattbaker@apple.com> > > Web Inspector: Elements: remove ellipses from "Break on" context menu item title >diff --git a/Source/WebInspectorUI/UserInterface/Base/URLUtilities.js b/Source/WebInspectorUI/UserInterface/Base/URLUtilities.js >index 644ac7880bcc760c7c2dd9c9da1789c60436a3b7..fae75355393295e48303be123d88e46e688eb935 100644 >--- a/Source/WebInspectorUI/UserInterface/Base/URLUtilities.js >+++ b/Source/WebInspectorUI/UserInterface/Base/URLUtilities.js >@@ -202,13 +202,18 @@ function parseQueryString(queryString, arrayResult) > } > > var parameters = arrayResult ? [] : {}; >- var parameterStrings = queryString.split("&"); >- for (var i = 0; i < parameterStrings.length; ++i) { >- var pair = parameterStrings[i].split("=").map(decode); >+ for (let parameterString of queryString.split("&")) { >+ let index = parameterString.indexOf("="); >+ if (index === -1) >+ index = parameterString.length; >+ >+ let name = decode(parameterString.substring(0, index)); >+ let value = decode(parameterString.substring(index + 1)); >+ > if (arrayResult) >- parameters.push({name: pair[0], value: pair[1]}); >+ parameters.push({name, value}); > else >- parameters[pair[0]] = pair[1]; >+ parameters[name] = value; > } > > return parameters; >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index c4ec313e8be98b59b10400b1e999f0546b85cb80..8fcb4e48662f90fd901490514e512dbe3851f0ae 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,14 @@ >+2019-06-18 Devin Rousso <drousso@apple.com> >+ >+ Web Inspector: parseQueryParameters fails to successfully parse query parameter values that contain "=" >+ https://bugs.webkit.org/show_bug.cgi?id=198971 >+ <rdar://problem/51852782> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * inspector/unit-tests/url-utilities.html: >+ * inspector/unit-tests/url-utilities-expected.txt: >+ > 2019-06-17 Saam Barati <sbarati@apple.com> > > [WHLSL] Make .length work >diff --git a/LayoutTests/inspector/unit-tests/url-utilities-expected.txt b/LayoutTests/inspector/unit-tests/url-utilities-expected.txt >index 8d3674a7c39932e2189e4bddbfb788c7de3812f9..c2debac130b575a0815fdb55ef1a1522ac39622c 100644 >--- a/LayoutTests/inspector/unit-tests/url-utilities-expected.txt >+++ b/LayoutTests/inspector/unit-tests/url-utilities-expected.txt >@@ -335,6 +335,21 @@ PASS: charset should be: 'US-ASCII' > PASS: base64 should be: 'true' > PASS: data should be: 'iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==' > >+-- Running test case: parseQueryString >+PASS: The query 'a' was parsed successfully. >+PASS: The query 'a&b' was parsed successfully. >+PASS: The query 'a=' was parsed successfully. >+PASS: The query 'a=&b=' was parsed successfully. >+PASS: The query 'a=1' was parsed successfully. >+PASS: The query 'a=1&b=2' was parsed successfully. >+PASS: The query 'a==1' was parsed successfully. >+PASS: The query 'a==1&b==2' was parsed successfully. >+PASS: The query 'a=1=' was parsed successfully. >+PASS: The query 'a=1=&b=2=' was parsed successfully. >+PASS: The query 'a==1=' was parsed successfully. >+PASS: The query 'a==1=&b==2=' was parsed successfully. >+PASS: The query 'a&b=1&c==2=&d&e=3&f==4=' was parsed successfully. >+ > -- Running test case: WI.h2Authority > PASS: HTTP/2 :authority of 'http://example.com' should be 'example.com'. > PASS: HTTP/2 :authority of 'https://example.com' should be 'example.com'. >diff --git a/LayoutTests/inspector/unit-tests/url-utilities.html b/LayoutTests/inspector/unit-tests/url-utilities.html >index 6325557a457fae4723119dd3dd714b08c2597192..17e2cc064922bd81947b7b24174f15465c7760ed 100644 >--- a/LayoutTests/inspector/unit-tests/url-utilities.html >+++ b/LayoutTests/inspector/unit-tests/url-utilities.html >@@ -385,6 +385,37 @@ function test() > } > }); > >+ suite.addTestCase({ >+ name: "parseQueryString", >+ test() { >+ function test(queryString, expected) { >+ InspectorTest.expectShallowEqual(parseQueryString(queryString), expected, `The query '${queryString}' was parsed successfully.`); >+ } >+ >+ test("a", {a: ""}); >+ test("a&b", {a: "", b: ""}); >+ >+ test("a=", {a: ""}); >+ test("a=&b=", {a: "", b: ""}); >+ >+ test("a=1", {a: "1"}); >+ test("a=1&b=2", {a: "1", b: "2"}); >+ >+ test("a==1", {a: "=1"}); >+ test("a==1&b==2", {a: "=1", b: "=2"}); >+ >+ test("a=1=", {a: "1="}); >+ test("a=1=&b=2=", {a: "1=", b: "2="}); >+ >+ test("a==1=", {a: "=1="}); >+ test("a==1=&b==2=", {a: "=1=", b: "=2="}); >+ >+ test("a&b=1&c==2=&d&e=3&f==4=", {a: "", b: "1", c: "=2=", d: "", e: "3", f: "=4="}); >+ >+ return true; >+ } >+ }); >+ > suite.addTestCase({ > name: "WI.h2Authority", > test() {
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 198971
:
372354
|
372356