Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(560)

Unified Diff: mojo/services/network/mojo_persistent_cookie_store.h

Issue 1231493002: mandoline filesystem: Save cookie data to the mojo:filesystem. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Merge with ToT Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: mojo/services/network/mojo_persistent_cookie_store.h
diff --git a/mojo/services/network/mojo_persistent_cookie_store.h b/mojo/services/network/mojo_persistent_cookie_store.h
new file mode 100644
index 0000000000000000000000000000000000000000..66e9e880ab8c5f7ec0b546cf1520d503df73e1ce
--- /dev/null
+++ b/mojo/services/network/mojo_persistent_cookie_store.h
@@ -0,0 +1,64 @@
+// Copyright 2015 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 MOJO_SERVICES_NETWORK_MOJO_PERSISTENT_COOKIE_STORE_H_
+#define MOJO_SERVICES_NETWORK_MOJO_PERSISTENT_COOKIE_STORE_H_
+
+#include "base/files/file_path.h"
+#include "base/sequenced_task_runner.h"
+#include "mojo/services/network/network_service_delegate_observer.h"
+#include "net/cookies/cookie_monster.h"
+#include "net/extras/sqlite/cookie_crypto_delegate.h"
+
+namespace net {
+class SQLitePersistentCookieStore;
+} // namespace net
+
+namespace mojo {
+class NetworkServiceDelegate;
+
+// A PersistentCookieStore that listens to NetworkContext's and tries to
+// gracefully shutdown when our ApplicationConnection is about to be closed.
+class MojoPersistentCookieStore
+ : public net::CookieMonster::PersistentCookieStore,
+ public NetworkServiceDelegateObserver {
+ public:
+ MojoPersistentCookieStore(
+ NetworkServiceDelegate* network_service_delegate,
+ const base::FilePath& path,
+ const scoped_refptr<base::SequencedTaskRunner>& client_task_runner,
+ const scoped_refptr<base::SequencedTaskRunner>& background_task_runner,
+ bool restore_old_session_cookies,
+ net::CookieCryptoDelegate* crypto_delegate);
+
+ // CookieMonster::PersistentCookieStore:
+ void Load(const LoadedCallback& loaded_callback) override;
+ void LoadCookiesForKey(const std::string& key,
+ const LoadedCallback& callback) override;
+ void AddCookie(const net::CanonicalCookie& cc) override;
+ void UpdateCookieAccessTime(const net::CanonicalCookie& cc) override;
+ void DeleteCookie(const net::CanonicalCookie& cc) override;
+ void SetForceKeepSessionState() override;
+ void Flush(const base::Closure& callback) override;
+
+ // NetworkServiceDelegateObserver:
+ void OnIOWorkerThreadShutdown() override;
+
+ private:
+ ~MojoPersistentCookieStore() override;
+
+ void RemoveObserver();
+
+ NetworkServiceDelegate* network_service_delegate_;
+
+ // We own the |sql_cookie_store_| that we proxy for. We delete this during
+ // OnIOWorkerThreadShutdown().
+ scoped_refptr<net::SQLitePersistentCookieStore> sql_cookie_store_;
+
+ DISALLOW_COPY_AND_ASSIGN(MojoPersistentCookieStore);
+};
+
+} // namespace mojo
+
+#endif // MOJO_SERVICES_NETWORK_MOJO_PERSISTENT_COOKIE_STORE_H_

Powered by Google App Engine
This is Rietveld 408576698