extension_web_ui_override_registrar.h revision c2e0dbddbe15c98d52c4786dac06cb8952a8ae6d
1// Copyright (c) 2012 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_EXTENSIONS_EXTENSION_WEB_UI_OVERRIDE_REGISTRAR_H_ 6#define CHROME_BROWSER_EXTENSIONS_EXTENSION_WEB_UI_OVERRIDE_REGISTRAR_H_ 7 8#include "base/basictypes.h" 9#include "chrome/browser/extensions/api/profile_keyed_api_factory.h" 10#include "content/public/browser/notification_observer.h" 11#include "content/public/browser/notification_registrar.h" 12 13class Profile; 14 15namespace extensions { 16 17class ExtensionWebUIOverrideRegistrar : public ProfileKeyedAPI, 18 public content::NotificationObserver { 19 public: 20 explicit ExtensionWebUIOverrideRegistrar(Profile* profile); 21 virtual ~ExtensionWebUIOverrideRegistrar(); 22 23 // ProfileKeyedAPI implementation. 24 static ProfileKeyedAPIFactory<ExtensionWebUIOverrideRegistrar>* 25 GetFactoryInstance(); 26 27 // content::NotificationObserver implementation. 28 virtual void Observe(int type, 29 const content::NotificationSource& source, 30 const content::NotificationDetails& details) OVERRIDE; 31 32 private: 33 friend class ProfileKeyedAPIFactory<ExtensionWebUIOverrideRegistrar>; 34 35 // ProfileKeyedAPI implementation. 36 static const char* service_name() { 37 return "ExtensionWebUIOverrideRegistrar"; 38 } 39 40 Profile* const profile_; 41 content::NotificationRegistrar registrar_; 42 43 DISALLOW_COPY_AND_ASSIGN(ExtensionWebUIOverrideRegistrar); 44}; 45 46} // namespace extensions 47 48#endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_WEB_UI_OVERRIDE_REGISTRAR_H_ 49