blob: e1703911cff393a913ba16374d5563a466fe6f4e [file] [log] [blame]
// Copyright 2018 The Chromium Authors
// 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_MANAGEMENT_MANAGEMENT_UI_H_
#define CHROME_BROWSER_UI_WEBUI_MANAGEMENT_MANAGEMENT_UI_H_
#include <vector>
#include "chrome/browser/profiles/profile.h"
#include "chrome/common/webui_url_constants.h"
#include "components/prefs/pref_registry_simple.h"
#include "content/public/browser/web_ui_controller.h"
#include "content/public/browser/webui_config.h"
#include "content/public/common/url_constants.h"
#include "ui/base/resource/resource_scale_factor.h"
#include "ui/base/webui/web_ui_util.h"
namespace base {
class RefCountedMemory;
}
namespace content {
class WebUI;
}
class ManagementUI;
class ManagementUIConfig : public content::DefaultWebUIConfig<ManagementUI> {
public:
ManagementUIConfig()
: DefaultWebUIConfig(content::kChromeUIScheme,
chrome::kChromeUIManagementHost) {}
};
// The Web UI controller for the chrome://management page.
class ManagementUI : public content::WebUIController {
public:
explicit ManagementUI(content::WebUI* web_ui);
ManagementUI(const ManagementUI&) = delete;
ManagementUI& operator=(const ManagementUI&) = delete;
~ManagementUI() override;
static base::RefCountedMemory* GetFaviconResourceBytes(
ui::ResourceScaleFactor scale_factor);
static std::u16string GetManagementPageSubtitle(Profile* profile);
// Returns the localized strings used on the management page.
// If `remove_links` is true, it will use the NO_LINK versions
// of device disclosure strings to be displayed on the management disclosure
// dialog.
static void GetLocalizedStrings(std::vector<webui::LocalizedString>& strings,
bool remove_links);
static void RegisterProfilePrefs(PrefRegistrySimple* registry);
};
#endif // CHROME_BROWSER_UI_WEBUI_MANAGEMENT_MANAGEMENT_UI_H_