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

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

Issue 7558024: Add UMA metrics for blocked plugins. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: '' Created 9 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | chrome/renderer/chrome_content_renderer_client.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/blocked_plugin.h" 5 #include "chrome/renderer/blocked_plugin.h"
6 6
7 #include "base/string_piece.h" 7 #include "base/string_piece.h"
8 #include "base/string_util.h" 8 #include "base/string_util.h"
9 #include "base/values.h" 9 #include "base/values.h"
10 #include "chrome/common/jstemplate_builder.h" 10 #include "chrome/common/jstemplate_builder.h"
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 IPC_END_MESSAGE_MAP() 158 IPC_END_MESSAGE_MAP()
159 } 159 }
160 160
161 return false; 161 return false;
162 } 162 }
163 163
164 void BlockedPlugin::OnMenuItemSelected( 164 void BlockedPlugin::OnMenuItemSelected(
165 const webkit_glue::CustomContextMenuContext& /* ignored */, 165 const webkit_glue::CustomContextMenuContext& /* ignored */,
166 unsigned id) { 166 unsigned id) {
167 if (id == kMenuActionLoad) { 167 if (id == kMenuActionLoad) {
168 Send(new ViewHostMsg_UserMetricsRecordAction("Plugin_Load_Menu"));
168 LoadPlugin(); 169 LoadPlugin();
169 } else if (id == kMenuActionRemove) { 170 } else if (id == kMenuActionRemove) {
171 Send(new ViewHostMsg_UserMetricsRecordAction("Plugin_Hide_Menu"));
170 HidePlugin(); 172 HidePlugin();
171 } 173 }
172 } 174 }
173 175
174 void BlockedPlugin::OnLoadBlockedPlugins() { 176 void BlockedPlugin::OnLoadBlockedPlugins() {
177 Send(new ViewHostMsg_UserMetricsRecordAction("Plugin_Load_UI"));
175 LoadPlugin(); 178 LoadPlugin();
176 } 179 }
177 180
178 void BlockedPlugin::OnSetIsPrerendering(bool is_prerendering) { 181 void BlockedPlugin::OnSetIsPrerendering(bool is_prerendering) {
179 // Prerendering can only be enabled prior to a RenderView's first navigation, 182 // Prerendering can only be enabled prior to a RenderView's first navigation,
180 // so no BlockedPlugin should see the notification that enables prerendering. 183 // so no BlockedPlugin should see the notification that enables prerendering.
181 DCHECK(!is_prerendering); 184 DCHECK(!is_prerendering);
182 if (is_blocked_for_prerendering_ && !is_prerendering) 185 if (is_blocked_for_prerendering_ && !is_prerendering)
183 LoadPlugin(); 186 LoadPlugin();
184 } 187 }
(...skipping 17 matching lines...) Expand all
202 plugin_->ReplayReceivedData(new_plugin); 205 plugin_->ReplayReceivedData(new_plugin);
203 plugin_->destroy(); 206 plugin_->destroy();
204 } else { 207 } else {
205 MissingPluginReporter::GetInstance()->ReportPluginMissing( 208 MissingPluginReporter::GetInstance()->ReportPluginMissing(
206 plugin_params_.mimeType.utf8(), 209 plugin_params_.mimeType.utf8(),
207 plugin_params_.url); 210 plugin_params_.url);
208 } 211 }
209 } 212 }
210 213
211 void BlockedPlugin::Load(const CppArgumentList& args, CppVariant* result) { 214 void BlockedPlugin::Load(const CppArgumentList& args, CppVariant* result) {
215 Send(new ViewHostMsg_UserMetricsRecordAction("Plugin_Load_Click"));
212 LoadPlugin(); 216 LoadPlugin();
213 } 217 }
214 218
215 void BlockedPlugin::Hide(const CppArgumentList& args, CppVariant* result) { 219 void BlockedPlugin::Hide(const CppArgumentList& args, CppVariant* result) {
220 Send(new ViewHostMsg_UserMetricsRecordAction("Plugin_Hide_Click"));
216 HidePlugin(); 221 HidePlugin();
217 } 222 }
218 223
219 void BlockedPlugin::HidePlugin() { 224 void BlockedPlugin::HidePlugin() {
220 CHECK(plugin_); 225 CHECK(plugin_);
221 hidden_ = true; 226 hidden_ = true;
222 WebPluginContainer* container = plugin_->container(); 227 WebPluginContainer* container = plugin_->container();
223 WebElement element = container->element(); 228 WebElement element = container->element();
224 element.setAttribute("style", "display: none;"); 229 element.setAttribute("style", "display: none;");
225 // If we have a width and height, search for a parent (often <div>) with the 230 // If we have a width and height, search for a parent (often <div>) with the
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
259 element = parent.toConst<WebElement>(); 264 element = parent.toConst<WebElement>();
260 if (element.hasAttribute("style")) { 265 if (element.hasAttribute("style")) {
261 WebString style_str = element.getAttribute("style"); 266 WebString style_str = element.getAttribute("style");
262 if (width_regex.match(style_str) >= 0 && 267 if (width_regex.match(style_str) >= 0 &&
263 height_regex.match(style_str) >= 0) 268 height_regex.match(style_str) >= 0)
264 element.setAttribute("style", "display: none;"); 269 element.setAttribute("style", "display: none;");
265 } 270 }
266 } 271 }
267 } 272 }
268 } 273 }
OLDNEW
« no previous file with comments | « no previous file | chrome/renderer/chrome_content_renderer_client.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698