chromium/ui/webui/mojo_web_ui_controller.h

// Copyright 2014 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef UI_WEBUI_MOJO_WEB_UI_CONTROLLER_H_
#define UI_WEBUI_MOJO_WEB_UI_CONTROLLER_H_

#include "content/public/browser/web_ui.h"
#include "content/public/browser/web_ui_controller.h"

namespace ui {

// MojoWebUIController is intended for WebUI pages that use Mojo. It is
// expected that subclasses will:
// . Add all Mojo Bindings Resources via AddResourcePath(), eg:
//     source->AddResourcePath("chrome/browser/ui/webui/omnibox/omnibox.mojom",
//                              IDR_OMNIBOX_MOJO_JS);
// . Overload void BindInterface(mojo::PendingReceiver<InterfaceName>) for all
//   Mojo Interfaces it wishes to handle.
// . Use WEB_UI_CONTROLLER_TYPE_DECL macro in .h file and
//   WEB_UI_CONTROLLER_TYPE_IMPL macro in .cc file.
// . Register all Mojo Interfaces it wishes to handle in the appropriate
//   BinderMap:
//     - chrome/browser/chrome_browser_interface_binders.cc for chrome/ WebUIs;
//     - content/browser/browser_interface_binders.cc for content/ WebUIs.
class MojoWebUIController : public content::WebUIController {};

}  // namespace ui

#endif  // UI_WEBUI_MOJO_WEB_UI_CONTROLLER_H_