Index: chrome/browser/ui/views/session_crashed_bubble_view.cc |
diff --git a/chrome/browser/ui/views/session_crashed_bubble_view.cc b/chrome/browser/ui/views/session_crashed_bubble_view.cc |
index f5fcd30c60efc3476b75fa34f866513a8975e66c..beab995abf87207502e35a2ea0daa2201620dc88 100644 |
--- a/chrome/browser/ui/views/session_crashed_bubble_view.cc |
+++ b/chrome/browser/ui/views/session_crashed_bubble_view.cc |
@@ -6,6 +6,8 @@ |
#include <vector> |
+#include "base/command_line.h" |
+#include "base/metrics/field_trial.h" |
#include "base/prefs/pref_service.h" |
#include "chrome/browser/browser_process.h" |
#include "chrome/browser/chrome_notification_types.h" |
@@ -16,6 +18,7 @@ |
#include "chrome/browser/ui/tabs/tab_strip_model.h" |
#include "chrome/browser/ui/views/frame/browser_view.h" |
#include "chrome/browser/ui/views/toolbar/toolbar_view.h" |
+#include "chrome/common/chrome_switches.h" |
#include "chrome/common/pref_names.h" |
#include "chrome/common/url_constants.h" |
#include "chrome/installer/util/google_update_settings.h" |
@@ -56,6 +59,10 @@ const int kMarginHeight = kMarginWidth; |
const SkColor kLightGrayBackgroundColor = 0xFFF0F0F0; |
const SkColor kWhiteBackgroundColor = 0xFFFFFFFF; |
+// The Finch study name and group name that enables session crashed bubble UI. |
+const char kEnableBubbleUIFinchName[] = "EnableSessionCrashedBubbleUI"; |
+const char kEnableBubbleUIGroupEnabled[] = "Enabled"; |
+ |
bool ShouldOfferMetricsReporting() { |
// Stats collection only applies to Google Chrome builds. |
#if defined(GOOGLE_CHROME_BUILD) |
@@ -344,7 +351,17 @@ void SessionCrashedBubbleView::CloseBubble() { |
GetWidget()->Close(); |
} |
-bool ShowSessionCrashedBubble(Browser* browser) { |
- SessionCrashedBubbleView::Show(browser); |
- return true; |
+bool ShowSessionCrashedBubble(Browser* browser, |
+ const base::CommandLine& command_line) { |
Alexei Svitkine (slow)
2014/05/15 22:52:27
I don't think you need this param. You can just do
yao
2014/05/16 00:48:25
I can't until the other CL (with posttask schedule
Alexei Svitkine (slow)
2014/05/16 19:01:40
I think you can just wait for the other CL to land
yao
2014/05/26 21:36:50
Done.
|
+ // If user disables the bubble UI explicitly, don't show it. If not, the |
+ // bubble UI can be enabled by Finch experiment or by flag. |
+ if (command_line.HasSwitch(switches::kDisableSessionCrashedBubble)) { |
+ return false; |
Alexei Svitkine (slow)
2014/05/16 19:01:40
No need for else or {}'s if you're doing a return
yao
2014/05/26 21:36:50
Done.
|
+ } else if (base::FieldTrialList::FindFullName(kEnableBubbleUIFinchName) == |
Alexei Svitkine (slow)
2014/05/16 19:01:40
The best practice for this is to get the group fir
yao
2014/05/26 21:36:50
Done.
|
+ kEnableBubbleUIGroupEnabled || |
+ command_line.HasSwitch(switches::kEnableSessionCrashedBubble)) { |
+ SessionCrashedBubbleView::Show(browser); |
+ return true; |
+ } |
+ return false; |
} |