| 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/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/path_service.h" | 8 #include "base/path_service.h" |
| 9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
| 10 #include "build/build_config.h" | 10 #include "build/build_config.h" |
| (...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 204 scoped_ptr<PluginMetadata> plugin_metadata, | 204 scoped_ptr<PluginMetadata> plugin_metadata, |
| 205 const base::string16& message) { | 205 const base::string16& message) { |
| 206 DCHECK(infobar->owner()); | 206 DCHECK(infobar->owner()); |
| 207 infobar->owner()->ReplaceInfoBar( | 207 infobar->owner()->ReplaceInfoBar( |
| 208 infobar, | 208 infobar, |
| 209 infobar->owner()->CreateConfirmInfoBar( | 209 infobar->owner()->CreateConfirmInfoBar( |
| 210 scoped_ptr<ConfirmInfoBarDelegate>(new OutdatedPluginInfoBarDelegate( | 210 scoped_ptr<ConfirmInfoBarDelegate>(new OutdatedPluginInfoBarDelegate( |
| 211 installer, plugin_metadata.Pass(), message)))); | 211 installer, plugin_metadata.Pass(), message)))); |
| 212 } | 212 } |
| 213 | 213 |
| 214 #if defined(OS_WIN) | |
| 215 | |
| 216 // PluginMetroModeInfoBarDelegate --------------------------------------------- | |
| 217 | |
| 218 // static | |
| 219 void PluginMetroModeInfoBarDelegate::Create( | |
| 220 InfoBarService* infobar_service, | |
| 221 PluginMetroModeInfoBarDelegate::Mode mode, | |
| 222 const base::string16& name) { | |
| 223 infobar_service->AddInfoBar( | |
| 224 infobar_service->CreateConfirmInfoBar(scoped_ptr<ConfirmInfoBarDelegate>( | |
| 225 new PluginMetroModeInfoBarDelegate(mode, name)))); | |
| 226 } | |
| 227 | |
| 228 PluginMetroModeInfoBarDelegate::PluginMetroModeInfoBarDelegate( | |
| 229 PluginMetroModeInfoBarDelegate::Mode mode, | |
| 230 const base::string16& name) | |
| 231 : ConfirmInfoBarDelegate(), | |
| 232 mode_(mode), | |
| 233 name_(name) { | |
| 234 } | |
| 235 | |
| 236 PluginMetroModeInfoBarDelegate::~PluginMetroModeInfoBarDelegate() { | |
| 237 } | |
| 238 | |
| 239 infobars::InfoBarDelegate::InfoBarIdentifier | |
| 240 PluginMetroModeInfoBarDelegate::GetIdentifier() const { | |
| 241 return PLUGIN_METRO_MODE_INFOBAR_DELEGATE; | |
| 242 } | |
| 243 | |
| 244 int PluginMetroModeInfoBarDelegate::GetIconId() const { | |
| 245 return IDR_INFOBAR_PLUGIN_INSTALL; | |
| 246 } | |
| 247 | |
| 248 base::string16 PluginMetroModeInfoBarDelegate::GetMessageText() const { | |
| 249 return l10n_util::GetStringFUTF16((mode_ == MISSING_PLUGIN) ? | |
| 250 IDS_METRO_MISSING_PLUGIN_PROMPT : IDS_METRO_NPAPI_PLUGIN_PROMPT, name_); | |
| 251 } | |
| 252 | |
| 253 int PluginMetroModeInfoBarDelegate::GetButtons() const { | |
| 254 return BUTTON_OK; | |
| 255 } | |
| 256 | |
| 257 base::string16 PluginMetroModeInfoBarDelegate::GetButtonLabel( | |
| 258 InfoBarButton button) const { | |
| 259 return l10n_util::GetStringUTF16(IDS_WIN_DESKTOP_RESTART); | |
| 260 } | |
| 261 | |
| 262 void LaunchDesktopInstanceHelper(const base::string16& url) { | |
| 263 base::FilePath exe_path; | |
| 264 if (!PathService::Get(base::FILE_EXE, &exe_path)) | |
| 265 return; | |
| 266 base::FilePath shortcut_path( | |
| 267 ShellIntegration::GetStartMenuShortcut(exe_path)); | |
| 268 | |
| 269 // Actually launching the process needs to happen in the metro viewer, | |
| 270 // otherwise it won't automatically transition to desktop. So we have | |
| 271 // to send an IPC to the viewer to do the ShellExecute. | |
| 272 aura::RemoteWindowTreeHostWin::Instance()->HandleOpenURLOnDesktop( | |
| 273 shortcut_path, url); | |
| 274 } | |
| 275 | |
| 276 bool PluginMetroModeInfoBarDelegate::Accept() { | |
| 277 // TODO(scottmg): Remove this entire class http://crbug.com/558054. | |
| 278 return true; | |
| 279 } | |
| 280 | |
| 281 base::string16 PluginMetroModeInfoBarDelegate::GetLinkText() const { | |
| 282 return l10n_util::GetStringUTF16(IDS_LEARN_MORE); | |
| 283 } | |
| 284 | |
| 285 GURL PluginMetroModeInfoBarDelegate::GetLinkURL() const { | |
| 286 return GURL( | |
| 287 (mode_ == MISSING_PLUGIN) | |
| 288 ? "https://support.google.com/chrome/?p=ib_display_in_desktop" | |
| 289 : "https://support.google.com/chrome/?p=ib_redirect_to_desktop"); | |
| 290 } | |
| 291 | |
| 292 #endif // defined(OS_WIN) | |
| 293 | |
| 294 #endif // defined(ENABLE_PLUGIN_INSTALLATION) | 214 #endif // defined(ENABLE_PLUGIN_INSTALLATION) |
| OLD | NEW |