| // 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_ |