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

Side by Side Diff: chrome/browser/ui/sad_tab.cc

Issue 2794763002: New Sad Tab strings. (Closed)
Patch Set: right number of spaces as per UI review Created 3 years, 7 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/browser/ui/sad_tab.h" 5 #include "chrome/browser/ui/sad_tab.h"
6 6
7 #include "base/metrics/histogram_macros.h" 7 #include "base/metrics/histogram_macros.h"
8 #include "chrome/browser/net/referrer.h" 8 #include "chrome/browser/net/referrer.h"
9 #include "chrome/browser/ui/browser_finder.h" 9 #include "chrome/browser/ui/browser_finder.h"
10 #include "chrome/browser/ui/chrome_pages.h" 10 #include "chrome/browser/ui/chrome_pages.h"
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 #endif 88 #endif
89 case base::TERMINATION_STATUS_LAUNCH_FAILED: 89 case base::TERMINATION_STATUS_LAUNCH_FAILED:
90 case base::TERMINATION_STATUS_MAX_ENUM: 90 case base::TERMINATION_STATUS_MAX_ENUM:
91 return false; 91 return false;
92 } 92 }
93 NOTREACHED(); 93 NOTREACHED();
94 return false; 94 return false;
95 } 95 }
96 96
97 int SadTab::GetTitle() { 97 int SadTab::GetTitle() {
98 return IDS_SAD_TAB_TITLE; 98 if (!show_feedback_button_)
99 return IDS_SAD_TAB_TITLE;
100 switch (kind_) {
101 #if defined(OS_CHROMEOS)
102 case chrome::SAD_TAB_KIND_KILLED_BY_OOM:
103 return IDS_SAD_TAB_RELOAD_TITLE;
104 #endif
105 case chrome::SAD_TAB_KIND_OOM:
106 return IDS_SAD_TAB_OOM_TITLE;
107 case chrome::SAD_TAB_KIND_CRASHED:
108 case chrome::SAD_TAB_KIND_KILLED:
109 return IDS_SAD_TAB_RELOAD_TITLE;
110 }
99 } 111 }
100 112
101 int SadTab::GetMessage() { 113 int SadTab::GetMessage() {
102 switch (kind_) { 114 switch (kind_) {
103 #if defined(OS_CHROMEOS) 115 #if defined(OS_CHROMEOS)
104 case chrome::SAD_TAB_KIND_KILLED_BY_OOM: 116 case chrome::SAD_TAB_KIND_KILLED_BY_OOM:
105 return IDS_KILLED_TAB_BY_OOM_MESSAGE; 117 return IDS_KILLED_TAB_BY_OOM_MESSAGE;
106 #endif 118 #endif
107 case chrome::SAD_TAB_KIND_OOM: 119 case chrome::SAD_TAB_KIND_OOM:
108 return IDS_SAD_TAB_OOM_MESSAGE; 120 if (show_feedback_button_)
121 return other_tabs_open_ ? IDS_SAD_TAB_OOM_MESSAGE_TABS
122 : IDS_SAD_TAB_OOM_MESSAGE_NOTABS;
123 else
sky 2017/05/14 13:46:16 chromium style guide says no else after return.
Will Harris 2017/05/17 18:25:19 Done.
124 return IDS_SAD_TAB_MESSAGE;
109 case chrome::SAD_TAB_KIND_CRASHED: 125 case chrome::SAD_TAB_KIND_CRASHED:
110 case chrome::SAD_TAB_KIND_KILLED: 126 case chrome::SAD_TAB_KIND_KILLED:
111 return IDS_SAD_TAB_MESSAGE; 127 return show_feedback_button_ ? IDS_SAD_TAB_RELOAD_TRY
128 : IDS_SAD_TAB_MESSAGE;
112 } 129 }
113 NOTREACHED(); 130 NOTREACHED();
114 return 0; 131 return 0;
115 } 132 }
116 133
117 int SadTab::GetButtonTitle() { 134 int SadTab::GetButtonTitle() {
118 return show_feedback_button_ ? IDS_CRASHED_TAB_FEEDBACK_LINK 135 return show_feedback_button_ ? IDS_CRASHED_TAB_FEEDBACK_LINK
119 : IDS_SAD_TAB_RELOAD_LABEL; 136 : IDS_SAD_TAB_RELOAD_LABEL;
120 } 137 }
121 138
122 int SadTab::GetHelpLinkTitle() { 139 int SadTab::GetHelpLinkTitle() {
123 return IDS_SAD_TAB_LEARN_MORE_LINK; 140 return IDS_SAD_TAB_LEARN_MORE_LINK;
124 } 141 }
125 142
126 const char* SadTab::GetHelpLinkURL() { 143 const char* SadTab::GetHelpLinkURL() {
127 return show_feedback_button_ ? chrome::kCrashReasonFeedbackDisplayedURL 144 return show_feedback_button_ ? chrome::kCrashReasonFeedbackDisplayedURL
128 : chrome::kCrashReasonURL; 145 : chrome::kCrashReasonURL;
129 } 146 }
130 147
148 int SadTab::GetBulletText(size_t bullet_id) {
149 // Note: on macOS, Linux and ChromeOS, the first bullet is either one of
150 // IDS_SAD_TAB_RELOAD_CLOSE_TABS or IDS_SAD_TAB_RELOAD_CLOSE_NOTABS followed
151 // by one of these suggestions.
152 const int kBulletIds[] = {IDS_SAD_TAB_RELOAD_INCOGNITO,
153 IDS_SAD_TAB_RELOAD_RESTART_BROWSER,
154 IDS_SAD_TAB_RELOAD_RESTART_DEVICE};
155
156 if (!show_feedback_button_)
157 return 0;
158 switch (kind_) {
159 #if defined(OS_CHROMEOS)
160 case chrome::SAD_TAB_KIND_KILLED_BY_OOM:
161 return 0;
162 #endif
163 case chrome::SAD_TAB_KIND_OOM:
164 return 0;
165 case chrome::SAD_TAB_KIND_CRASHED:
166 case chrome::SAD_TAB_KIND_KILLED:
167 #if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_CHROMEOS)
168 if (bullet_id == 0)
169 return other_tabs_open_ ? IDS_SAD_TAB_RELOAD_CLOSE_TABS
170 : IDS_SAD_TAB_RELOAD_CLOSE_NOTABS;
171 bullet_id--;
172 #endif
173 if (bullet_id > 2)
174 return 0;
175 return kBulletIds[bullet_id];
176 }
177 NOTREACHED();
178 return 0;
179 }
180
131 void SadTab::RecordFirstPaint() { 181 void SadTab::RecordFirstPaint() {
132 DCHECK(!recorded_paint_); 182 DCHECK(!recorded_paint_);
133 recorded_paint_ = true; 183 recorded_paint_ = true;
134 184
135 switch (kind_) { 185 switch (kind_) {
136 case chrome::SAD_TAB_KIND_CRASHED: 186 case chrome::SAD_TAB_KIND_CRASHED:
137 UMA_SAD_TAB_COUNTER("Tabs.SadTab.CrashDisplayed"); 187 UMA_SAD_TAB_COUNTER("Tabs.SadTab.CrashDisplayed");
138 break; 188 break;
139 case chrome::SAD_TAB_KIND_OOM: 189 case chrome::SAD_TAB_KIND_OOM:
140 UMA_SAD_TAB_COUNTER("Tabs.SadTab.OomDisplayed"); 190 UMA_SAD_TAB_COUNTER("Tabs.SadTab.OomDisplayed");
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
177 ui::PAGE_TRANSITION_LINK, false); 227 ui::PAGE_TRANSITION_LINK, false);
178 web_contents_->OpenURL(params); 228 web_contents_->OpenURL(params);
179 break; 229 break;
180 } 230 }
181 } 231 }
182 232
183 SadTab::SadTab(content::WebContents* web_contents, SadTabKind kind) 233 SadTab::SadTab(content::WebContents* web_contents, SadTabKind kind)
184 : web_contents_(web_contents), 234 : web_contents_(web_contents),
185 kind_(kind), 235 kind_(kind),
186 show_feedback_button_(ShouldShowFeedbackButton()), 236 show_feedback_button_(ShouldShowFeedbackButton()),
187 recorded_paint_(false) { 237 recorded_paint_(false),
238 other_tabs_open_(true) {
188 switch (kind) { 239 switch (kind) {
189 case chrome::SAD_TAB_KIND_CRASHED: 240 case chrome::SAD_TAB_KIND_CRASHED:
190 UMA_SAD_TAB_COUNTER("Tabs.SadTab.CrashCreated"); 241 UMA_SAD_TAB_COUNTER("Tabs.SadTab.CrashCreated");
191 break; 242 break;
192 case chrome::SAD_TAB_KIND_OOM: 243 case chrome::SAD_TAB_KIND_OOM:
193 UMA_SAD_TAB_COUNTER("Tabs.SadTab.OomCreated"); 244 UMA_SAD_TAB_COUNTER("Tabs.SadTab.OomCreated");
194 break; 245 break;
195 #if defined(OS_CHROMEOS) 246 #if defined(OS_CHROMEOS)
196 case chrome::SAD_TAB_KIND_KILLED_BY_OOM: 247 case chrome::SAD_TAB_KIND_KILLED_BY_OOM:
197 UMA_SAD_TAB_COUNTER("Tabs.SadTab.KillCreated.OOM"); 248 UMA_SAD_TAB_COUNTER("Tabs.SadTab.KillCreated.OOM");
198 { 249 {
199 const std::string spec = web_contents->GetURL().GetOrigin().spec(); 250 const std::string spec = web_contents->GetURL().GetOrigin().spec();
200 memory::OomMemoryDetails::Log( 251 memory::OomMemoryDetails::Log(
201 "Tab OOM-Killed Memory details: " + spec + ", ", base::Closure()); 252 "Tab OOM-Killed Memory details: " + spec + ", ", base::Closure());
202 } 253 }
203 #endif 254 #endif
204 // Fall through 255 // Fall through
205 case chrome::SAD_TAB_KIND_KILLED: 256 case chrome::SAD_TAB_KIND_KILLED:
206 UMA_SAD_TAB_COUNTER("Tabs.SadTab.KillCreated"); 257 UMA_SAD_TAB_COUNTER("Tabs.SadTab.KillCreated");
207 LOG(WARNING) << "Tab Killed: " 258 LOG(WARNING) << "Tab Killed: "
208 << web_contents->GetURL().GetOrigin().spec(); 259 << web_contents->GetURL().GetOrigin().spec();
209 break; 260 break;
210 } 261 }
211 } 262 }
212 263
213 } // namespace chrome 264 } // namespace chrome
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698