| OLD | NEW | 
|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #ifndef CONTENT_COMMON_QUOTA_DISPATCHER_H_ | 5 #ifndef CONTENT_COMMON_QUOTA_DISPATCHER_H_ | 
| 6 #define CONTENT_COMMON_QUOTA_DISPATCHER_H_ | 6 #define CONTENT_COMMON_QUOTA_DISPATCHER_H_ | 
| 7 | 7 | 
| 8 #include <map> | 8 #include <map> | 
| 9 #include <set> | 9 #include <set> | 
| 10 | 10 | 
| 11 #include "base/basictypes.h" | 11 #include "base/basictypes.h" | 
| 12 #include "base/id_map.h" | 12 #include "base/id_map.h" | 
| 13 #include "ipc/ipc_channel.h" | 13 #include "ipc/ipc_channel.h" | 
| 14 #include "third_party/WebKit/Source/WebKit/chromium/public/WebStorageQuotaError.
    h" | 14 #include "webkit/quota/quota_client.h" | 
| 15 #include "third_party/WebKit/Source/WebKit/chromium/public/WebStorageQuotaType.h
    " |  | 
| 16 | 15 | 
| 17 class GURL; | 16 class GURL; | 
| 18 | 17 | 
| 19 namespace IPC { | 18 namespace IPC { | 
| 20 class Message; | 19 class Message; | 
| 21 } | 20 } | 
| 22 | 21 | 
| 23 namespace WebKit { |  | 
| 24 class WebStorageQuotaCallbacks; |  | 
| 25 } |  | 
| 26 |  | 
| 27 // Dispatches and sends quota related messages sent to/from a child | 22 // Dispatches and sends quota related messages sent to/from a child | 
| 28 // process from/to the main browser process.  There is one instance | 23 // process from/to the main browser process.  There is one instance | 
| 29 // per child process.  Messages are dispatched on the main child thread. | 24 // per child process.  Messages are dispatched on the main child thread. | 
| 30 class QuotaDispatcher : public IPC::Channel::Listener { | 25 class QuotaDispatcher : public IPC::Channel::Listener { | 
| 31  public: | 26  public: | 
|  | 27   class Callback { | 
|  | 28    public: | 
|  | 29     virtual void DidQueryStorageUsageAndQuota(int64 usage, int64 quota) = 0; | 
|  | 30     virtual void DidGrantStorageQuota(int64 granted_quota) = 0; | 
|  | 31     virtual void DidFail(quota::QuotaStatusCode status) = 0; | 
|  | 32   }; | 
|  | 33 | 
| 32   QuotaDispatcher(); | 34   QuotaDispatcher(); | 
| 33   virtual ~QuotaDispatcher(); | 35   virtual ~QuotaDispatcher(); | 
| 34 | 36 | 
| 35   // IPC::Channel::Listener implementation. | 37   // IPC::Channel::Listener implementation. | 
| 36   virtual bool OnMessageReceived(const IPC::Message& msg); | 38   virtual bool OnMessageReceived(const IPC::Message& msg); | 
| 37 | 39 | 
| 38   void QueryStorageUsageAndQuota(const GURL& gurl, | 40   void QueryStorageUsageAndQuota(const GURL& gurl, | 
| 39                                  WebKit::WebStorageQuotaType type, | 41                                  quota::StorageType type, | 
| 40                                  WebKit::WebStorageQuotaCallbacks* callbacks); | 42                                  Callback* callback); | 
| 41   void RequestStorageQuota(int render_view_id, | 43   void RequestStorageQuota(int render_view_id, | 
| 42                            const GURL& gurl, | 44                            const GURL& gurl, | 
| 43                            WebKit::WebStorageQuotaType type, | 45                            quota::StorageType type, | 
| 44                            unsigned long long requested_size, | 46                            int64 requested_size, | 
| 45                            WebKit::WebStorageQuotaCallbacks* callbacks); | 47                            Callback* callback); | 
|  | 48   void NotifyStorageModified(quota::QuotaClient::ID client_id, | 
|  | 49                              const GURL& origin, | 
|  | 50                              quota::StorageType type, | 
|  | 51                              int64 delta); | 
| 46 | 52 | 
| 47  private: | 53  private: | 
| 48   // Message handlers. | 54   // Message handlers. | 
| 49   void DidQueryStorageUsageAndQuota(int request_id, | 55   void DidQueryStorageUsageAndQuota(int request_id, | 
| 50                                     int64 current_usage, | 56                                     int64 current_usage, | 
| 51                                     int64 current_quota); | 57                                     int64 current_quota); | 
| 52   void DidGrantStorageQuota(int request_id, | 58   void DidGrantStorageQuota(int request_id, | 
| 53                             int64 granted_quota); | 59                             int64 granted_quota); | 
| 54   void DidFail(int request_id, | 60   void DidFail(int request_id, quota::QuotaStatusCode error); | 
| 55                WebKit::WebStorageQuotaError error); |  | 
| 56 | 61 | 
| 57   IDMap<WebKit::WebStorageQuotaCallbacks> pending_quota_callbacks_; | 62   IDMap<Callback, IDMapOwnPointer> pending_quota_callbacks_; | 
| 58 | 63 | 
| 59   DISALLOW_COPY_AND_ASSIGN(QuotaDispatcher); | 64   DISALLOW_COPY_AND_ASSIGN(QuotaDispatcher); | 
| 60 }; | 65 }; | 
| 61 | 66 | 
| 62 #endif  // CONTENT_COMMON_QUOTA_DISPATCHER_H_ | 67 #endif  // CONTENT_COMMON_QUOTA_DISPATCHER_H_ | 
| OLD | NEW | 
|---|