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

Side by Side Diff: chrome/renderer/chrome_content_renderer_client.cc

Issue 2206343002: Add metrics for YouTube Flash embed rewrite. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@layers
Patch Set: rebase, again Created 4 years, 4 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 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/renderer/chrome_content_renderer_client.h" 5 #include "chrome/renderer/chrome_content_renderer_client.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
178 using blink::WebURLResponse; 178 using blink::WebURLResponse;
179 using blink::WebVector; 179 using blink::WebVector;
180 using content::PluginInstanceThrottler; 180 using content::PluginInstanceThrottler;
181 using content::RenderFrame; 181 using content::RenderFrame;
182 using content::RenderThread; 182 using content::RenderThread;
183 using content::WebPluginInfo; 183 using content::WebPluginInfo;
184 using extensions::Extension; 184 using extensions::Extension;
185 185
186 namespace { 186 namespace {
187 187
188 enum YouTubeRewriteStatus {
189 SUCCESS = 0,
190 SUCCESS_PARAMS_REWRITE = 1,
191 SUCCESS_ENABLEJSAPI = 2,
192 FAILURE_ENABLEJSAPI = 3,
193 NUM_PLUGIN_ERROR // should be kept last
194 };
195
196 const char kFlashYouTubeRewriteUMA[] = "Plugin.Flash.YouTubeRewrite";
197
188 // Whitelist PPAPI for Android Runtime for Chromium. (See crbug.com/383937) 198 // Whitelist PPAPI for Android Runtime for Chromium. (See crbug.com/383937)
189 #if defined(ENABLE_PLUGINS) 199 #if defined(ENABLE_PLUGINS)
190 const char* const kPredefinedAllowedCameraDeviceOrigins[] = { 200 const char* const kPredefinedAllowedCameraDeviceOrigins[] = {
191 "6EAED1924DB611B6EEF2A664BD077BE7EAD33B8F", 201 "6EAED1924DB611B6EEF2A664BD077BE7EAD33B8F",
192 "4EB74897CB187C7633357C2FE832E0AD6A44883A" 202 "4EB74897CB187C7633357C2FE832E0AD6A44883A"
193 }; 203 };
194 204
195 const char* const kPredefinedAllowedCompositorOrigins[] = { 205 const char* const kPredefinedAllowedCompositorOrigins[] = {
196 "6EAED1924DB611B6EEF2A664BD077BE7EAD33B8F", 206 "6EAED1924DB611B6EEF2A664BD077BE7EAD33B8F",
197 "4EB74897CB187C7633357C2FE832E0AD6A44883A" 207 "4EB74897CB187C7633357C2FE832E0AD6A44883A"
(...skipping 1186 matching lines...) Expand 10 before | Expand all | Expand 10 after
1384 // information. Also, the enforcement of sending and binding UDP is already done 1394 // information. Also, the enforcement of sending and binding UDP is already done
1385 // by chrome extension permission model. 1395 // by chrome extension permission model.
1386 bool ChromeContentRendererClient::ShouldEnforceWebRTCRoutingPreferences() { 1396 bool ChromeContentRendererClient::ShouldEnforceWebRTCRoutingPreferences() {
1387 #if defined(ENABLE_EXTENSIONS) 1397 #if defined(ENABLE_EXTENSIONS)
1388 return !IsStandaloneExtensionProcess(); 1398 return !IsStandaloneExtensionProcess();
1389 #else 1399 #else
1390 return true; 1400 return true;
1391 #endif 1401 #endif
1392 } 1402 }
1393 1403
1404 void ChromeContentRendererClient::UpdateUMAMetrics(const int& status,
mlamouri (slow - plz ping) 2016/08/05 12:51:09 Maybe name this "RecordYouTubeRewriteUMA"? And mo
kdsilva 2016/08/05 14:33:54 Done.
1405 const int& max) {
mlamouri (slow - plz ping) 2016/08/05 12:51:09 s/const int&/int/
kdsilva 2016/08/05 14:33:54 Done.
1406 UMA_HISTOGRAM_ENUMERATION(kFlashYouTubeRewriteUMA, status, max);
1407 }
1408
1394 GURL ChromeContentRendererClient::OverrideFlashEmbedWithHTML(const GURL& url) { 1409 GURL ChromeContentRendererClient::OverrideFlashEmbedWithHTML(const GURL& url) {
1395 if (!base::FeatureList::IsEnabled(features::kOverrideYouTubeFlashEmbed)) 1410 if (!base::FeatureList::IsEnabled(features::kOverrideYouTubeFlashEmbed))
1396 return GURL(); 1411 return GURL();
1397 1412
1398 if (!url.is_valid()) 1413 if (!url.is_valid())
1399 return GURL(); 1414 return GURL();
1400 1415
1401 // We'll only modify YouTube Flash embeds. The URLs can be recognized since 1416 // We'll only modify YouTube Flash embeds. The URLs can be recognized since
1402 // they're in the following form: youtube.com/v/VIDEO_ID. So, we check to see 1417 // they're in the following form: youtube.com/v/VIDEO_ID. So, we check to see
1403 // if the given URL does follow that format. 1418 // if the given URL does follow that format.
(...skipping 22 matching lines...) Expand all
1426 (pos = url_str.find("?", pos)) != std::string::npos; pos += 1) { 1441 (pos = url_str.find("?", pos)) != std::string::npos; pos += 1) {
1427 url_str.replace(pos, 1, "&"); 1442 url_str.replace(pos, 1, "&");
1428 } 1443 }
1429 } 1444 }
1430 1445
1431 GURL corrected_url = GURL(url_str); 1446 GURL corrected_url = GURL(url_str);
1432 1447
1433 // We don't modify any URLs that contain the enablejsapi=1 parameter 1448 // We don't modify any URLs that contain the enablejsapi=1 parameter
1434 // since the page may be interacting with the YouTube Flash player in 1449 // since the page may be interacting with the YouTube Flash player in
1435 // Javascript and we don't want to break working content. 1450 // Javascript and we don't want to break working content.
1436 if (corrected_url.query().find("enablejsapi=1") != std::string::npos) 1451 if (corrected_url.query().find("enablejsapi=1") != std::string::npos) {
1452 UpdateUMAMetrics(FAILURE_ENABLEJSAPI, NUM_PLUGIN_ERROR);
1437 return GURL(); 1453 return GURL();
1454 }
1438 1455
1439 // Change the path to use the YouTube HTML5 API 1456 // Change the path to use the YouTube HTML5 API
1440 std::string path = corrected_url.path(); 1457 std::string path = corrected_url.path();
1441 path.replace(path.find("/v/"), 3, "/embed/"); 1458 path.replace(path.find("/v/"), 3, "/embed/");
1442 1459
1443 url::Replacements<char> r; 1460 url::Replacements<char> r;
1444 r.SetPath(path.c_str(), url::Component(0, path.length())); 1461 r.SetPath(path.c_str(), url::Component(0, path.length()));
1445 1462
1463 UpdateUMAMetrics(invalid_url ? SUCCESS_PARAMS_REWRITE : SUCCESS,
1464 NUM_PLUGIN_ERROR);
1446 return corrected_url.ReplaceComponents(r); 1465 return corrected_url.ReplaceComponents(r);
1447 } 1466 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698