OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/plugins/plugin_infobar_delegates.h" | 5 #include "chrome/browser/plugins/plugin_infobar_delegates.h" |
6 | 6 |
7 #include "base/path_service.h" | 7 #include "base/path_service.h" |
8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
9 #include "chrome/browser/content_settings/host_content_settings_map.h" | 9 #include "chrome/browser/content_settings/host_content_settings_map.h" |
10 #include "chrome/browser/google/google_util.h" | 10 #include "chrome/browser/google/google_util.h" |
(...skipping 458 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
469 int PluginMetroModeInfoBarDelegate::GetIconID() const { | 469 int PluginMetroModeInfoBarDelegate::GetIconID() const { |
470 return IDR_INFOBAR_PLUGIN_INSTALL; | 470 return IDR_INFOBAR_PLUGIN_INSTALL; |
471 } | 471 } |
472 | 472 |
473 string16 PluginMetroModeInfoBarDelegate::GetMessageText() const { | 473 string16 PluginMetroModeInfoBarDelegate::GetMessageText() const { |
474 return l10n_util::GetStringFUTF16((mode_ == MISSING_PLUGIN) ? | 474 return l10n_util::GetStringFUTF16((mode_ == MISSING_PLUGIN) ? |
475 IDS_METRO_MISSING_PLUGIN_PROMPT : IDS_METRO_NPAPI_PLUGIN_PROMPT, name_); | 475 IDS_METRO_MISSING_PLUGIN_PROMPT : IDS_METRO_NPAPI_PLUGIN_PROMPT, name_); |
476 } | 476 } |
477 | 477 |
478 int PluginMetroModeInfoBarDelegate::GetButtons() const { | 478 int PluginMetroModeInfoBarDelegate::GetButtons() const { |
479 return (mode_ == MISSING_PLUGIN) ? BUTTON_OK : (BUTTON_OK | BUTTON_CANCEL); | 479 return BUTTON_OK; |
480 } | 480 } |
481 | 481 |
482 string16 PluginMetroModeInfoBarDelegate::GetButtonLabel( | 482 string16 PluginMetroModeInfoBarDelegate::GetButtonLabel( |
483 InfoBarButton button) const { | 483 InfoBarButton button) const { |
484 if (button == BUTTON_CANCEL) | |
485 return l10n_util::GetStringUTF16(IDS_DONT_ASK_AGAIN_INFOBAR_BUTTON_LABEL); | |
486 return l10n_util::GetStringUTF16((mode_ == MISSING_PLUGIN) ? | 484 return l10n_util::GetStringUTF16((mode_ == MISSING_PLUGIN) ? |
487 IDS_WIN8_DESKTOP_RESTART : IDS_WIN8_RESTART); | 485 IDS_WIN8_DESKTOP_RESTART : IDS_WIN8_DESKTOP_OPEN); |
488 } | 486 } |
489 | 487 |
490 void LaunchDesktopInstanceHelper(const string16& url) { | 488 void LaunchDesktopInstanceHelper(const string16& url) { |
491 base::FilePath exe_path; | 489 base::FilePath exe_path; |
492 if (!PathService::Get(base::FILE_EXE, &exe_path)) | 490 if (!PathService::Get(base::FILE_EXE, &exe_path)) |
493 return; | 491 return; |
494 base::FilePath shortcut_path( | 492 base::FilePath shortcut_path( |
495 ShellIntegration::GetStartMenuShortcut(exe_path)); | 493 ShellIntegration::GetStartMenuShortcut(exe_path)); |
496 | 494 |
497 SHELLEXECUTEINFO sei = { sizeof(sei) }; | 495 SHELLEXECUTEINFO sei = { sizeof(sei) }; |
(...skipping 11 matching lines...) Expand all Loading... |
509 content::BrowserThread::PostTask( | 507 content::BrowserThread::PostTask( |
510 content::BrowserThread::PROCESS_LAUNCHER, FROM_HERE, | 508 content::BrowserThread::PROCESS_LAUNCHER, FROM_HERE, |
511 base::Bind(&LaunchDesktopInstanceHelper, | 509 base::Bind(&LaunchDesktopInstanceHelper, |
512 UTF8ToUTF16(web_contents()->GetURL().spec()))); | 510 UTF8ToUTF16(web_contents()->GetURL().spec()))); |
513 #else | 511 #else |
514 chrome::AttemptRestartWithModeSwitch(); | 512 chrome::AttemptRestartWithModeSwitch(); |
515 #endif | 513 #endif |
516 return true; | 514 return true; |
517 } | 515 } |
518 | 516 |
519 bool PluginMetroModeInfoBarDelegate::Cancel() { | |
520 DCHECK_EQ(DESKTOP_MODE_REQUIRED, mode_); | |
521 Profile::FromBrowserContext(web_contents()->GetBrowserContext())-> | |
522 GetHostContentSettingsMap()->SetContentSetting( | |
523 ContentSettingsPattern::FromURL(web_contents()->GetURL()), | |
524 ContentSettingsPattern::Wildcard(), | |
525 CONTENT_SETTINGS_TYPE_METRO_SWITCH_TO_DESKTOP, std::string(), | |
526 CONTENT_SETTING_BLOCK); | |
527 return true; | |
528 } | |
529 | |
530 string16 PluginMetroModeInfoBarDelegate::GetLinkText() const { | 517 string16 PluginMetroModeInfoBarDelegate::GetLinkText() const { |
531 return l10n_util::GetStringUTF16(IDS_LEARN_MORE); | 518 return l10n_util::GetStringUTF16(IDS_LEARN_MORE); |
532 } | 519 } |
533 | 520 |
534 bool PluginMetroModeInfoBarDelegate::LinkClicked( | 521 bool PluginMetroModeInfoBarDelegate::LinkClicked( |
535 WindowOpenDisposition disposition) { | 522 WindowOpenDisposition disposition) { |
536 web_contents()->OpenURL(content::OpenURLParams( | 523 web_contents()->OpenURL(content::OpenURLParams( |
537 GURL((mode_ == MISSING_PLUGIN) ? | 524 GURL((mode_ == MISSING_PLUGIN) ? |
538 "https://support.google.com/chrome/?p=ib_display_in_desktop" : | 525 "https://support.google.com/chrome/?p=ib_display_in_desktop" : |
539 "https://support.google.com/chrome/?p=ib_redirect_to_desktop"), | 526 "https://support.google.com/chrome/?p=ib_redirect_to_desktop"), |
540 content::Referrer(), | 527 content::Referrer(), |
541 (disposition == CURRENT_TAB) ? NEW_FOREGROUND_TAB : disposition, | 528 (disposition == CURRENT_TAB) ? NEW_FOREGROUND_TAB : disposition, |
542 content::PAGE_TRANSITION_LINK, false)); | 529 content::PAGE_TRANSITION_LINK, false)); |
543 return false; | 530 return false; |
544 } | 531 } |
545 | 532 |
546 #endif // defined(OS_WIN) | 533 #endif // defined(OS_WIN) |
547 | 534 |
548 #endif // defined(ENABLE_PLUGIN_INSTALLATION) | 535 #endif // defined(ENABLE_PLUGIN_INSTALLATION) |
OLD | NEW |