summaryrefslogtreecommitdiffstats
path: root/chrome/browser/dom_ui/ntp_resource_cache.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/dom_ui/ntp_resource_cache.h')
-rw-r--r--chrome/browser/dom_ui/ntp_resource_cache.h45
1 files changed, 45 insertions, 0 deletions
diff --git a/chrome/browser/dom_ui/ntp_resource_cache.h b/chrome/browser/dom_ui/ntp_resource_cache.h
new file mode 100644
index 0000000..a39b962
--- /dev/null
+++ b/chrome/browser/dom_ui/ntp_resource_cache.h
@@ -0,0 +1,45 @@
+// Copyright (c) 2009 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 CHROME_BROWSER_DOM_UI_NTP_RESOURCE_CACHE_H_
+#define CHROME_BROWSER_DOM_UI_NTP_RESOURCE_CACHE_H_
+
+#include <string>
+
+#include "base/basictypes.h"
+#include "base/ref_counted.h"
+#include "chrome/common/notification_registrar.h"
+
+class Profile;
+class RefCountedBytes;
+
+// This class keeps a cache of NTP resources (HTML and CSS) so we don't have to
+// regenerate them all the time.
+class NTPResourceCache : public NotificationObserver {
+ public:
+ explicit NTPResourceCache(Profile* profile);
+ virtual ~NTPResourceCache();
+
+ RefCountedBytes* GetNewTabHTML(bool is_off_the_record);
+
+ // NotificationObserver interface.
+ virtual void Observe(NotificationType type,
+ const NotificationSource& source,
+ const NotificationDetails& details);
+
+ private:
+ Profile* profile_;
+
+ void CreateNewTabIncognitoHtml();
+ scoped_refptr<RefCountedBytes> new_tab_incognito_html_;
+
+ void CreateNewTabHtml();
+ scoped_refptr<RefCountedBytes> new_tab_html_;
+
+ NotificationRegistrar registrar_;
+
+ DISALLOW_COPY_AND_ASSIGN(NTPResourceCache);
+};
+
+#endif // CHROME_BROWSER_DOM_UI_NTP_RESOURCE_CACHE_H_