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/plugin_infobar_delegates.h" | 5 #include "chrome/browser/plugin_infobar_delegates.h" |
6 | 6 |
7 #include "base/utf_string_conversions.h" | 7 #include "base/utf_string_conversions.h" |
8 #include "chrome/browser/content_settings/host_content_settings_map.h" | 8 #include "chrome/browser/content_settings/host_content_settings_map.h" |
9 #include "chrome/browser/google/google_util.h" | 9 #include "chrome/browser/google/google_util.h" |
10 #include "chrome/browser/infobars/infobar_tab_helper.h" | 10 #include "chrome/browser/infobars/infobar_tab_helper.h" |
11 #include "chrome/browser/plugin_observer.h" | 11 #include "chrome/browser/plugin_observer.h" |
12 #include "chrome/browser/ui/tab_contents/tab_contents.h" | 12 #include "chrome/browser/ui/tab_contents/tab_contents.h" |
13 #include "chrome/common/render_messages.h" | 13 #include "chrome/common/render_messages.h" |
14 #include "chrome/common/url_constants.h" | 14 #include "chrome/common/url_constants.h" |
15 #include "content/public/browser/render_view_host.h" | 15 #include "content/public/browser/render_view_host.h" |
16 #include "content/public/browser/user_metrics.h" | 16 #include "content/public/browser/user_metrics.h" |
17 #include "content/public/browser/web_contents.h" | 17 #include "content/public/browser/web_contents.h" |
18 #include "grit/generated_resources.h" | 18 #include "grit/generated_resources.h" |
19 #include "grit/locale_settings.h" | 19 #include "grit/locale_settings.h" |
20 #include "grit/theme_resources_standard.h" | 20 #include "grit/theme_resources_standard.h" |
21 #include "ui/base/l10n/l10n_util.h" | 21 #include "ui/base/l10n/l10n_util.h" |
22 #include "ui/base/resource/resource_bundle.h" | 22 #include "ui/base/resource/resource_bundle.h" |
23 #include "webkit/plugins/npapi/plugin_group.h" | 23 #include "webkit/plugins/npapi/plugin_group.h" |
24 | 24 |
| 25 #if defined(OS_WIN) |
| 26 #include <shellapi.h> |
| 27 #include "ui/base/win/shell.h" |
| 28 #endif |
| 29 |
25 #if defined(ENABLE_PLUGIN_INSTALLATION) | 30 #if defined(ENABLE_PLUGIN_INSTALLATION) |
26 #include "chrome/browser/plugin_installer.h" | 31 #include "chrome/browser/plugin_installer.h" |
27 #endif // defined(ENABLE_PLUGIN_INSTALLATION) | 32 #endif // defined(ENABLE_PLUGIN_INSTALLATION) |
28 | 33 |
29 using content::OpenURLParams; | 34 using content::OpenURLParams; |
30 using content::Referrer; | 35 using content::Referrer; |
31 using content::UserMetricsAction; | 36 using content::UserMetricsAction; |
32 | 37 |
33 PluginInfoBarDelegate::PluginInfoBarDelegate(InfoBarTabHelper* infobar_helper, | 38 PluginInfoBarDelegate::PluginInfoBarDelegate(InfoBarTabHelper* infobar_helper, |
34 const string16& name, | 39 const string16& name, |
(...skipping 410 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
445 return BUTTON_OK; | 450 return BUTTON_OK; |
446 } | 451 } |
447 | 452 |
448 string16 PluginMetroModeInfoBarDelegate::GetButtonLabel( | 453 string16 PluginMetroModeInfoBarDelegate::GetButtonLabel( |
449 InfoBarButton button) const { | 454 InfoBarButton button) const { |
450 DCHECK_EQ(BUTTON_OK, button); | 455 DCHECK_EQ(BUTTON_OK, button); |
451 return l10n_util::GetStringUTF16(IDS_METRO_SWITCH_TO_DESKTOP_BUTTON); | 456 return l10n_util::GetStringUTF16(IDS_METRO_SWITCH_TO_DESKTOP_BUTTON); |
452 } | 457 } |
453 | 458 |
454 bool PluginMetroModeInfoBarDelegate::Accept() { | 459 bool PluginMetroModeInfoBarDelegate::Accept() { |
455 // TODO(cpu) switch to desktop chrome here. | 460 content::WebContents* web_contents = owner()->web_contents(); |
456 return false; | 461 if (!web_contents) |
| 462 return false; |
| 463 // Note that empty urls are not valid. |
| 464 if (!web_contents->GetURL().is_valid()) |
| 465 return false; |
| 466 std::string url(web_contents->GetURL().spec()); |
| 467 // This obscure use of the 'log usage' mask for windows 8 is documented |
| 468 // here http://goo.gl/HBOe9. |
| 469 ui::win::OpenAnyViaShell(UTF8ToUTF16(url), |
| 470 string16(), |
| 471 SEE_MASK_FLAG_LOG_USAGE); |
| 472 return true; |
457 } | 473 } |
458 | 474 |
459 string16 PluginMetroModeInfoBarDelegate::GetLinkText() const { | 475 string16 PluginMetroModeInfoBarDelegate::GetLinkText() const { |
460 return l10n_util::GetStringUTF16(IDS_METRO_SWITCH_WHY_LINK); | 476 return l10n_util::GetStringUTF16(IDS_METRO_SWITCH_WHY_LINK); |
461 } | 477 } |
462 | 478 |
463 bool PluginMetroModeInfoBarDelegate::LinkClicked( | 479 bool PluginMetroModeInfoBarDelegate::LinkClicked( |
464 WindowOpenDisposition disposition) { | 480 WindowOpenDisposition disposition) { |
465 // TODO(cpu): replace with the final url. | 481 // TODO(cpu): replace with the final url. |
466 GURL url = google_util::AppendGoogleLocaleParam(GURL( | 482 GURL url = google_util::AppendGoogleLocaleParam(GURL( |
467 "https://www.google.com/support/chrome/bin/answer.py?answer=142064")); | 483 "https://support.google.com/chrome/?ib_display_in_desktop")); |
468 OpenURLParams params( | 484 OpenURLParams params( |
469 url, Referrer(), | 485 url, Referrer(), |
470 (disposition == CURRENT_TAB) ? NEW_FOREGROUND_TAB : disposition, | 486 (disposition == CURRENT_TAB) ? NEW_FOREGROUND_TAB : disposition, |
471 content::PAGE_TRANSITION_LINK, false); | 487 content::PAGE_TRANSITION_LINK, false); |
472 owner()->web_contents()->OpenURL(params); | 488 owner()->web_contents()->OpenURL(params); |
473 return false; | 489 return false; |
474 } | 490 } |
475 #endif // defined(OS_WIN) | 491 #endif // defined(OS_WIN) |
476 #endif // defined(ENABLE_PLUGIN_INSTALLATION) | 492 #endif // defined(ENABLE_PLUGIN_INSTALLATION) |
OLD | NEW |