YouTube Flash plug-in replacement facility should more gracefully handle malformed...
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 1 Sep 2016 19:27:57 +0000 (19:27 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 1 Sep 2016 19:27:57 +0000 (19:27 +0000)
commit4b147c5fb189678caa79aa334890facd3974fe37
tree97595f90202d77afc210e5d3e971fa5c2037f592
parent439320acd5c2e030cd056f4fa42afc5d77b9870a
YouTube Flash plug-in replacement facility should more gracefully handle malformed queries
https://bugs.webkit.org/show_bug.cgi?id=161476
<rdar://problem/28050847>

Patch by Ricky Mondello <rmondello@apple.com> on 2016-09-01
Reviewed by Eric Carlson.

Source/WebCore:

Some YouTube Flash embeds use '&' instead of '?' to start the query portion of the URL. Before this patch,
our implementation discards all parts of the path after the '&', which could drop important query information
like the start time for the video. This patch treats anything after that '&' as a "malformed query" and uses
it as the query to restore to the transformed URL if there was no actual query in the original URL.

* Modules/plugins/YouTubePluginReplacement.cpp:
(WebCore::processAndCreateYouTubeURL): Add an out-parameter for the path after the first ampersand.
(WebCore::YouTubePluginReplacement::youTubeURLFromAbsoluteURL): If the input URL had no query, append
    the possibly malformed one found after the first ampersand to the replacement URL.

Tools:

* TestWebKitAPI/Tests/WebCore/YouTubePluginReplacement.cpp:
(TestWebKitAPI::TEST_F): New tests. The first two and second-to-last test cases cover the "malformed" query
    logic. A few other tests are added, too.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205306 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore/ChangeLog
Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp
Tools/ChangeLog
Tools/TestWebKitAPI/Tests/WebCore/YouTubePluginReplacement.cpp