| 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_observer.h" | 5 #include "chrome/browser/plugins/plugin_observer.h" |
| 6 | 6 |
| 7 #include "base/auto_reset.h" | 7 #include "base/auto_reset.h" |
| 8 #include "base/bind.h" | 8 #include "base/bind.h" |
| 9 #include "base/stl_util.h" | 9 #include "base/stl_util.h" |
| 10 #include "base/utf_string_conversions.h" | 10 #include "base/utf_string_conversions.h" |
| (...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 222 infobar_helper->AddInfoBar( | 222 infobar_helper->AddInfoBar( |
| 223 new UnauthorizedPluginInfoBarDelegate( | 223 new UnauthorizedPluginInfoBarDelegate( |
| 224 infobar_helper, | 224 infobar_helper, |
| 225 tab_contents_->profile()->GetHostContentSettingsMap(), | 225 tab_contents_->profile()->GetHostContentSettingsMap(), |
| 226 name, identifier)); | 226 name, identifier)); |
| 227 } | 227 } |
| 228 | 228 |
| 229 void PluginObserver::OnBlockedOutdatedPlugin(int placeholder_id, | 229 void PluginObserver::OnBlockedOutdatedPlugin(int placeholder_id, |
| 230 const std::string& identifier) { | 230 const std::string& identifier) { |
| 231 #if defined(ENABLE_PLUGIN_INSTALLATION) | 231 #if defined(ENABLE_PLUGIN_INSTALLATION) |
| 232 PluginFinder::Get(base::Bind(&PluginObserver::FindPluginToUpdate, | 232 // Find plugin to update. |
| 233 weak_ptr_factory_.GetWeakPtr(), | |
| 234 placeholder_id, identifier)); | |
| 235 #else | |
| 236 // If we don't support third-party plug-in installation, we shouldn't have | |
| 237 // outdated plug-ins. | |
| 238 NOTREACHED(); | |
| 239 #endif // defined(ENABLE_PLUGIN_INSTALLATION) | |
| 240 } | |
| 241 | |
| 242 #if defined(ENABLE_PLUGIN_INSTALLATION) | |
| 243 void PluginObserver::FindPluginToUpdate(int placeholder_id, | |
| 244 const std::string& identifier, | |
| 245 PluginFinder* plugin_finder) { | |
| 246 PluginInstaller* installer = | 233 PluginInstaller* installer = |
| 247 plugin_finder->FindPluginWithIdentifier(identifier); | 234 PluginFinder::GetInstance()->FindPluginWithIdentifier(identifier); |
| 248 DCHECK(installer) << "Couldn't find PluginInstaller for identifier " | 235 DCHECK(installer) << "Couldn't find PluginInstaller for identifier " |
| 249 << identifier; | 236 << identifier; |
| 250 plugin_placeholders_[placeholder_id] = | 237 plugin_placeholders_[placeholder_id] = |
| 251 new PluginPlaceholderHost(this, placeholder_id, installer); | 238 new PluginPlaceholderHost(this, placeholder_id, installer); |
| 252 InfoBarTabHelper* infobar_helper = tab_contents_->infobar_tab_helper(); | 239 InfoBarTabHelper* infobar_helper = tab_contents_->infobar_tab_helper(); |
| 253 infobar_helper->AddInfoBar( | 240 infobar_helper->AddInfoBar( |
| 254 OutdatedPluginInfoBarDelegate::Create(this, installer)); | 241 OutdatedPluginInfoBarDelegate::Create(this, installer)); |
| 242 #else |
| 243 // If we don't support third-party plug-in installation, we shouldn't have |
| 244 // outdated plug-ins. |
| 245 NOTREACHED(); |
| 246 #endif // defined(ENABLE_PLUGIN_INSTALLATION) |
| 255 } | 247 } |
| 256 | 248 |
| 249 #if defined(ENABLE_PLUGIN_INSTALLATION) |
| 257 void PluginObserver::OnFindMissingPlugin(int placeholder_id, | 250 void PluginObserver::OnFindMissingPlugin(int placeholder_id, |
| 258 const std::string& mime_type) { | 251 const std::string& mime_type) { |
| 259 PluginFinder::Get(base::Bind(&PluginObserver::FindMissingPlugin, | |
| 260 weak_ptr_factory_.GetWeakPtr(), | |
| 261 placeholder_id, mime_type)); | |
| 262 } | |
| 263 | |
| 264 void PluginObserver::FindMissingPlugin(int placeholder_id, | |
| 265 const std::string& mime_type, | |
| 266 PluginFinder* plugin_finder) { | |
| 267 std::string lang = "en-US"; // Oh yes. | 252 std::string lang = "en-US"; // Oh yes. |
| 268 PluginInstaller* installer = plugin_finder->FindPlugin(mime_type, lang); | 253 PluginInstaller* installer = |
| 254 PluginFinder::GetInstance()->FindPlugin(mime_type, lang); |
| 269 if (!installer) { | 255 if (!installer) { |
| 270 Send(new ChromeViewMsg_DidNotFindMissingPlugin(placeholder_id)); | 256 Send(new ChromeViewMsg_DidNotFindMissingPlugin(placeholder_id)); |
| 271 return; | 257 return; |
| 272 } | 258 } |
| 273 | 259 |
| 274 plugin_placeholders_[placeholder_id] = | 260 plugin_placeholders_[placeholder_id] = |
| 275 new PluginPlaceholderHost(this, placeholder_id, installer); | 261 new PluginPlaceholderHost(this, placeholder_id, installer); |
| 276 InfoBarTabHelper* infobar_helper = tab_contents_->infobar_tab_helper(); | 262 InfoBarTabHelper* infobar_helper = tab_contents_->infobar_tab_helper(); |
| 277 InfoBarDelegate* delegate; | 263 InfoBarDelegate* delegate; |
| 278 #if !defined(OS_WIN) | 264 #if !defined(OS_WIN) |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 329 InfoBarTabHelper* infobar_helper = tab_contents_->infobar_tab_helper(); | 315 InfoBarTabHelper* infobar_helper = tab_contents_->infobar_tab_helper(); |
| 330 infobar_helper->AddInfoBar(new SimpleAlertInfoBarDelegate( | 316 infobar_helper->AddInfoBar(new SimpleAlertInfoBarDelegate( |
| 331 infobar_helper, | 317 infobar_helper, |
| 332 &ResourceBundle::GetSharedInstance().GetNativeImageNamed( | 318 &ResourceBundle::GetSharedInstance().GetNativeImageNamed( |
| 333 IDR_INFOBAR_PLUGIN_CRASHED), | 319 IDR_INFOBAR_PLUGIN_CRASHED), |
| 334 l10n_util::GetStringFUTF16(IDS_PLUGIN_INITIALIZATION_ERROR_PROMPT, | 320 l10n_util::GetStringFUTF16(IDS_PLUGIN_INITIALIZATION_ERROR_PROMPT, |
| 335 plugin_name), | 321 plugin_name), |
| 336 true /* auto_expire */)); | 322 true /* auto_expire */)); |
| 337 } | 323 } |
| 338 | 324 |
| OLD | NEW |