#include "chrome/browser/extensions/api/messaging/incognito_connectability.h"
#include <string>
#include "base/check_op.h"
#include "base/containers/contains.h"
#include "base/functional/bind.h"
#include "base/lazy_instance.h"
#include "base/not_fatal_until.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/extensions/api/messaging/incognito_connectability_infobar_delegate.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/grit/generated_resources.h"
#include "components/infobars/content/content_infobar_manager.h"
#include "components/infobars/core/infobar.h"
#include "content/public/browser/web_contents.h"
#include "extensions/common/extension.h"
#include "extensions/common/extension_id.h"
#include "ui/base/l10n/l10n_util.h"
namespace extensions {
namespace {
IncognitoConnectability::ScopedAlertTracker::Mode g_alert_mode = …;
int g_alert_count = …;
}
IncognitoConnectability::ScopedAlertTracker::ScopedAlertTracker(Mode mode)
: … { … }
IncognitoConnectability::ScopedAlertTracker::~ScopedAlertTracker() { … }
int IncognitoConnectability::ScopedAlertTracker::GetAndResetAlertCount() { … }
IncognitoConnectability::IncognitoConnectability(
content::BrowserContext* context) { … }
IncognitoConnectability::~IncognitoConnectability() { … }
IncognitoConnectability* IncognitoConnectability::Get(
content::BrowserContext* context) { … }
void IncognitoConnectability::Query(const Extension* extension,
content::WebContents* web_contents,
const GURL& url,
base::OnceCallback<void(bool)> callback) { … }
IncognitoConnectability::TabContext::TabContext() : … { … }
IncognitoConnectability::TabContext::~TabContext() = default;
void IncognitoConnectability::OnInteractiveResponse(
const ExtensionId& extension_id,
const GURL& origin,
infobars::ContentInfoBarManager* infobar_manager,
ScopedAlertTracker::Mode response) { … }
bool IncognitoConnectability::IsInMap(const Extension* extension,
const GURL& origin,
const ExtensionToOriginsMap& map) { … }
static base::LazyInstance<
BrowserContextKeyedAPIFactory<IncognitoConnectability>>::DestructorAtExit
g_incognito_connectability_factory = …;
BrowserContextKeyedAPIFactory<IncognitoConnectability>*
IncognitoConnectability::GetFactoryInstance() { … }
void IncognitoConnectability::EnsureFactoryBuilt() { … }
}