summaryrefslogtreecommitdiffstats
path: root/chromium/chrome/browser/ui/webui/settings/chromeos/app_management
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/chrome/browser/ui/webui/settings/chromeos/app_management')
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/app_management/OWNERS4
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/app_management/app_management_page_handler_factory.cc55
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/app_management/app_management_page_handler_factory.h45
3 files changed, 104 insertions, 0 deletions
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/app_management/OWNERS b/chromium/chrome/browser/ui/webui/settings/chromeos/app_management/OWNERS
new file mode 100644
index 00000000000..94b2e07d850
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/app_management/OWNERS
@@ -0,0 +1,4 @@
+dominickn@chromium.org
+jshikaram@chromium.org
+
+# COMPONENT: Platform>Apps>Foundation
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/app_management/app_management_page_handler_factory.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/app_management/app_management_page_handler_factory.cc
new file mode 100644
index 00000000000..8b3abcc9b50
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/app_management/app_management_page_handler_factory.cc
@@ -0,0 +1,55 @@
+// Copyright 2018 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/webui/settings/chromeos/app_management/app_management_page_handler_factory.h"
+
+#include <memory>
+#include <utility>
+
+#include "base/bind.h"
+#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_page_handler.h"
+#include "chrome/grit/browser_resources.h"
+#include "chrome/grit/chromium_strings.h"
+#include "chrome/grit/generated_resources.h"
+#include "components/prefs/pref_service.h"
+#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 "ui/base/resource/resource_bundle.h"
+
+AppManagementPageHandlerFactory::AppManagementPageHandlerFactory(
+ Profile* profile)
+ : page_factory_binding_(this), profile_(profile) {}
+
+AppManagementPageHandlerFactory::~AppManagementPageHandlerFactory() = default;
+
+void AppManagementPageHandlerFactory::Bind(
+ app_management::mojom::PageHandlerFactoryRequest request) {
+ if (page_factory_binding_.is_bound()) {
+ page_factory_binding_.Unbind();
+ }
+
+ 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));
+}
+
+void AppManagementPageHandlerFactory::CreatePageHandler(
+ app_management::mojom::PagePtr page,
+ app_management::mojom::PageHandlerRequest request) {
+ DCHECK(page);
+
+ page_handler_ = std::make_unique<AppManagementPageHandler>(
+ std::move(request), std::move(page), profile_);
+}
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/app_management/app_management_page_handler_factory.h b/chromium/chrome/browser/ui/webui/settings/chromeos/app_management/app_management_page_handler_factory.h
new file mode 100644
index 00000000000..3779071f093
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/app_management/app_management_page_handler_factory.h
@@ -0,0 +1,45 @@
+// Copyright 2019 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.
+
+#ifndef CHROME_BROWSER_UI_WEBUI_SETTINGS_CHROMEOS_APP_MANAGEMENT_APP_MANAGEMENT_PAGE_HANDLER_FACTORY_H_
+#define CHROME_BROWSER_UI_WEBUI_SETTINGS_CHROMEOS_APP_MANAGEMENT_APP_MANAGEMENT_PAGE_HANDLER_FACTORY_H_
+
+#include <memory>
+
+#include "base/macros.h"
+#include "chrome/browser/ui/webui/app_management/app_management.mojom.h"
+#include "mojo/public/cpp/bindings/binding.h"
+
+class Profile;
+
+class AppManagementPageHandler;
+
+class AppManagementPageHandlerFactory
+ : public app_management::mojom::PageHandlerFactory {
+ public:
+ explicit AppManagementPageHandlerFactory(Profile* profile);
+ ~AppManagementPageHandlerFactory() override;
+
+ void Bind(app_management::mojom::PageHandlerFactoryRequest request);
+
+ 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;
+
+ std::unique_ptr<AppManagementPageHandler> page_handler_;
+
+ mojo::Binding<app_management::mojom::PageHandlerFactory>
+ page_factory_binding_;
+
+ Profile* profile_;
+
+ DISALLOW_COPY_AND_ASSIGN(AppManagementPageHandlerFactory);
+};
+
+#endif // CHROME_BROWSER_UI_WEBUI_SETTINGS_CHROMEOS_APP_MANAGEMENT_APP_MANAGEMENT_PAGE_HANDLER_FACTORY_H_