// Copyright (c) 2012 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 CONTENT_PUBLIC_BROWSER_WEB_UI_CONTROLLER_H_ #define CONTENT_PUBLIC_BROWSER_WEB_UI_CONTROLLER_H_ #include "base/basictypes.h" #include "base/strings/string16.h" #include "content/common/content_export.h" class GURL; namespace base { class ListValue; } namespace content { class RenderViewHost; class WebUI; // A WebUI page is controller by the embedder's WebUIController object. It // manages the data source and message handlers. class CONTENT_EXPORT WebUIController { public: explicit WebUIController(WebUI* web_ui) : web_ui_(web_ui) {} virtual ~WebUIController() {} // Allows the controller to override handling all messages from the page. // Return true if the message handling was overridden. virtual bool OverrideHandleWebUIMessage(const GURL& source_url, const std::string& message, const base::ListValue& args); // Called when RenderView is first created. This is *not* called for every // page load because in some cases a RenderView will be reused. In those // cases, RenderViewReused will be called instead. virtual void RenderViewCreated(RenderViewHost* render_view_host) {} // Called when a RenderView is reused to display a page. virtual void RenderViewReused(RenderViewHost* render_view_host) {} WebUI* web_ui() const { return web_ui_; } private: WebUI* web_ui_; }; } // namespace content #endif // CONTENT_PUBLIC_BROWSER_WEB_UI_CONTROLLER_H_