blob: e2cea5aeb6394a3a18c6364d64497d9d5f0935de [file] [log] [blame]
// Copyright 2021 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/ui/web_applications/sub_apps_renderer_host.h"
#include <utility>
#include "base/check.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/web_applications/components/web_app_utils.h"
#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/web_contents.h"
using blink::mojom::SubAppsProviderResult;
namespace web_app {
SubAppsRendererHost::SubAppsRendererHost(
content::RenderFrameHost* render_frame_host,
mojo::PendingReceiver<blink::mojom::SubAppsProvider> receiver)
: DocumentServiceBase(render_frame_host, std::move(receiver)) {}
SubAppsRendererHost::~SubAppsRendererHost() = default;
// static
void SubAppsRendererHost::CreateIfAllowed(
content::RenderFrameHost* render_frame_host,
mojo::PendingReceiver<blink::mojom::SubAppsProvider> receiver) {
// This class is created only on the main frame.
DCHECK(!render_frame_host->GetParent());
// Bail if Web Apps aren't enabled on current profile.
if (!AreWebAppsEnabled(Profile::FromBrowserContext(
content::WebContents::FromRenderFrameHost(render_frame_host)
->GetBrowserContext()))) {
return;
}
// The object is bound to the lifetime of |render_frame_host| and the mojo
// connection. See DocumentServiceBase for details.
new SubAppsRendererHost(render_frame_host, std::move(receiver));
}
void SubAppsRendererHost::Add(AddCallback result_callback) {
// TODO(isandrk, 1171317): Skeleton implementation for now that just returns
// an error.
std::move(result_callback).Run(SubAppsProviderResult::kFailure);
}
} // namespace web_app