|  | // Copyright 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_RENDERER_WEB_UI_EXTENSION_DATA_H_ | 
|  | #define CONTENT_RENDERER_WEB_UI_EXTENSION_DATA_H_ | 
|  |  | 
|  | #include <map> | 
|  | #include <string> | 
|  |  | 
|  | #include "base/macros.h" | 
|  | #include "content/public/renderer/render_view_observer.h" | 
|  | #include "content/public/renderer/render_view_observer_tracker.h" | 
|  |  | 
|  | namespace content { | 
|  |  | 
|  | class WebUIExtensionData | 
|  | : public RenderViewObserver, | 
|  | public RenderViewObserverTracker<WebUIExtensionData> { | 
|  | public: | 
|  | explicit WebUIExtensionData(RenderView* render_view); | 
|  | ~WebUIExtensionData() override; | 
|  |  | 
|  | // Returns value for a given |key|. Will return an empty string if no such key | 
|  | // exists in the |variable_map_|. | 
|  | std::string GetValue(const std::string& key) const; | 
|  |  | 
|  | private: | 
|  | // RenderViewObserver implementation. | 
|  | bool OnMessageReceived(const IPC::Message& message) override; | 
|  | void OnDestruct() override; | 
|  |  | 
|  | void OnSetWebUIProperty(const std::string& name, const std::string& value); | 
|  |  | 
|  | std::map<std::string, std::string> variable_map_; | 
|  |  | 
|  | DISALLOW_IMPLICIT_CONSTRUCTORS(WebUIExtensionData); | 
|  | }; | 
|  |  | 
|  | }  // namespace content | 
|  |  | 
|  | #endif  // CONTENT_RENDERER_WEB_UI_EXTENSION_DATA_H_ |