Home | History | Annotate | Download | only in browser
      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 CONTENT_PUBLIC_BROWSER_QUOTA_PERMISSION_CONTEXT_H_
      6 #define CONTENT_PUBLIC_BROWSER_QUOTA_PERMISSION_CONTEXT_H_
      7 
      8 #include "base/callback.h"
      9 #include "base/memory/ref_counted.h"
     10 #include "webkit/common/quota/quota_types.h"
     11 
     12 class GURL;
     13 
     14 namespace content {
     15 
     16 class QuotaPermissionContext
     17     : public base::RefCountedThreadSafe<QuotaPermissionContext> {
     18  public:
     19   enum QuotaPermissionResponse {
     20     QUOTA_PERMISSION_RESPONSE_UNKNOWN,
     21     QUOTA_PERMISSION_RESPONSE_ALLOW,
     22     QUOTA_PERMISSION_RESPONSE_DISALLOW,
     23     QUOTA_PERMISSION_RESPONSE_CANCELLED,
     24   };
     25 
     26   typedef base::Callback<void(QuotaPermissionResponse)> PermissionCallback;
     27 
     28   virtual void RequestQuotaPermission(
     29       const GURL& origin_url,
     30       quota::StorageType type,
     31       int64 new_quota,
     32       int render_process_id,
     33       int render_view_id,
     34       const PermissionCallback& callback) = 0;
     35 
     36  protected:
     37   friend class base::RefCountedThreadSafe<QuotaPermissionContext>;
     38   virtual ~QuotaPermissionContext() {}
     39 };
     40 
     41 }  // namespace content
     42 
     43 #endif  // CONTENT_PUBLIC_BROWSER_QUOTA_PERMISSION_CONTEXT_H_
     44