#include "chrome/browser/extensions/extension_gcm_app_handler.h"
#include <memory>
#include "base/functional/bind.h"
#include "base/lazy_instance.h"
#include "base/location.h"
#include "base/task/single_thread_task_runner.h"
#include "chrome/browser/extensions/api/gcm/gcm_api.h"
#include "chrome/browser/gcm/gcm_profile_service_factory.h"
#include "chrome/browser/gcm/instance_id/instance_id_profile_service_factory.h"
#include "chrome/browser/profiles/profile.h"
#include "components/gcm_driver/gcm_driver.h"
#include "components/gcm_driver/gcm_profile_service.h"
#include "components/gcm_driver/instance_id/instance_id_driver.h"
#include "components/gcm_driver/instance_id/instance_id_profile_service.h"
#include "extensions/browser/extension_system.h"
#include "extensions/browser/unloaded_extension_reason.h"
#include "extensions/common/extension.h"
#include "extensions/common/permissions/permissions_data.h"
namespace extensions {
namespace {
const char kDummyAppId[] = …;
base::LazyInstance<BrowserContextKeyedAPIFactory<ExtensionGCMAppHandler>>::
DestructorAtExit g_extension_gcm_app_handler_factory = …;
bool IsGCMPermissionEnabled(const Extension* extension) { … }
}
BrowserContextKeyedAPIFactory<ExtensionGCMAppHandler>*
ExtensionGCMAppHandler::GetFactoryInstance() { … }
ExtensionGCMAppHandler::ExtensionGCMAppHandler(content::BrowserContext* context)
: … { … }
ExtensionGCMAppHandler::~ExtensionGCMAppHandler() = default;
void ExtensionGCMAppHandler::Shutdown() { … }
void ExtensionGCMAppHandler::ShutdownHandler() { … }
void ExtensionGCMAppHandler::OnStoreReset() { … }
void ExtensionGCMAppHandler::OnMessage(const std::string& app_id,
const gcm::IncomingMessage& message) { … }
void ExtensionGCMAppHandler::OnMessagesDeleted(const std::string& app_id) { … }
void ExtensionGCMAppHandler::OnSendError(
const std::string& app_id,
const gcm::GCMClient::SendErrorDetails& send_error_details) { … }
void ExtensionGCMAppHandler::OnSendAcknowledged(
const std::string& app_id,
const std::string& message_id) { … }
void ExtensionGCMAppHandler::OnExtensionLoaded(
content::BrowserContext* browser_context,
const Extension* extension) { … }
void ExtensionGCMAppHandler::OnExtensionUnloaded(
content::BrowserContext* browser_context,
const Extension* extension,
UnloadedExtensionReason reason) { … }
void ExtensionGCMAppHandler::OnExtensionUninstalled(
content::BrowserContext* browser_context,
const Extension* extension,
UninstallReason reason) { … }
void ExtensionGCMAppHandler::AddDummyAppHandler() { … }
void ExtensionGCMAppHandler::RemoveDummyAppHandler() { … }
gcm::GCMDriver* ExtensionGCMAppHandler::GetGCMDriver() const { … }
instance_id::InstanceIDDriver* ExtensionGCMAppHandler::GetInstanceIDDriver()
const { … }
void ExtensionGCMAppHandler::OnUnregisterCompleted(
const std::string& app_id, gcm::GCMClient::Result result) { … }
void ExtensionGCMAppHandler::OnDeleteIDCompleted(
const std::string& app_id, instance_id::InstanceID::Result result) { … }
void ExtensionGCMAppHandler::RemoveInstanceID(const std::string& app_id) { … }
void ExtensionGCMAppHandler::AddAppHandler(const std::string& app_id) { … }
void ExtensionGCMAppHandler::RemoveAppHandler(const std::string& app_id) { … }
}