Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(567)

Side by Side Diff: chrome/browser/plugins/plugin_observer.cc

Issue 1025303007: Remove PluginInstallerInfoBarDelegate (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/browser/plugins/plugin_observer.h ('k') | chrome/common/render_messages.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/debug/crash_logging.h" 9 #include "base/debug/crash_logging.h"
10 #include "base/metrics/histogram.h" 10 #include "base/metrics/histogram.h"
(...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after
331 } 331 }
332 332
333 bool PluginObserver::OnMessageReceived( 333 bool PluginObserver::OnMessageReceived(
334 const IPC::Message& message, 334 const IPC::Message& message,
335 content::RenderFrameHost* render_frame_host) { 335 content::RenderFrameHost* render_frame_host) {
336 IPC_BEGIN_MESSAGE_MAP(PluginObserver, message) 336 IPC_BEGIN_MESSAGE_MAP(PluginObserver, message)
337 IPC_MESSAGE_HANDLER(ChromeViewHostMsg_BlockedOutdatedPlugin, 337 IPC_MESSAGE_HANDLER(ChromeViewHostMsg_BlockedOutdatedPlugin,
338 OnBlockedOutdatedPlugin) 338 OnBlockedOutdatedPlugin)
339 IPC_MESSAGE_HANDLER(ChromeViewHostMsg_NPAPINotSupported, 339 IPC_MESSAGE_HANDLER(ChromeViewHostMsg_NPAPINotSupported,
340 OnNPAPINotSupported) 340 OnNPAPINotSupported)
341 #if defined(ENABLE_PLUGIN_INSTALLATION)
342 IPC_MESSAGE_HANDLER(ChromeViewHostMsg_FindMissingPlugin,
343 OnFindMissingPlugin)
344 #endif
345 341
346 IPC_MESSAGE_UNHANDLED(return false) 342 IPC_MESSAGE_UNHANDLED(return false)
347 IPC_END_MESSAGE_MAP() 343 IPC_END_MESSAGE_MAP()
348 344
349 return true; 345 return true;
350 } 346 }
351 347
352 bool PluginObserver::OnMessageReceived(const IPC::Message& message) { 348 bool PluginObserver::OnMessageReceived(const IPC::Message& message) {
353 IPC_BEGIN_MESSAGE_MAP(PluginObserver, message) 349 IPC_BEGIN_MESSAGE_MAP(PluginObserver, message)
354 #if defined(ENABLE_PLUGIN_INSTALLATION) 350 #if defined(ENABLE_PLUGIN_INSTALLATION)
(...skipping 27 matching lines...) Expand all
382 NOTREACHED(); 378 NOTREACHED();
383 } 379 }
384 #else 380 #else
385 // If we don't support third-party plugin installation, we shouldn't have 381 // If we don't support third-party plugin installation, we shouldn't have
386 // outdated plugins. 382 // outdated plugins.
387 NOTREACHED(); 383 NOTREACHED();
388 #endif // defined(ENABLE_PLUGIN_INSTALLATION) 384 #endif // defined(ENABLE_PLUGIN_INSTALLATION)
389 } 385 }
390 386
391 #if defined(ENABLE_PLUGIN_INSTALLATION) 387 #if defined(ENABLE_PLUGIN_INSTALLATION)
392 void PluginObserver::OnFindMissingPlugin(int placeholder_id,
393 const std::string& mime_type) {
394 std::string lang = "en-US"; // Oh yes.
395 scoped_ptr<PluginMetadata> plugin_metadata;
396 PluginInstaller* installer = NULL;
397 bool found_plugin = PluginFinder::GetInstance()->FindPlugin(
398 mime_type, lang, &installer, &plugin_metadata);
399 if (!found_plugin) {
400 Send(new ChromeViewMsg_DidNotFindMissingPlugin(placeholder_id));
401 return;
402 }
403 DCHECK(installer);
404 DCHECK(plugin_metadata.get());
405
406 plugin_placeholders_[placeholder_id] =
407 new PluginPlaceholderHost(this, placeholder_id, plugin_metadata->name(),
408 installer);
409 PluginInstallerInfoBarDelegate::Create(
410 InfoBarService::FromWebContents(web_contents()), installer,
411 plugin_metadata.Pass(),
412 base::Bind(&PluginObserver::InstallMissingPlugin,
413 weak_ptr_factory_.GetWeakPtr(), installer));
414 }
415
416 void PluginObserver::InstallMissingPlugin(
417 PluginInstaller* installer,
418 const PluginMetadata* plugin_metadata) {
419 if (plugin_metadata->url_for_display()) {
420 installer->OpenDownloadURL(plugin_metadata->plugin_url(), web_contents());
421 } else {
422 TabModalConfirmDialog::Create(
423 new ConfirmInstallDialogDelegate(
424 web_contents(), installer, plugin_metadata->Clone()),
425 web_contents());
426 }
427 }
428
429 void PluginObserver::OnRemovePluginPlaceholderHost(int placeholder_id) { 388 void PluginObserver::OnRemovePluginPlaceholderHost(int placeholder_id) {
430 std::map<int, PluginPlaceholderHost*>::iterator it = 389 std::map<int, PluginPlaceholderHost*>::iterator it =
431 plugin_placeholders_.find(placeholder_id); 390 plugin_placeholders_.find(placeholder_id);
432 if (it == plugin_placeholders_.end()) { 391 if (it == plugin_placeholders_.end()) {
433 NOTREACHED(); 392 NOTREACHED();
434 return; 393 return;
435 } 394 }
436 delete it->second; 395 delete it->second;
437 plugin_placeholders_.erase(it); 396 plugin_placeholders_.erase(it);
438 } 397 }
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
483 scoped_ptr<PluginMetadata> plugin; 442 scoped_ptr<PluginMetadata> plugin;
484 bool ret = PluginFinder::GetInstance()->FindPluginWithIdentifier( 443 bool ret = PluginFinder::GetInstance()->FindPluginWithIdentifier(
485 identifier, NULL, &plugin); 444 identifier, NULL, &plugin);
486 DCHECK(ret); 445 DCHECK(ret);
487 446
488 PluginMetroModeInfoBarDelegate::Create( 447 PluginMetroModeInfoBarDelegate::Create(
489 InfoBarService::FromWebContents(web_contents()), 448 InfoBarService::FromWebContents(web_contents()),
490 PluginMetroModeInfoBarDelegate::DESKTOP_MODE_REQUIRED, plugin->name()); 449 PluginMetroModeInfoBarDelegate::DESKTOP_MODE_REQUIRED, plugin->name());
491 #endif 450 #endif
492 } 451 }
OLDNEW
« no previous file with comments | « chrome/browser/plugins/plugin_observer.h ('k') | chrome/common/render_messages.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698