Commit 31ef0902 authored by Henrique Ferreiro's avatar Henrique Ferreiro Committed by Commit Bot

Migrate app_management.mojom to the new Mojo types

Convert the implementation and all users of the
app_management::mojom::PageHandlerFactory, PageHandler and Page
interfaces.

Bug: 955171
Change-Id: Ieadae3496ff07e2a595cc07abd1a3e436f8a2a37
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1806734
Commit-Queue: Henrique Ferreiro <hferreiro@igalia.com>
Reviewed-by: default avatarKen Rockot <rockot@google.com>
Reviewed-by: default avatarEmily Stark <estark@chromium.org>
Reviewed-by: default avatarDan Beam <dbeam@chromium.org>
Cr-Commit-Position: refs/heads/master@{#697983}
parent e50a9739
......@@ -35,7 +35,8 @@ struct ExtensionAppPermissionMessage {
};
interface PageHandlerFactory {
CreatePageHandler(Page page, PageHandler& handler);
CreatePageHandler(pending_remote<Page> page,
pending_receiver<PageHandler> handler);
};
// Browser interface.
......
......@@ -14,6 +14,7 @@
#include "chrome/browser/apps/app_service/app_service_proxy_factory.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/webui/app_management/app_management.mojom.h"
#include "chrome/services/app_service/public/cpp/app_registry_cache.h"
#include "chrome/services/app_service/public/mojom/types.mojom.h"
#include "extensions/browser/extension_registry.h"
......@@ -21,6 +22,10 @@
#include "extensions/common/extension.h"
#include "extensions/common/permissions/permission_message.h"
#include "extensions/common/permissions/permissions_data.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/bindings/remote.h"
#if defined(OS_CHROMEOS)
#include "chrome/browser/chromeos/arc/arc_util.h"
......@@ -82,10 +87,10 @@ bool ShouldHideStoragePermission(const std::string app_id) {
} // namespace
AppManagementPageHandler::AppManagementPageHandler(
app_management::mojom::PageHandlerRequest request,
app_management::mojom::PagePtr page,
mojo::PendingReceiver<app_management::mojom::PageHandler> receiver,
mojo::PendingRemote<app_management::mojom::Page> page,
Profile* profile)
: binding_(this, std::move(request)),
: receiver_(this, std::move(receiver)),
page_(std::move(page)),
profile_(profile)
#if defined(OS_CHROMEOS)
......
......@@ -10,7 +10,10 @@
#include "chrome/browser/ui/webui/app_management/app_management.mojom.h"
#include "chrome/browser/ui/webui/app_management/app_management_shelf_delegate_chromeos.h"
#include "chrome/services/app_service/public/cpp/app_registry_cache.h"
#include "mojo/public/cpp/bindings/binding.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/bindings/remote.h"
#if defined(OS_CHROMEOS)
#include "chrome/browser/ui/app_list/arc/arc_app_list_prefs.h"
......@@ -26,9 +29,10 @@ class AppManagementPageHandler : public app_management::mojom::PageHandler,
#endif // OS_CHROMEOS
{
public:
AppManagementPageHandler(app_management::mojom::PageHandlerRequest request,
app_management::mojom::PagePtr page,
Profile* profile);
AppManagementPageHandler(
mojo::PendingReceiver<app_management::mojom::PageHandler> receiver,
mojo::PendingRemote<app_management::mojom::Page> page,
Profile* profile);
~AppManagementPageHandler() override;
#if defined(OS_CHROMEOS)
......@@ -68,9 +72,9 @@ class AppManagementPageHandler : public app_management::mojom::PageHandler,
const arc::mojom::ArcPackageInfo& package_info) override;
#endif // OS_CHROMEOS
mojo::Binding<app_management::mojom::PageHandler> binding_;
mojo::Receiver<app_management::mojom::PageHandler> receiver_;
app_management::mojom::PagePtr page_;
mojo::Remote<app_management::mojom::Page> page_;
Profile* profile_;
......
......@@ -11,6 +11,7 @@
#include "base/feature_list.h"
#include "chrome/browser/apps/app_service/app_icon_source.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/webui/app_management/app_management.mojom.h"
#include "chrome/browser/ui/webui/app_management/app_management_page_handler.h"
#include "chrome/grit/browser_resources.h"
#include "chrome/grit/chromium_strings.h"
......@@ -19,37 +20,29 @@
#include "content/public/browser/url_data_source.h"
#include "content/public/browser/web_ui.h"
#include "content/public/browser/web_ui_data_source.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "ui/base/resource/resource_bundle.h"
AppManagementPageHandlerFactory::AppManagementPageHandlerFactory(
Profile* profile)
: page_factory_binding_(this), profile_(profile) {}
: profile_(profile) {}
AppManagementPageHandlerFactory::~AppManagementPageHandlerFactory() = default;
void AppManagementPageHandlerFactory::Bind(
app_management::mojom::PageHandlerFactoryRequest request) {
if (page_factory_binding_.is_bound()) {
page_factory_binding_.Unbind();
}
mojo::PendingReceiver<app_management::mojom::PageHandlerFactory> receiver) {
page_factory_receiver_.reset();
page_factory_binding_.Bind(std::move(request));
}
void AppManagementPageHandlerFactory::BindPageHandlerFactory(
app_management::mojom::PageHandlerFactoryRequest request) {
if (page_factory_binding_.is_bound()) {
page_factory_binding_.Unbind();
}
page_factory_binding_.Bind(std::move(request));
page_factory_receiver_.Bind(std::move(receiver));
}
void AppManagementPageHandlerFactory::CreatePageHandler(
app_management::mojom::PagePtr page,
app_management::mojom::PageHandlerRequest request) {
mojo::PendingRemote<app_management::mojom::Page> page,
mojo::PendingReceiver<app_management::mojom::PageHandler> receiver) {
DCHECK(page);
page_handler_ = std::make_unique<AppManagementPageHandler>(
std::move(request), std::move(page), profile_);
std::move(receiver), std::move(page), profile_);
}
......@@ -9,7 +9,9 @@
#include "base/macros.h"
#include "chrome/browser/ui/webui/app_management/app_management.mojom.h"
#include "mojo/public/cpp/bindings/binding.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/receiver.h"
class Profile;
......@@ -21,21 +23,20 @@ class AppManagementPageHandlerFactory
explicit AppManagementPageHandlerFactory(Profile* profile);
~AppManagementPageHandlerFactory() override;
void Bind(app_management::mojom::PageHandlerFactoryRequest request);
void Bind(mojo::PendingReceiver<app_management::mojom::PageHandlerFactory>
receiver);
private:
void BindPageHandlerFactory(
app_management::mojom::PageHandlerFactoryRequest request);
// app_management::mojom::PageHandlerFactory:
void CreatePageHandler(
app_management::mojom::PagePtr page,
app_management::mojom::PageHandlerRequest request) override;
mojo::PendingRemote<app_management::mojom::Page> page,
mojo::PendingReceiver<app_management::mojom::PageHandler> receiver)
override;
std::unique_ptr<AppManagementPageHandler> page_handler_;
mojo::Binding<app_management::mojom::PageHandlerFactory>
page_factory_binding_;
mojo::Receiver<app_management::mojom::PageHandlerFactory>
page_factory_receiver_{this};
Profile* profile_;
......
......@@ -50,6 +50,7 @@
#include "components/password_manager/core/common/password_manager_features.h"
#include "components/unified_consent/feature.h"
#include "content/public/browser/web_ui_data_source.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
namespace chromeos {
namespace settings {
......@@ -190,13 +191,13 @@ void OSSettingsUI::BindCrosNetworkConfig(
}
void OSSettingsUI::BindAppManagementPageHandlerFactory(
app_management::mojom::PageHandlerFactoryRequest request) {
mojo::PendingReceiver<app_management::mojom::PageHandlerFactory> receiver) {
if (!app_management_page_handler_factory_) {
app_management_page_handler_factory_ =
std::make_unique<AppManagementPageHandlerFactory>(
Profile::FromWebUI(web_ui()));
}
app_management_page_handler_factory_->Bind(std::move(request));
app_management_page_handler_factory_->Bind(std::move(receiver));
}
} // namespace settings
......
......@@ -12,6 +12,7 @@
#include "chrome/browser/ui/webui/settings/chromeos/app_management/app_management_page_handler_factory.h"
#include "chrome/browser/ui/webui/webui_load_timer.h"
#include "chromeos/services/network_config/public/mojom/cros_network_config.mojom-forward.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "ui/webui/mojo_web_ui_controller.h"
namespace content {
......@@ -33,7 +34,8 @@ class OSSettingsUI : public ui::MojoWebUIController {
void BindCrosNetworkConfig(
network_config::mojom::CrosNetworkConfigRequest request);
void BindAppManagementPageHandlerFactory(
app_management::mojom::PageHandlerFactoryRequest request);
mojo::PendingReceiver<app_management::mojom::PageHandlerFactory>
receiver);
WebuiLoadTimer webui_load_timer_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment