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

Unified Diff: chrome/browser/ui/views/sad_tab_view.cc

Issue 7633023: Add feedback link to sad tab for killed pages. (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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/views/sad_tab_view.cc
diff --git a/chrome/browser/ui/views/sad_tab_view.cc b/chrome/browser/ui/views/sad_tab_view.cc
index fa49b6082695e0493f7ab78f2787bc93d2fd2337..b63879c8680c432a464e1ee402b0d6fea07997fa 100644
--- a/chrome/browser/ui/views/sad_tab_view.cc
+++ b/chrome/browser/ui/views/sad_tab_view.cc
@@ -7,6 +7,9 @@
#include "base/metrics/histogram.h"
#include "base/utf_string_conversions.h"
#include "chrome/browser/google/google_util.h"
+#include "chrome/browser/ui/browser.h"
+#include "chrome/browser/ui/webui/bug_report_ui.h"
+#include "chrome/browser/userfeedback/proto/extension.pb.h"
#include "chrome/common/url_constants.h"
#include "content/browser/tab_contents/tab_contents.h"
#include "content/browser/tab_contents/tab_contents_delegate.h"
@@ -52,6 +55,7 @@ static const int kMessageFontSizeDelta = 1;
SadTabView::SadTabView(TabContents* tab_contents, Kind kind)
: tab_contents_(tab_contents),
learn_more_link_(NULL),
+ feedback_link_(NULL),
kind_(kind),
painted_(false) {
DCHECK(tab_contents);
@@ -82,6 +86,15 @@ SadTabView::SadTabView(TabContents* tab_contents, Kind kind)
learn_more_link_->SetNormalColor(kLinkColor);
learn_more_link_->set_listener(this);
AddChildView(learn_more_link_);
+
+ if (kind == KILLED) {
+ feedback_link_ = new views::Link(
+ UTF16ToWide(l10n_util::GetStringUTF16(IDS_KILLED_TAB_FEEDBACK_LINK)));
+ feedback_link_->SetFont(*message_font_);
+ feedback_link_->SetNormalColor(kLinkColor);
+ feedback_link_->set_listener(this);
+ AddChildView(feedback_link_);
+ }
}
}
@@ -117,9 +130,16 @@ void SadTabView::OnPaint(gfx::Canvas* canvas) {
message_bounds_.width(), message_bounds_.height(),
kMessageFlags);
- if (learn_more_link_ != NULL)
- learn_more_link_->SetBounds(link_bounds_.x(), link_bounds_.y(),
- link_bounds_.width(), link_bounds_.height());
+ if (learn_more_link_ != NULL) {
+ learn_more_link_->SetBounds(
+ learn_more_bounds_.x(), learn_more_bounds_.y(),
+ learn_more_bounds_.width(), learn_more_bounds_.height());
+ }
+ if (feedback_link_ != NULL) {
+ feedback_link_->SetBounds(
+ feedback_bounds_.x(), feedback_bounds_.y(),
+ feedback_bounds_.width(), feedback_bounds_.height());
+ }
}
void SadTabView::Layout() {
@@ -142,13 +162,25 @@ void SadTabView::Layout() {
int message_x = (width() - message_width) / 2;
int message_y = title_bounds_.bottom() + kTitleMessageSpacing;
message_bounds_.SetRect(message_x, message_y, message_width, message_height);
+ int bottom = message_bounds_.bottom();
if (learn_more_link_ != NULL) {
gfx::Size sz = learn_more_link_->GetPreferredSize();
gfx::Insets insets = learn_more_link_->GetInsets();
- link_bounds_.SetRect((width() - sz.width()) / 2,
- message_bounds_.bottom() + kTitleMessageSpacing -
- insets.top(), sz.width(), sz.height());
+ learn_more_bounds_.SetRect((width() - sz.width()) / 2,
+ bottom + kTitleMessageSpacing - insets.top(),
+ sz.width(),
+ sz.height());
+ bottom = learn_more_bounds_.bottom();
+ }
+
+ if (feedback_link_ != NULL) {
+ gfx::Size sz = feedback_link_->GetPreferredSize();
+ gfx::Insets insets = feedback_link_->GetInsets();
+ feedback_bounds_.SetRect((width() - sz.width()) / 2,
+ bottom + kTitleMessageSpacing - insets.top(),
+ sz.width(),
+ sz.height());
}
}
@@ -159,5 +191,10 @@ void SadTabView::LinkClicked(views::Link* source, int event_flags) {
chrome::kCrashReasonURL :
chrome::kKillReasonURL));
tab_contents_->OpenURL(help_url, GURL(), CURRENT_TAB, PageTransition::LINK);
+ } else if (tab_contents_ != NULL && source == feedback_link_) {
+ browser::ShowHtmlBugReportView(
+ Browser::GetBrowserForController(&tab_contents_->controller(), NULL),
+ l10n_util::GetStringUTF8(IDS_KILLED_TAB_FEEDBACK_MESSAGE),
+ userfeedback::ChromeOsData_ChromeOsCategory_CRASH);
}
}
« chrome/app/generated_resources.grd ('K') | « chrome/browser/ui/views/sad_tab_view.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698