Browse Source

browser: create quota permission context to allow quota request

deepak1556 10 years ago
parent
commit
2785a4cc48

+ 7 - 0
atom/browser/atom_browser_client.cc

@@ -7,6 +7,7 @@
 #include "atom/browser/atom_access_token_store.h"
 #include "atom/browser/atom_browser_context.h"
 #include "atom/browser/atom_browser_main_parts.h"
+#include "atom/browser/atom_quota_permission_context.h"
 #include "atom/browser/atom_resource_dispatcher_host_delegate.h"
 #include "atom/browser/atom_speech_recognition_manager_delegate.h"
 #include "atom/browser/native_window.h"
@@ -19,6 +20,7 @@
 #include "chrome/browser/renderer_host/pepper/chrome_browser_pepper_host_factory.h"
 #include "chrome/browser/speech/tts_message_filter.h"
 #include "content/public/browser/browser_ppapi_host.h"
+#include "content/public/browser/quota_permission_context.h"
 #include "content/public/browser/render_process_host.h"
 #include "content/public/browser/render_view_host.h"
 #include "content/public/browser/resource_dispatcher_host.h"
@@ -222,6 +224,11 @@ void AtomBrowserClient::DidCreatePpapiPlugin(
             new chrome::ChromeBrowserPepperHostFactory(browser_host)));
 }
 
+content::QuotaPermissionContext*
+    AtomBrowserClient::CreateQuotaPermissionContext() {
+  return new AtomQuotaPermissionContext;
+}
+
 brightray::BrowserMainParts* AtomBrowserClient::OverrideCreateBrowserMainParts(
     const content::MainFunctionParams&) {
   v8::V8::Initialize();  // Init V8 before creating main parts.

+ 5 - 0
atom/browser/atom_browser_client.h

@@ -9,6 +9,10 @@
 
 #include "brightray/browser/browser_client.h"
 
+namespace content {
+class QuotaPermissionContext;
+}
+
 namespace atom {
 
 class AtomResourceDispatcherHostDelegate;
@@ -39,6 +43,7 @@ class AtomBrowserClient : public brightray::BrowserClient {
   void AppendExtraCommandLineSwitches(base::CommandLine* command_line,
                                       int child_process_id) override;
   void DidCreatePpapiPlugin(content::BrowserPpapiHost* browser_host) override;
+  content::QuotaPermissionContext* CreateQuotaPermissionContext() override;
 
  private:
   brightray::BrowserMainParts* OverrideCreateBrowserMainParts(

+ 24 - 0
atom/browser/atom_quota_permission_context.cc

@@ -0,0 +1,24 @@
+// Copyright (c) 2015 GitHub, Inc.
+// Use of this source code is governed by the MIT license that can be
+// found in the LICENSE file.
+
+#include "atom/browser/atom_quota_permission_context.h"
+
+#include "storage/common/quota/quota_types.h"
+
+namespace atom {
+
+AtomQuotaPermissionContext::AtomQuotaPermissionContext() {
+}
+
+AtomQuotaPermissionContext::~AtomQuotaPermissionContext() {
+}
+
+void AtomQuotaPermissionContext::RequestQuotaPermission(
+    const content::StorageQuotaParams& params,
+    int render_process_id,
+    const PermissionCallback& callback) {
+  callback.Run(response::QUOTA_PERMISSION_RESPONSE_ALLOW);
+}
+
+}  // namespace atom

+ 31 - 0
atom/browser/atom_quota_permission_context.h

@@ -0,0 +1,31 @@
+// Copyright (c) 2015 GitHub, Inc.
+// Use of this source code is governed by the MIT license that can be
+// found in the LICENSE file.
+
+#ifndef ATOM_BROWSER_ATOM_QUOTA_PERMISSION_CONTEXT_H_
+#define ATOM_BROWSER_ATOM_QUOTA_PERMISSION_CONTEXT_H_
+
+#include "content/public/browser/quota_permission_context.h"
+
+namespace atom {
+
+class AtomQuotaPermissionContext : public content::QuotaPermissionContext {
+ public:
+  typedef content::QuotaPermissionContext::QuotaPermissionResponse response;
+
+  AtomQuotaPermissionContext();
+  virtual ~AtomQuotaPermissionContext();
+
+  // content::QuotaPermissionContext:
+  void RequestQuotaPermission(
+      const content::StorageQuotaParams& params,
+      int render_process_id,
+      const PermissionCallback& callback) override;
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(AtomQuotaPermissionContext);
+};
+
+}  // namespace atom
+
+#endif  // ATOM_BROWSER_ATOM_QUOTA_PERMISSION_CONTEXT_H_

+ 2 - 0
filenames.gypi

@@ -114,6 +114,8 @@
       'atom/browser/atom_browser_main_parts_mac.mm',
       'atom/browser/atom_javascript_dialog_manager.cc',
       'atom/browser/atom_javascript_dialog_manager.h',
+      'atom/browser/atom_quota_permission_context.cc',
+      'atom/browser/atom_quota_permission_context.h',      
       'atom/browser/atom_resource_dispatcher_host_delegate.cc',
       'atom/browser/atom_resource_dispatcher_host_delegate.h',
       'atom/browser/atom_speech_recognition_manager_delegate.cc',