#include "chrome/browser/web_applications/os_integration/protocol_handling_sub_manager.h"
#include <memory>
#include <string>
#include <utility>
#include <vector>
#include "base/containers/contains.h"
#include "base/files/file_path.h"
#include "base/functional/callback_forward.h"
#include "base/functional/callback_helpers.h"
#include "base/metrics/histogram_functions.h"
#include "chrome/browser/web_applications/os_integration/os_integration_sub_manager.h"
#include "chrome/browser/web_applications/os_integration/os_integration_test_override.h"
#include "chrome/browser/web_applications/os_integration/web_app_protocol_handler_registration.h"
#include "chrome/browser/web_applications/proto/web_app_install_state.pb.h"
#include "chrome/browser/web_applications/proto/web_app_os_integration_state.pb.h"
#include "chrome/browser/web_applications/web_app.h"
#include "chrome/browser/web_applications/web_app_constants.h"
#include "chrome/browser/web_applications/web_app_provider.h"
#include "chrome/browser/web_applications/web_app_registrar.h"
#include "components/services/app_service/public/cpp/protocol_handler_info.h"
#include "url/gurl.h"
namespace web_app {
namespace {
std::vector<apps::ProtocolHandlerInfo> GetApprovedProtocolHandlers(
const proto::WebAppOsIntegrationState& state) { … }
void RecordProtocolHandlingResult(const std::string histogram_name,
Result result) { … }
}
ProtocolHandlingSubManager::ProtocolHandlingSubManager(
const base::FilePath& profile_path,
WebAppProvider& provider)
: … { … }
ProtocolHandlingSubManager::~ProtocolHandlingSubManager() = default;
void ProtocolHandlingSubManager::Configure(
const webapps::AppId& app_id,
proto::WebAppOsIntegrationState& desired_state,
base::OnceClosure configure_done) { … }
void ProtocolHandlingSubManager::Execute(
const webapps::AppId& app_id,
const std::optional<SynchronizeOsOptions>& synchronize_options,
const proto::WebAppOsIntegrationState& desired_state,
const proto::WebAppOsIntegrationState& current_state,
base::OnceClosure callback) { … }
void ProtocolHandlingSubManager::ForceUnregister(const webapps::AppId& app_id,
base::OnceClosure callback) { … }
}