| Index: chrome/browser/tab_contents/tab_contents.cc
|
| ===================================================================
|
| --- chrome/browser/tab_contents/tab_contents.cc (revision 30970)
|
| +++ chrome/browser/tab_contents/tab_contents.cc (working copy)
|
| @@ -4,6 +4,7 @@
|
|
|
| #include "chrome/browser/tab_contents/tab_contents.h"
|
|
|
| +#include "app/gfx/text_elider.h"
|
| #include "app/l10n_util.h"
|
| #include "app/resource_bundle.h"
|
| #include "base/file_version_info.h"
|
| @@ -1114,21 +1115,6 @@
|
| render_view_host()->GetPageLanguage();
|
| }
|
|
|
| -void TabContents::OnJavaScriptMessageBoxClosed(IPC::Message* reply_msg,
|
| - bool success,
|
| - const std::wstring& prompt) {
|
| - last_javascript_message_dismissal_ = base::TimeTicks::Now();
|
| - if (is_showing_before_unload_dialog_ && !success) {
|
| - // If a beforeunload dialog is canceled, we need to stop the throbber from
|
| - // spinning, since we forced it to start spinning in Navigate.
|
| - DidStopLoading();
|
| -
|
| - tab_close_start_time_ = base::TimeTicks();
|
| - }
|
| - is_showing_before_unload_dialog_ = false;
|
| - render_view_host()->JavaScriptMessageBoxClosed(reply_msg, success, prompt);
|
| -}
|
| -
|
| void TabContents::OnSavePage() {
|
| // If we can not save the page, try to download it.
|
| if (!SavePackage::IsSavableContents(contents_mime_type())) {
|
| @@ -2333,7 +2319,7 @@
|
| } else {
|
| // If we are suppressing messages, just reply as is if the user immediately
|
| // pressed "Cancel".
|
| - OnJavaScriptMessageBoxClosed(reply_msg, false, std::wstring());
|
| + OnMessageBoxClosed(reply_msg, false, std::wstring());
|
| }
|
| }
|
|
|
| @@ -2648,6 +2634,58 @@
|
| }
|
| }
|
|
|
| +std::wstring TabContents::GetMessageBoxTitle(const GURL& frame_url,
|
| + bool is_alert) {
|
| + if (!frame_url.has_host())
|
| + return l10n_util::GetString(
|
| + is_alert ? IDS_JAVASCRIPT_ALERT_DEFAULT_TITLE
|
| + : IDS_JAVASCRIPT_MESSAGEBOX_DEFAULT_TITLE);
|
| +
|
| + // We really only want the scheme, hostname, and port.
|
| + GURL::Replacements replacements;
|
| + replacements.ClearUsername();
|
| + replacements.ClearPassword();
|
| + replacements.ClearPath();
|
| + replacements.ClearQuery();
|
| + replacements.ClearRef();
|
| + GURL clean_url = frame_url.ReplaceComponents(replacements);
|
| +
|
| + // TODO(brettw) it should be easier than this to do the correct language
|
| + // handling without getting the accept language from the profile.
|
| + std::wstring base_address = gfx::ElideUrl(clean_url, gfx::Font(), 0,
|
| + profile()->GetPrefs()->GetString(prefs::kAcceptLanguages));
|
| + // Force URL to have LTR directionality.
|
| + if (l10n_util::GetTextDirection() == l10n_util::RIGHT_TO_LEFT)
|
| + l10n_util::WrapStringWithLTRFormatting(&base_address);
|
| +
|
| + return l10n_util::GetStringF(
|
| + is_alert ? IDS_JAVASCRIPT_ALERT_TITLE : IDS_JAVASCRIPT_MESSAGEBOX_TITLE,
|
| + base_address);
|
| +}
|
| +
|
| +gfx::NativeWindow TabContents::GetMessageBoxRootWindow() {
|
| + return view_->GetTopLevelNativeWindow();
|
| +}
|
| +
|
| +void TabContents::OnMessageBoxClosed(IPC::Message* reply_msg,
|
| + bool success,
|
| + const std::wstring& prompt) {
|
| + last_javascript_message_dismissal_ = base::TimeTicks::Now();
|
| + if (is_showing_before_unload_dialog_ && !success) {
|
| + // If a beforeunload dialog is canceled, we need to stop the throbber from
|
| + // spinning, since we forced it to start spinning in Navigate.
|
| + DidStopLoading();
|
| +
|
| + tab_close_start_time_ = base::TimeTicks();
|
| + }
|
| + is_showing_before_unload_dialog_ = false;
|
| + render_view_host()->JavaScriptMessageBoxClosed(reply_msg, success, prompt);
|
| +}
|
| +
|
| +void TabContents::SetSuppressMessageBoxes(bool suppress_message_boxes) {
|
| + set_suppress_javascript_messages(suppress_message_boxes);
|
| +}
|
| +
|
| void TabContents::set_encoding(const std::string& encoding) {
|
| encoding_ = CharacterEncoding::GetCanonicalEncodingNameByAliasName(encoding);
|
| }
|
|
|