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

Unified Diff: chrome/renderer/chrome_content_renderer_client.cc

Issue 981623003: Plugin Power Saver: Implement srcset syntax for posters. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 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 f7a40cbb8cefedb334b2c08be6c4c81d8ebc5904..0073aedaed2c5b54ef972fc4bd3932fd059ece98 100644
--- a/chrome/renderer/chrome_content_renderer_client.cc
+++ b/chrome/renderer/chrome_content_renderer_client.cc
@@ -314,17 +314,16 @@ void TrackPosterParamPresence(const blink::WebPluginParams& params,
RecordPosterParamPresence(POSTER_PRESENCE_NO_PARAM_PPS_DISABLED);
}
-GURL GetPluginInstancePosterImage(const blink::WebPluginParams& params,
- const GURL& page_base_url) {
+std::string GetPluginInstancePoster(const blink::WebPluginParams& params) {
tommycli 2015/03/04 19:55:17 Instead of resolving to an absolute URL, we just g
DCHECK_EQ(params.attributeNames.size(), params.attributeValues.size());
for (size_t i = 0; i < params.attributeNames.size(); ++i) {
if (params.attributeNames[i].utf8() == "poster" &&
!params.attributeValues[i].isEmpty()) {
- return page_base_url.Resolve(params.attributeValues[i].utf8());
+ return params.attributeValues[i].utf8();
}
}
- return GURL();
+ return std::string();
}
#endif
@@ -782,10 +781,10 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
auto create_blocked_plugin =
[&render_frame, &frame, &params, &info, &identifier, &group_name](
int template_id, const base::string16& message) {
- return ChromePluginPlaceholder::CreateBlockedPlugin(
- render_frame, frame, params, info, identifier, group_name,
- template_id, message, GURL());
- };
+ return ChromePluginPlaceholder::CreateBlockedPlugin(
+ render_frame, frame, params, info, identifier, group_name,
+ template_id, message, std::string(), GURL());
+ };
switch (status_value) {
case ChromeViewHostMsg_GetPluginInfo_Status::kNotFound: {
NOTREACHED();
@@ -864,11 +863,9 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
if (info.name == ASCIIToUTF16(content::kFlashPluginName))
TrackPosterParamPresence(params, power_saver_enabled);
- GURL poster_url;
- if (power_saver_enabled) {
- poster_url =
- GetPluginInstancePosterImage(params, frame->document().url());
- }
+ std::string poster_attribute;
+ if (power_saver_enabled)
+ poster_attribute = GetPluginInstancePoster(params);
// Delay loading plugins if prerendering.
// TODO(mmenke): In the case of prerendering, feed into
@@ -877,13 +874,13 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
bool is_prerendering =
prerender::PrerenderHelper::IsPrerendering(render_frame);
if (blocked_for_background_tab || is_prerendering ||
- poster_url.is_valid()) {
+ !poster_attribute.empty()) {
placeholder = ChromePluginPlaceholder::CreateBlockedPlugin(
render_frame, frame, params, info, identifier, group_name,
- poster_url.is_valid() ? IDR_PLUGIN_POSTER_HTML
- : IDR_BLOCKED_PLUGIN_HTML,
+ poster_attribute.empty() ? IDR_BLOCKED_PLUGIN_HTML
+ : IDR_PLUGIN_POSTER_HTML,
l10n_util::GetStringFUTF16(IDS_PLUGIN_BLOCKED, group_name),
- poster_url);
+ poster_attribute, frame->document().url());
placeholder->set_blocked_for_background_tab(
blocked_for_background_tab);
placeholder->set_blocked_for_prerendering(is_prerendering);

Powered by Google App Engine
This is Rietveld 408576698