| Index: chrome/browser/intents/register_intent_handler_infobar_delegate.cc
|
| diff --git a/chrome/browser/intents/register_intent_handler_infobar_delegate.cc b/chrome/browser/intents/register_intent_handler_infobar_delegate.cc
|
| index 4c711e4c95e4a25b67708cf772a0bb007062dca7..ec8b4baed4eb1577063a0b50350123330a2d1545 100644
|
| --- a/chrome/browser/intents/register_intent_handler_infobar_delegate.cc
|
| +++ b/chrome/browser/intents/register_intent_handler_infobar_delegate.cc
|
| @@ -4,8 +4,11 @@
|
|
|
| #include "chrome/browser/intents/register_intent_handler_infobar_delegate.h"
|
|
|
| +#include "base/bind.h"
|
| +#include "base/bind_helpers.h"
|
| #include "base/logging.h"
|
| #include "base/utf_string_conversions.h"
|
| +#include "chrome/browser/infobars/infobar_tab_helper.h"
|
| #include "chrome/browser/intents/web_intents_registry.h"
|
| #include "chrome/browser/intents/web_intents_registry_factory.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| @@ -60,3 +63,32 @@ bool RegisterIntentHandlerInfoBarDelegate::LinkClicked(
|
| // TODO(jhawkins): Add associated bug for the article here.
|
| return false;
|
| }
|
| +
|
| +namespace {
|
| +
|
| +// Helper continuation for MaybeShowIntentInfoBar.
|
| +void CheckProvider(InfoBarTabHelper* infobar_helper,
|
| + WebIntentsRegistry* registry,
|
| + const WebIntentServiceData& service,
|
| + bool provider_exists) {
|
| + if (!provider_exists) {
|
| + infobar_helper->AddInfoBar(new RegisterIntentHandlerInfoBarDelegate(
|
| + infobar_helper, registry, service));
|
| + }
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| +// static
|
| +void RegisterIntentHandlerInfoBarDelegate::MaybeShowIntentInfoBar(
|
| + InfoBarTabHelper* infobar_helper,
|
| + WebIntentsRegistry* registry,
|
| + const WebIntentServiceData& service) {
|
| + DCHECK(infobar_helper);
|
| + DCHECK(registry);
|
| + registry->IntentProviderExists(service,
|
| + base::Bind(&CheckProvider,
|
| + base::Unretained(infobar_helper),
|
| + base::Unretained(registry),
|
| + service));
|
| +}
|
|
|