1// Copyright (c) 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CHROME_BROWSER_UI_WEBUI_THEME_HANDLER_H_ 6#define CHROME_BROWSER_UI_WEBUI_THEME_HANDLER_H_ 7 8#include "content/public/browser/notification_observer.h" 9#include "content/public/browser/notification_registrar.h" 10#include "content/public/browser/web_ui_message_handler.h" 11 12class Profile; 13 14namespace content { 15class WebUI; 16} 17 18// A class to keep the ThemeSource up to date when theme changes. 19class ThemeHandler : public content::WebUIMessageHandler, 20 public content::NotificationObserver { 21 public: 22 explicit ThemeHandler(); 23 virtual ~ThemeHandler(); 24 25 private: 26 // content::WebUIMessageHandler implementation. 27 virtual void RegisterMessages() OVERRIDE; 28 29 // Re/set the CSS caches. 30 void InitializeCSSCaches(); 31 32 // content::NotificationObserver implementation. 33 virtual void Observe(int type, 34 const content::NotificationSource& source, 35 const content::NotificationDetails& details) OVERRIDE; 36 37 Profile* GetProfile() const; 38 39 content::NotificationRegistrar registrar_; 40 41 DISALLOW_COPY_AND_ASSIGN(ThemeHandler); 42}; 43 44#endif // CHROME_BROWSER_UI_WEBUI_THEME_HANDLER_H_ 45