OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/hung_renderer_dialog.h" | 5 #include "chrome/browser/hung_renderer_dialog.h" |
6 | 6 |
7 #include "app/l10n_util.h" | 7 #include "app/l10n_util.h" |
8 #include "app/resource_bundle.h" | 8 #include "app/resource_bundle.h" |
9 #include "base/i18n/rtl.h" | 9 #include "base/i18n/rtl.h" |
10 #include "base/utf_string_conversions.h" | 10 #include "base/utf_string_conversions.h" |
(...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
260 window()->Close(); | 260 window()->Close(); |
261 // Since we're closing, we no longer need this TabContents. | 261 // Since we're closing, we no longer need this TabContents. |
262 contents_ = NULL; | 262 contents_ = NULL; |
263 } | 263 } |
264 } | 264 } |
265 | 265 |
266 /////////////////////////////////////////////////////////////////////////////// | 266 /////////////////////////////////////////////////////////////////////////////// |
267 // HungRendererDialogView, views::DialogDelegate implementation: | 267 // HungRendererDialogView, views::DialogDelegate implementation: |
268 | 268 |
269 std::wstring HungRendererDialogView::GetWindowTitle() const { | 269 std::wstring HungRendererDialogView::GetWindowTitle() const { |
270 return l10n_util::GetString(IDS_BROWSER_HANGMONITOR_RENDERER_TITLE); | 270 return UTF16ToWide( |
| 271 l10n_util::GetStringUTF16(IDS_BROWSER_HANGMONITOR_RENDERER_TITLE)); |
271 } | 272 } |
272 | 273 |
273 void HungRendererDialogView::WindowClosing() { | 274 void HungRendererDialogView::WindowClosing() { |
274 // We are going to be deleted soon, so make sure our instance is destroyed. | 275 // We are going to be deleted soon, so make sure our instance is destroyed. |
275 g_instance = NULL; | 276 g_instance = NULL; |
276 } | 277 } |
277 | 278 |
278 int HungRendererDialogView::GetDialogButtons() const { | 279 int HungRendererDialogView::GetDialogButtons() const { |
279 // We specifically don't want a CANCEL button here because that code path is | 280 // We specifically don't want a CANCEL button here because that code path is |
280 // also called when the window is closed by the user clicking the X button in | 281 // also called when the window is closed by the user clicking the X button in |
281 // the window's titlebar, and also if we call Window::Close. Rather, we want | 282 // the window's titlebar, and also if we call Window::Close. Rather, we want |
282 // the OK button to wait for responsiveness (and close the dialog) and our | 283 // the OK button to wait for responsiveness (and close the dialog) and our |
283 // additional button (which we create) to kill the process (which will result | 284 // additional button (which we create) to kill the process (which will result |
284 // in the dialog being destroyed). | 285 // in the dialog being destroyed). |
285 return MessageBoxFlags::DIALOGBUTTON_OK; | 286 return MessageBoxFlags::DIALOGBUTTON_OK; |
286 } | 287 } |
287 | 288 |
288 std::wstring HungRendererDialogView::GetDialogButtonLabel( | 289 std::wstring HungRendererDialogView::GetDialogButtonLabel( |
289 MessageBoxFlags::DialogButton button) const { | 290 MessageBoxFlags::DialogButton button) const { |
290 if (button == MessageBoxFlags::DIALOGBUTTON_OK) | 291 if (button == MessageBoxFlags::DIALOGBUTTON_OK) |
291 return l10n_util::GetString(IDS_BROWSER_HANGMONITOR_RENDERER_WAIT); | 292 return UTF16ToWide( |
| 293 l10n_util::GetStringUTF16(IDS_BROWSER_HANGMONITOR_RENDERER_WAIT)); |
292 return std::wstring(); | 294 return std::wstring(); |
293 } | 295 } |
294 | 296 |
295 views::View* HungRendererDialogView::GetExtraView() { | 297 views::View* HungRendererDialogView::GetExtraView() { |
296 return kill_button_container_; | 298 return kill_button_container_; |
297 } | 299 } |
298 | 300 |
299 bool HungRendererDialogView::Accept(bool window_closing) { | 301 bool HungRendererDialogView::Accept(bool window_closing) { |
300 // Don't do anything if we're being called only because the dialog is being | 302 // Don't do anything if we're being called only because the dialog is being |
301 // destroyed and we don't supply a Cancel function... | 303 // destroyed and we don't supply a Cancel function... |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
337 } | 339 } |
338 | 340 |
339 /////////////////////////////////////////////////////////////////////////////// | 341 /////////////////////////////////////////////////////////////////////////////// |
340 // HungRendererDialogView, private: | 342 // HungRendererDialogView, private: |
341 | 343 |
342 void HungRendererDialogView::Init() { | 344 void HungRendererDialogView::Init() { |
343 frozen_icon_view_ = new views::ImageView; | 345 frozen_icon_view_ = new views::ImageView; |
344 frozen_icon_view_->SetImage(frozen_icon_); | 346 frozen_icon_view_->SetImage(frozen_icon_); |
345 | 347 |
346 info_label_ = new views::Label( | 348 info_label_ = new views::Label( |
347 l10n_util::GetString(IDS_BROWSER_HANGMONITOR_RENDERER)); | 349 UTF16ToWide(l10n_util::GetStringUTF16(IDS_BROWSER_HANGMONITOR_RENDERER))); |
348 info_label_->SetMultiLine(true); | 350 info_label_->SetMultiLine(true); |
349 info_label_->SetHorizontalAlignment(views::Label::ALIGN_LEFT); | 351 info_label_->SetHorizontalAlignment(views::Label::ALIGN_LEFT); |
350 | 352 |
351 hung_pages_table_model_.reset(new HungPagesTableModel); | 353 hung_pages_table_model_.reset(new HungPagesTableModel); |
352 std::vector<TableColumn> columns; | 354 std::vector<TableColumn> columns; |
353 columns.push_back(TableColumn()); | 355 columns.push_back(TableColumn()); |
354 hung_pages_table_ = new views::GroupTableView( | 356 hung_pages_table_ = new views::GroupTableView( |
355 hung_pages_table_model_.get(), columns, views::ICON_AND_TEXT, true, | 357 hung_pages_table_model_.get(), columns, views::ICON_AND_TEXT, true, |
356 false, true, false); | 358 false, true, false); |
357 hung_pages_table_->SetPreferredSize( | 359 hung_pages_table_->SetPreferredSize( |
(...skipping 22 matching lines...) Expand all Loading... |
380 layout->AddPaddingRow(0, kUnrelatedControlVerticalSpacing); | 382 layout->AddPaddingRow(0, kUnrelatedControlVerticalSpacing); |
381 | 383 |
382 layout->StartRow(0, double_column_set_id); | 384 layout->StartRow(0, double_column_set_id); |
383 layout->SkipColumns(1); | 385 layout->SkipColumns(1); |
384 layout->AddView(hung_pages_table_); | 386 layout->AddView(hung_pages_table_); |
385 | 387 |
386 initialized_ = true; | 388 initialized_ = true; |
387 } | 389 } |
388 | 390 |
389 void HungRendererDialogView::CreateKillButtonView() { | 391 void HungRendererDialogView::CreateKillButtonView() { |
390 kill_button_ = new views::NativeButton( | 392 kill_button_ = new views::NativeButton(this, UTF16ToWide( |
391 this, l10n_util::GetString(IDS_BROWSER_HANGMONITOR_RENDERER_END)); | 393 l10n_util::GetStringUTF16(IDS_BROWSER_HANGMONITOR_RENDERER_END))); |
392 | 394 |
393 kill_button_container_ = new ButtonContainer; | 395 kill_button_container_ = new ButtonContainer; |
394 | 396 |
395 using views::GridLayout; | 397 using views::GridLayout; |
396 using views::ColumnSet; | 398 using views::ColumnSet; |
397 | 399 |
398 GridLayout* layout = new GridLayout(kill_button_container_); | 400 GridLayout* layout = new GridLayout(kill_button_container_); |
399 kill_button_container_->SetLayoutManager(layout); | 401 kill_button_container_->SetLayoutManager(layout); |
400 | 402 |
401 const int single_column_set_id = 0; | 403 const int single_column_set_id = 0; |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
455 } | 457 } |
456 | 458 |
457 // static | 459 // static |
458 void HideForTabContents(TabContents* contents) { | 460 void HideForTabContents(TabContents* contents) { |
459 if (!logging::DialogsAreSuppressed() && g_instance) | 461 if (!logging::DialogsAreSuppressed() && g_instance) |
460 g_instance->EndForTabContents(contents); | 462 g_instance->EndForTabContents(contents); |
461 } | 463 } |
462 | 464 |
463 } // namespace hung_renderer_dialog | 465 } // namespace hung_renderer_dialog |
464 | 466 |
OLD | NEW |