| Index: content/browser/web_contents/web_contents_impl.cc
|
| diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
|
| index ca44da389ee4c2cdd89b41ec8371533b1ad502b3..9fe1b2960829cc718766a2a168d6987abf87b710 100644
|
| --- a/content/browser/web_contents/web_contents_impl.cc
|
| +++ b/content/browser/web_contents/web_contents_impl.cc
|
| @@ -7,6 +7,7 @@
|
| #include <utility>
|
|
|
| #include "base/command_line.h"
|
| +#include "base/metrics/field_trial.h"
|
| #include "base/metrics/histogram.h"
|
| #include "base/metrics/stats_counters.h"
|
| #include "base/string16.h"
|
| @@ -2333,6 +2334,22 @@ void WebContentsImpl::OnSetSelectedColorInColorChooser(int color_chooser_id,
|
| void WebContentsImpl::OnPepperPluginHung(int plugin_child_id,
|
| const FilePath& path,
|
| bool is_hung) {
|
| + HISTOGRAM_COUNTS("Pepper.PluginHung", 1);
|
| +
|
| + // Determine how often hangs happen when using worker pool versus
|
| + // FILE thread. kFieldTrialName needs to match the value in
|
| + // pepper_file_message_filter.cc, but plumbing that through would be
|
| + // disruptive for temporary code.
|
| + // TODO(shess): Remove once the workpool is proven superior.
|
| + // http://crbug.com/153383
|
| + static const char* const kFieldTrialName = "FlapperIOThread";
|
| + static const bool hung_trial_exists =
|
| + base::FieldTrialList::TrialExists(kFieldTrialName);
|
| + if (hung_trial_exists) {
|
| + HISTOGRAM_COUNTS(base::FieldTrial::MakeName("Pepper.PluginHung",
|
| + kFieldTrialName), 1);
|
| + }
|
| +
|
| FOR_EACH_OBSERVER(WebContentsObserver, observers_,
|
| PluginHungStatusChanged(plugin_child_id, path, is_hung));
|
| }
|
|
|