Index: chrome/browser/in_process_webkit/webkit_context.h |
diff --git a/chrome/browser/in_process_webkit/webkit_context.h b/chrome/browser/in_process_webkit/webkit_context.h |
index be20825c02557b460d37fc89eee5823d741c4fd9..82425ef757ddab593c2cf73b1a6aa4935f7840f1 100644 |
--- a/chrome/browser/in_process_webkit/webkit_context.h |
+++ b/chrome/browser/in_process_webkit/webkit_context.h |
@@ -9,11 +9,14 @@ |
#include <vector> |
#include "base/file_path.h" |
+#include "base/lock.h" |
#include "base/ref_counted.h" |
#include "base/scoped_ptr.h" |
#include "base/time.h" |
#include "chrome/browser/in_process_webkit/dom_storage_context.h" |
#include "chrome/browser/in_process_webkit/indexed_db_context.h" |
+#include "chrome/browser/prefs/pref_change_registrar.h" |
+#include "chrome/common/notification_observer.h" |
class Profile; |
@@ -24,12 +27,15 @@ class Profile; |
// |
// This class is created on the UI thread and accessed on the UI, IO, and WebKit |
// threads. |
-class WebKitContext : public base::RefCountedThreadSafe<WebKitContext> { |
+class WebKitContext |
+ : public NotificationObserver, |
jochen (gone - plz use gerrit)
2010/11/27 19:02:27
notification observer is a pure virtual class, ref
pastarmovj
2010/11/27 20:45:15
Done.
|
+ public base::RefCountedThreadSafe<WebKitContext> { |
public: |
explicit WebKitContext(Profile* profile); |
const FilePath& data_path() const { return data_path_; } |
bool is_incognito() const { return is_incognito_; } |
+ bool clear_on_exit() const; |
DOMStorageContext* dom_storage_context() { |
return dom_storage_context_.get(); |
@@ -60,6 +66,11 @@ class WebKitContext : public base::RefCountedThreadSafe<WebKitContext> { |
// called from any thread. |
void DeleteSessionStorageNamespace(int64 session_storage_namespace_id); |
+ // NotificationObserver implementation. |
+ virtual void Observe(NotificationType type, |
+ const NotificationSource& source, |
+ const NotificationDetails& details); |
+ |
private: |
friend class base::RefCountedThreadSafe<WebKitContext>; |
~WebKitContext(); |
@@ -68,6 +79,14 @@ class WebKitContext : public base::RefCountedThreadSafe<WebKitContext> { |
const FilePath data_path_; |
const bool is_incognito_; |
+ // Used around accesses to the clear_on_exit_ flag to guarantee thread safety. |
+ mutable Lock lock_; |
+ // When set the destructors of context objects will delete its files. |
+ bool clear_on_exit_; |
jochen (gone - plz use gerrit)
2010/11/27 19:02:27
I'd name this something like clear_local_state_on_
pastarmovj
2010/11/27 20:45:15
Done. I felt it would have been way too long and c
|
+ |
+ Profile* profile_; |
jochen (gone - plz use gerrit)
2010/11/27 19:02:27
what do you need to profile for?
pastarmovj
2010/11/27 20:45:15
For the Observer to be able to extract the new pre
|
+ PrefChangeRegistrar pref_change_registrar_; |
+ |
scoped_ptr<DOMStorageContext> dom_storage_context_; |
scoped_ptr<IndexedDBContext> indexed_db_context_; |