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

Unified Diff: chrome/renderer/chrome_content_renderer_client.cc

Issue 2154233003: Rewrite YouTube Flash embeds (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added unit tests Created 4 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: chrome/renderer/chrome_content_renderer_client.cc
diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc
index 68c5529d55ea8d86eeaf69d6b5891f783f3a670a..2907c9c1c737f6d7aa980fa4fdf33e95e8f2f328 100644
--- a/chrome/renderer/chrome_content_renderer_client.cc
+++ b/chrome/renderer/chrome_content_renderer_client.cc
@@ -1390,3 +1390,42 @@ bool ChromeContentRendererClient::ShouldEnforceWebRTCRoutingPreferences() {
return true;
#endif
}
+
+// TODO(kdsilva)
+bool ChromeContentRendererClient::OverrideEmbedInfo(std::string* url) {
+ GURL gurl = GURL(*url);
+
+ if (url->find("enablejsapi=1") == (size_t) -1 &&
+ gurl.DomainIs("www.youtube.com") && gurl.path().find("/v/") == 0) {
mlamouri (slow - plz ping) 2016/07/20 13:22:02 Could this be "youtube.com" instead of "www.youtub
kdsilva 2016/07/21 13:59:45 Done.
+
+ // If the website is using an invalid YouTube URL, we'll try and
+ // fix the url by ensuring that IF there are multiple parameters,
+ // the parameter string begins with a "?" and then follows with "&"
+ // for each subsequent parameter.
+ size_t indexAmp = url->find("&");
+ bool invalidUrl = false;
mlamouri (slow - plz ping) 2016/07/20 13:22:02 nit: maybe have the `bool` first.
kdsilva 2016/07/21 13:59:45 Done.
+ size_t indexQm = url->find("?");
+
+ if (indexQm == std::string::npos || indexQm > indexAmp) {
mlamouri (slow - plz ping) 2016/07/20 13:22:02 Does this mean that "www.youtube.com/v/VIDEO_ID" i
kdsilva 2016/07/21 13:59:45 You're right that youtube.com/v/ID should't be con
+ invalidUrl = true;
+ }
mlamouri (slow - plz ping) 2016/07/20 13:22:02 style: we [unfortunately] don't put { } for one-li
kdsilva 2016/07/21 13:59:45 Done.
+
+ if (invalidUrl) {
+ // Replace all instances of ? with &
+ size_t start_pos = 0;
+ while((start_pos = url->find("?", start_pos)) != std::string::npos) {
+ url->replace(start_pos, 1, "&");
+ start_pos += 1;
+ }
+
+ // ? should appear first before all parameters
+ if (indexAmp != std::string::npos) {
+ url->replace(indexAmp, 1, "?");
+ }
+ }
+ url->replace(url->find("/v/"), 3, "/embed/");
+ return true;
+ }
mlamouri (slow - plz ping) 2016/07/20 13:22:02 nit: you should favour early returns. In this case
kdsilva 2016/07/21 13:59:45 Done.
+
+ return false;
+}

Powered by Google App Engine
This is Rietveld 408576698