| 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/utf_string_conversions.h" | 7 #include "base/utf_string_conversions.h" |
| 8 #include "chrome/browser/api/infobars/infobar_service.h" | 8 #include "chrome/browser/api/infobars/infobar_service.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 10 matching lines...) Expand all Loading... |
| 21 #include "grit/theme_resources.h" | 21 #include "grit/theme_resources.h" |
| 22 #include "ui/base/l10n/l10n_util.h" | 22 #include "ui/base/l10n/l10n_util.h" |
| 23 #include "ui/base/resource/resource_bundle.h" | 23 #include "ui/base/resource/resource_bundle.h" |
| 24 | 24 |
| 25 #if defined(OS_WIN) | 25 #if defined(OS_WIN) |
| 26 #include <shellapi.h> | 26 #include <shellapi.h> |
| 27 #include "ui/base/win/shell.h" | 27 #include "ui/base/win/shell.h" |
| 28 #endif | 28 #endif |
| 29 | 29 |
| 30 #if defined(ENABLE_PLUGIN_INSTALLATION) | 30 #if defined(ENABLE_PLUGIN_INSTALLATION) |
| 31 #if defined(OS_WIN) |
| 32 #include "base/win/metro.h" |
| 33 #endif |
| 31 #include "chrome/browser/plugins/plugin_installer.h" | 34 #include "chrome/browser/plugins/plugin_installer.h" |
| 32 #endif // defined(ENABLE_PLUGIN_INSTALLATION) | 35 #endif // defined(ENABLE_PLUGIN_INSTALLATION) |
| 33 | 36 |
| 34 using content::OpenURLParams; | 37 using content::OpenURLParams; |
| 35 using content::Referrer; | 38 using content::Referrer; |
| 36 using content::UserMetricsAction; | 39 using content::UserMetricsAction; |
| 37 | 40 |
| 38 PluginInfoBarDelegate::PluginInfoBarDelegate(InfoBarService* infobar_service, | 41 PluginInfoBarDelegate::PluginInfoBarDelegate(InfoBarService* infobar_service, |
| 39 const string16& name, | 42 const string16& name, |
| 40 const std::string& identifier) | 43 const std::string& identifier) |
| (...skipping 27 matching lines...) Expand all Loading... |
| 68 return &ResourceBundle::GetSharedInstance().GetNativeImageNamed( | 71 return &ResourceBundle::GetSharedInstance().GetNativeImageNamed( |
| 69 IDR_INFOBAR_PLUGIN_INSTALL); | 72 IDR_INFOBAR_PLUGIN_INSTALL); |
| 70 } | 73 } |
| 71 | 74 |
| 72 string16 PluginInfoBarDelegate::GetLinkText() const { | 75 string16 PluginInfoBarDelegate::GetLinkText() const { |
| 73 return l10n_util::GetStringUTF16(IDS_LEARN_MORE); | 76 return l10n_util::GetStringUTF16(IDS_LEARN_MORE); |
| 74 } | 77 } |
| 75 | 78 |
| 76 // UnauthorizedPluginInfoBarDelegate ------------------------------------------ | 79 // UnauthorizedPluginInfoBarDelegate ------------------------------------------ |
| 77 | 80 |
| 78 UnauthorizedPluginInfoBarDelegate::UnauthorizedPluginInfoBarDelegate( | 81 // static |
| 82 void UnauthorizedPluginInfoBarDelegate::Create( |
| 79 InfoBarService* infobar_service, | 83 InfoBarService* infobar_service, |
| 80 HostContentSettingsMap* content_settings, | 84 HostContentSettingsMap* content_settings, |
| 81 const string16& utf16_name, | 85 const string16& utf16_name, |
| 82 const std::string& identifier) | 86 const std::string& identifier) { |
| 83 : PluginInfoBarDelegate(infobar_service, utf16_name, identifier), | 87 infobar_service->AddInfoBar(scoped_ptr<InfoBarDelegate>( |
| 84 content_settings_(content_settings) { | 88 new UnauthorizedPluginInfoBarDelegate(infobar_service, content_settings, |
| 89 utf16_name, identifier))); |
| 90 |
| 85 content::RecordAction(UserMetricsAction("BlockedPluginInfobar.Shown")); | 91 content::RecordAction(UserMetricsAction("BlockedPluginInfobar.Shown")); |
| 86 std::string name = UTF16ToUTF8(utf16_name); | 92 std::string name(UTF16ToUTF8(utf16_name)); |
| 87 if (name == PluginMetadata::kJavaGroupName) | 93 if (name == PluginMetadata::kJavaGroupName) |
| 88 content::RecordAction( | 94 content::RecordAction( |
| 89 UserMetricsAction("BlockedPluginInfobar.Shown.Java")); | 95 UserMetricsAction("BlockedPluginInfobar.Shown.Java")); |
| 90 else if (name == PluginMetadata::kQuickTimeGroupName) | 96 else if (name == PluginMetadata::kQuickTimeGroupName) |
| 91 content::RecordAction( | 97 content::RecordAction( |
| 92 UserMetricsAction("BlockedPluginInfobar.Shown.QuickTime")); | 98 UserMetricsAction("BlockedPluginInfobar.Shown.QuickTime")); |
| 93 else if (name == PluginMetadata::kShockwaveGroupName) | 99 else if (name == PluginMetadata::kShockwaveGroupName) |
| 94 content::RecordAction( | 100 content::RecordAction( |
| 95 UserMetricsAction("BlockedPluginInfobar.Shown.Shockwave")); | 101 UserMetricsAction("BlockedPluginInfobar.Shown.Shockwave")); |
| 96 else if (name == PluginMetadata::kRealPlayerGroupName) | 102 else if (name == PluginMetadata::kRealPlayerGroupName) |
| 97 content::RecordAction( | 103 content::RecordAction( |
| 98 UserMetricsAction("BlockedPluginInfobar.Shown.RealPlayer")); | 104 UserMetricsAction("BlockedPluginInfobar.Shown.RealPlayer")); |
| 99 else if (name == PluginMetadata::kWindowsMediaPlayerGroupName) | 105 else if (name == PluginMetadata::kWindowsMediaPlayerGroupName) |
| 100 content::RecordAction( | 106 content::RecordAction( |
| 101 UserMetricsAction("BlockedPluginInfobar.Shown.WindowsMediaPlayer")); | 107 UserMetricsAction("BlockedPluginInfobar.Shown.WindowsMediaPlayer")); |
| 102 } | 108 } |
| 103 | 109 |
| 110 UnauthorizedPluginInfoBarDelegate::UnauthorizedPluginInfoBarDelegate( |
| 111 InfoBarService* infobar_service, |
| 112 HostContentSettingsMap* content_settings, |
| 113 const string16& utf16_name, |
| 114 const std::string& identifier) |
| 115 : PluginInfoBarDelegate(infobar_service, utf16_name, identifier), |
| 116 content_settings_(content_settings) { |
| 117 } |
| 118 |
| 104 UnauthorizedPluginInfoBarDelegate::~UnauthorizedPluginInfoBarDelegate() { | 119 UnauthorizedPluginInfoBarDelegate::~UnauthorizedPluginInfoBarDelegate() { |
| 105 content::RecordAction(UserMetricsAction("BlockedPluginInfobar.Closed")); | 120 content::RecordAction(UserMetricsAction("BlockedPluginInfobar.Closed")); |
| 106 } | 121 } |
| 107 | 122 |
| 108 std::string UnauthorizedPluginInfoBarDelegate::GetLearnMoreURL() const { | 123 std::string UnauthorizedPluginInfoBarDelegate::GetLearnMoreURL() const { |
| 109 return chrome::kBlockedPluginLearnMoreURL; | 124 return chrome::kBlockedPluginLearnMoreURL; |
| 110 } | 125 } |
| 111 | 126 |
| 112 string16 UnauthorizedPluginInfoBarDelegate::GetMessageText() const { | 127 string16 UnauthorizedPluginInfoBarDelegate::GetMessageText() const { |
| 113 return l10n_util::GetStringFUTF16(IDS_PLUGIN_NOT_AUTHORIZED, name_); | 128 return l10n_util::GetStringFUTF16(IDS_PLUGIN_NOT_AUTHORIZED, name_); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 146 bool UnauthorizedPluginInfoBarDelegate::LinkClicked( | 161 bool UnauthorizedPluginInfoBarDelegate::LinkClicked( |
| 147 WindowOpenDisposition disposition) { | 162 WindowOpenDisposition disposition) { |
| 148 content::RecordAction( | 163 content::RecordAction( |
| 149 UserMetricsAction("BlockedPluginInfobar.LearnMore")); | 164 UserMetricsAction("BlockedPluginInfobar.LearnMore")); |
| 150 return PluginInfoBarDelegate::LinkClicked(disposition); | 165 return PluginInfoBarDelegate::LinkClicked(disposition); |
| 151 } | 166 } |
| 152 | 167 |
| 153 #if defined(ENABLE_PLUGIN_INSTALLATION) | 168 #if defined(ENABLE_PLUGIN_INSTALLATION) |
| 154 // OutdatedPluginInfoBarDelegate ---------------------------------------------- | 169 // OutdatedPluginInfoBarDelegate ---------------------------------------------- |
| 155 | 170 |
| 156 InfoBarDelegate* OutdatedPluginInfoBarDelegate::Create( | 171 void OutdatedPluginInfoBarDelegate::Create( |
| 157 content::WebContents* web_contents, | 172 InfoBarService* infobar_service, |
| 158 PluginInstaller* installer, | 173 PluginInstaller* installer, |
| 159 scoped_ptr<PluginMetadata> plugin_metadata) { | 174 scoped_ptr<PluginMetadata> plugin_metadata) { |
| 160 string16 message; | 175 string16 message; |
| 161 switch (installer->state()) { | 176 switch (installer->state()) { |
| 162 case PluginInstaller::INSTALLER_STATE_IDLE: | 177 case PluginInstaller::INSTALLER_STATE_IDLE: |
| 163 message = l10n_util::GetStringFUTF16(IDS_PLUGIN_OUTDATED_PROMPT, | 178 message = l10n_util::GetStringFUTF16(IDS_PLUGIN_OUTDATED_PROMPT, |
| 164 plugin_metadata->name()); | 179 plugin_metadata->name()); |
| 165 break; | 180 break; |
| 166 case PluginInstaller::INSTALLER_STATE_DOWNLOADING: | 181 case PluginInstaller::INSTALLER_STATE_DOWNLOADING: |
| 167 message = l10n_util::GetStringFUTF16(IDS_PLUGIN_DOWNLOADING, | 182 message = l10n_util::GetStringFUTF16(IDS_PLUGIN_DOWNLOADING, |
| 168 plugin_metadata->name()); | 183 plugin_metadata->name()); |
| 169 break; | 184 break; |
| 170 } | 185 } |
| 171 return new OutdatedPluginInfoBarDelegate( | 186 infobar_service->AddInfoBar(scoped_ptr<InfoBarDelegate>( |
| 172 web_contents, installer, plugin_metadata.Pass(), message); | 187 new OutdatedPluginInfoBarDelegate( |
| 188 infobar_service, installer, plugin_metadata.Pass(), message))); |
| 173 } | 189 } |
| 174 | 190 |
| 175 OutdatedPluginInfoBarDelegate::OutdatedPluginInfoBarDelegate( | 191 OutdatedPluginInfoBarDelegate::OutdatedPluginInfoBarDelegate( |
| 176 content::WebContents* web_contents, | 192 InfoBarService* infobar_service, |
| 177 PluginInstaller* installer, | 193 PluginInstaller* installer, |
| 178 scoped_ptr<PluginMetadata> plugin_metadata, | 194 scoped_ptr<PluginMetadata> plugin_metadata, |
| 179 const string16& message) | 195 const string16& message) |
| 180 : PluginInfoBarDelegate( | 196 : PluginInfoBarDelegate( |
| 181 InfoBarService::FromWebContents(web_contents), | 197 infobar_service, |
| 182 plugin_metadata->name(), | 198 plugin_metadata->name(), |
| 183 plugin_metadata->identifier()), | 199 plugin_metadata->identifier()), |
| 184 WeakPluginInstallerObserver(installer), | 200 WeakPluginInstallerObserver(installer), |
| 185 plugin_metadata_(plugin_metadata.Pass()), | 201 plugin_metadata_(plugin_metadata.Pass()), |
| 186 message_(message) { | 202 message_(message) { |
| 187 content::RecordAction(UserMetricsAction("OutdatedPluginInfobar.Shown")); | 203 content::RecordAction(UserMetricsAction("OutdatedPluginInfobar.Shown")); |
| 188 std::string name = UTF16ToUTF8(plugin_metadata_->name()); | 204 std::string name = UTF16ToUTF8(plugin_metadata_->name()); |
| 189 if (name == PluginMetadata::kJavaGroupName) | 205 if (name == PluginMetadata::kJavaGroupName) |
| 190 content::RecordAction( | 206 content::RecordAction( |
| 191 UserMetricsAction("OutdatedPluginInfobar.Shown.Java")); | 207 UserMetricsAction("OutdatedPluginInfobar.Shown.Java")); |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 292 | 308 |
| 293 void OutdatedPluginInfoBarDelegate::ReplaceWithInfoBar( | 309 void OutdatedPluginInfoBarDelegate::ReplaceWithInfoBar( |
| 294 const string16& message) { | 310 const string16& message) { |
| 295 // Return early if the message doesn't change. This is important in case the | 311 // Return early if the message doesn't change. This is important in case the |
| 296 // PluginInstaller is still iterating over its observers (otherwise we would | 312 // PluginInstaller is still iterating over its observers (otherwise we would |
| 297 // keep replacing infobar delegates infinitely). | 313 // keep replacing infobar delegates infinitely). |
| 298 if (message_ == message) | 314 if (message_ == message) |
| 299 return; | 315 return; |
| 300 if (!owner()) | 316 if (!owner()) |
| 301 return; | 317 return; |
| 302 InfoBarDelegate* delegate = new PluginInstallerInfoBarDelegate( | 318 PluginInstallerInfoBarDelegate::Replace( |
| 303 owner(), installer(), plugin_metadata_->Clone(), | 319 this, installer(), plugin_metadata_->Clone(), false, message); |
| 304 PluginInstallerInfoBarDelegate::InstallCallback(), false, message); | |
| 305 owner()->ReplaceInfoBar(this, delegate); | |
| 306 } | 320 } |
| 307 | 321 |
| 308 // PluginInstallerInfoBarDelegate --------------------------------------------- | 322 // PluginInstallerInfoBarDelegate --------------------------------------------- |
| 309 | 323 |
| 324 void PluginInstallerInfoBarDelegate::Create( |
| 325 InfoBarService* infobar_service, |
| 326 PluginInstaller* installer, |
| 327 scoped_ptr<PluginMetadata> plugin_metadata, |
| 328 const InstallCallback& callback) { |
| 329 string16 name(plugin_metadata->name()); |
| 330 #if defined(OS_WIN) |
| 331 if (base::win::IsMetroProcess()) { |
| 332 PluginMetroModeInfoBarDelegate::Create( |
| 333 infobar_service, PluginMetroModeInfoBarDelegate::MISSING_PLUGIN, name); |
| 334 return; |
| 335 } |
| 336 #endif |
| 337 string16 message; |
| 338 switch (installer->state()) { |
| 339 case PluginInstaller::INSTALLER_STATE_IDLE: |
| 340 message = l10n_util::GetStringFUTF16( |
| 341 IDS_PLUGININSTALLER_INSTALLPLUGIN_PROMPT, name); |
| 342 break; |
| 343 case PluginInstaller::INSTALLER_STATE_DOWNLOADING: |
| 344 message = l10n_util::GetStringFUTF16(IDS_PLUGIN_DOWNLOADING, name); |
| 345 break; |
| 346 } |
| 347 infobar_service->AddInfoBar(scoped_ptr<InfoBarDelegate>( |
| 348 new PluginInstallerInfoBarDelegate( |
| 349 infobar_service, installer, plugin_metadata.Pass(), callback, true, |
| 350 message))); |
| 351 } |
| 352 |
| 353 void PluginInstallerInfoBarDelegate::Replace( |
| 354 InfoBarDelegate* infobar, |
| 355 PluginInstaller* installer, |
| 356 scoped_ptr<PluginMetadata> plugin_metadata, |
| 357 bool new_install, |
| 358 const string16& message) { |
| 359 DCHECK(infobar->owner()); |
| 360 infobar->owner()->ReplaceInfoBar(infobar, scoped_ptr<InfoBarDelegate>( |
| 361 new PluginInstallerInfoBarDelegate( |
| 362 infobar->owner(), installer, plugin_metadata.Pass(), |
| 363 PluginInstallerInfoBarDelegate::InstallCallback(), new_install, |
| 364 message))); |
| 365 } |
| 366 |
| 310 PluginInstallerInfoBarDelegate::PluginInstallerInfoBarDelegate( | 367 PluginInstallerInfoBarDelegate::PluginInstallerInfoBarDelegate( |
| 311 InfoBarService* infobar_service, | 368 InfoBarService* infobar_service, |
| 312 PluginInstaller* installer, | 369 PluginInstaller* installer, |
| 313 scoped_ptr<PluginMetadata> plugin_metadata, | 370 scoped_ptr<PluginMetadata> plugin_metadata, |
| 314 const InstallCallback& callback, | 371 const InstallCallback& callback, |
| 315 bool new_install, | 372 bool new_install, |
| 316 const string16& message) | 373 const string16& message) |
| 317 : ConfirmInfoBarDelegate(infobar_service), | 374 : ConfirmInfoBarDelegate(infobar_service), |
| 318 WeakPluginInstallerObserver(installer), | 375 WeakPluginInstallerObserver(installer), |
| 319 plugin_metadata_(plugin_metadata.Pass()), | 376 plugin_metadata_(plugin_metadata.Pass()), |
| 320 callback_(callback), | 377 callback_(callback), |
| 321 new_install_(new_install), | 378 new_install_(new_install), |
| 322 message_(message) { | 379 message_(message) { |
| 323 } | 380 } |
| 324 | 381 |
| 325 PluginInstallerInfoBarDelegate::~PluginInstallerInfoBarDelegate() { | 382 PluginInstallerInfoBarDelegate::~PluginInstallerInfoBarDelegate() { |
| 326 } | 383 } |
| 327 | 384 |
| 328 InfoBarDelegate* PluginInstallerInfoBarDelegate::Create( | |
| 329 InfoBarService* infobar_service, | |
| 330 PluginInstaller* installer, | |
| 331 scoped_ptr<PluginMetadata> plugin_metadata, | |
| 332 const InstallCallback& callback) { | |
| 333 string16 message; | |
| 334 switch (installer->state()) { | |
| 335 case PluginInstaller::INSTALLER_STATE_IDLE: | |
| 336 message = l10n_util::GetStringFUTF16( | |
| 337 IDS_PLUGININSTALLER_INSTALLPLUGIN_PROMPT, plugin_metadata->name()); | |
| 338 break; | |
| 339 case PluginInstaller::INSTALLER_STATE_DOWNLOADING: | |
| 340 message = l10n_util::GetStringFUTF16(IDS_PLUGIN_DOWNLOADING, | |
| 341 plugin_metadata->name()); | |
| 342 break; | |
| 343 } | |
| 344 return new PluginInstallerInfoBarDelegate( | |
| 345 infobar_service, installer, plugin_metadata.Pass(), | |
| 346 callback, true, message); | |
| 347 } | |
| 348 | |
| 349 gfx::Image* PluginInstallerInfoBarDelegate::GetIcon() const { | 385 gfx::Image* PluginInstallerInfoBarDelegate::GetIcon() const { |
| 350 return &ResourceBundle::GetSharedInstance().GetNativeImageNamed( | 386 return &ResourceBundle::GetSharedInstance().GetNativeImageNamed( |
| 351 IDR_INFOBAR_PLUGIN_INSTALL); | 387 IDR_INFOBAR_PLUGIN_INSTALL); |
| 352 } | 388 } |
| 353 | 389 |
| 354 string16 PluginInstallerInfoBarDelegate::GetMessageText() const { | 390 string16 PluginInstallerInfoBarDelegate::GetMessageText() const { |
| 355 return message_; | 391 return message_; |
| 356 } | 392 } |
| 357 | 393 |
| 358 int PluginInstallerInfoBarDelegate::GetButtons() const { | 394 int PluginInstallerInfoBarDelegate::GetButtons() const { |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 421 | 457 |
| 422 void PluginInstallerInfoBarDelegate::ReplaceWithInfoBar( | 458 void PluginInstallerInfoBarDelegate::ReplaceWithInfoBar( |
| 423 const string16& message) { | 459 const string16& message) { |
| 424 // Return early if the message doesn't change. This is important in case the | 460 // Return early if the message doesn't change. This is important in case the |
| 425 // PluginInstaller is still iterating over its observers (otherwise we would | 461 // PluginInstaller is still iterating over its observers (otherwise we would |
| 426 // keep replacing infobar delegates infinitely). | 462 // keep replacing infobar delegates infinitely). |
| 427 if (message_ == message) | 463 if (message_ == message) |
| 428 return; | 464 return; |
| 429 if (!owner()) | 465 if (!owner()) |
| 430 return; | 466 return; |
| 431 InfoBarDelegate* delegate = new PluginInstallerInfoBarDelegate( | 467 Replace(this, installer(), plugin_metadata_->Clone(), new_install_, message); |
| 432 owner(), installer(), plugin_metadata_->Clone(), | |
| 433 InstallCallback(), new_install_, message); | |
| 434 owner()->ReplaceInfoBar(this, delegate); | |
| 435 } | 468 } |
| 436 | 469 |
| 437 // PluginMetroModeInfoBarDelegate --------------------------------------------- | 470 // PluginMetroModeInfoBarDelegate --------------------------------------------- |
| 438 #if defined(OS_WIN) | 471 #if defined(OS_WIN) |
| 472 // static |
| 473 void PluginMetroModeInfoBarDelegate::Create( |
| 474 InfoBarService* infobar_service, |
| 475 PluginMetroModeInfoBarDelegate::Mode mode, |
| 476 const string16& name) { |
| 477 infobar_service->AddInfoBar(scoped_ptr<InfoBarDelegate>( |
| 478 new PluginMetroModeInfoBarDelegate(infobar_service, mode, name))); |
| 479 } |
| 480 |
| 439 PluginMetroModeInfoBarDelegate::PluginMetroModeInfoBarDelegate( | 481 PluginMetroModeInfoBarDelegate::PluginMetroModeInfoBarDelegate( |
| 440 InfoBarService* infobar_service, | 482 InfoBarService* infobar_service, |
| 441 PluginMetroModeInfoBarDelegate::Mode mode, | 483 PluginMetroModeInfoBarDelegate::Mode mode, |
| 442 const string16& name) | 484 const string16& name) |
| 443 : ConfirmInfoBarDelegate(infobar_service), | 485 : ConfirmInfoBarDelegate(infobar_service), |
| 444 mode_(mode), | 486 mode_(mode), |
| 445 name_(name) { | 487 name_(name) { |
| 446 } | 488 } |
| 447 | 489 |
| 448 PluginMetroModeInfoBarDelegate::~PluginMetroModeInfoBarDelegate() { | 490 PluginMetroModeInfoBarDelegate::~PluginMetroModeInfoBarDelegate() { |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 503 "https://support.google.com/chrome/?ib_display_in_desktop" : | 545 "https://support.google.com/chrome/?ib_display_in_desktop" : |
| 504 "https://support.google.com/chrome/?ib_redirect_to_desktop"), | 546 "https://support.google.com/chrome/?ib_redirect_to_desktop"), |
| 505 Referrer(), | 547 Referrer(), |
| 506 (disposition == CURRENT_TAB) ? NEW_FOREGROUND_TAB : disposition, | 548 (disposition == CURRENT_TAB) ? NEW_FOREGROUND_TAB : disposition, |
| 507 content::PAGE_TRANSITION_LINK, false); | 549 content::PAGE_TRANSITION_LINK, false); |
| 508 owner()->GetWebContents()->OpenURL(params); | 550 owner()->GetWebContents()->OpenURL(params); |
| 509 return false; | 551 return false; |
| 510 } | 552 } |
| 511 #endif // defined(OS_WIN) | 553 #endif // defined(OS_WIN) |
| 512 #endif // defined(ENABLE_PLUGIN_INSTALLATION) | 554 #endif // defined(ENABLE_PLUGIN_INSTALLATION) |
| OLD | NEW |