Home | History | Annotate | Download | only in child
      1 // Copyright 2013 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_CHILD_WEB_DATABASE_OBSERVER_IMPL_H_
      6 #define CONTENT_CHILD_WEB_DATABASE_OBSERVER_IMPL_H_
      7 
      8 #include "base/memory/ref_counted.h"
      9 #include "ipc/ipc_sync_message_filter.h"
     10 #include "storage/common/database/database_connections.h"
     11 #include "third_party/WebKit/public/platform/WebDatabaseObserver.h"
     12 
     13 namespace content {
     14 
     15 class WebDatabaseObserverImpl : public blink::WebDatabaseObserver {
     16  public:
     17   explicit WebDatabaseObserverImpl(IPC::SyncMessageFilter* sender);
     18   virtual ~WebDatabaseObserverImpl();
     19 
     20   virtual void databaseOpened(
     21       const blink::WebString& origin_identifier,
     22       const blink::WebString& database_name,
     23       const blink::WebString& database_display_name,
     24       unsigned long estimated_size);
     25   virtual void databaseModified(
     26       const blink::WebString& origin_identifier,
     27       const blink::WebString& database_name);
     28   virtual void databaseClosed(
     29       const blink::WebString& origin_identifier,
     30       const blink::WebString& database_name);
     31   virtual void reportOpenDatabaseResult(
     32       const blink::WebString& origin_identifier,
     33       const blink::WebString& database_name,
     34       bool is_sync_database,
     35       int callsite, int websql_error, int sqlite_error);
     36   virtual void reportChangeVersionResult(
     37       const blink::WebString& origin_identifier,
     38       const blink::WebString& database_name,
     39       bool is_sync_database,
     40       int callsite, int websql_error, int sqlite_error);
     41   virtual void reportStartTransactionResult(
     42       const blink::WebString& origin_identifier,
     43       const blink::WebString& database_name,
     44       bool is_sync_database,
     45       int callsite, int websql_error, int sqlite_error);
     46   virtual void reportCommitTransactionResult(
     47       const blink::WebString& origin_identifier,
     48       const blink::WebString& database_name,
     49       bool is_sync_database,
     50       int callsite, int websql_error, int sqlite_error);
     51   virtual void reportExecuteStatementResult(
     52       const blink::WebString& origin_identifier,
     53       const blink::WebString& database_name,
     54       bool is_sync_database,
     55       int callsite, int websql_error, int sqlite_error);
     56   virtual void reportVacuumDatabaseResult(
     57       const blink::WebString& origin_identifier,
     58       const blink::WebString& database_name,
     59       bool is_sync_database,
     60       int sqlite_error);
     61 
     62   void WaitForAllDatabasesToClose();
     63 
     64  private:
     65   void HandleSqliteError(const blink::WebString& origin_identifier,
     66                          const blink::WebString& database_name,
     67                          int error);
     68 
     69   scoped_refptr<IPC::SyncMessageFilter> sender_;
     70   scoped_refptr<storage::DatabaseConnectionsWrapper> open_connections_;
     71 
     72   DISALLOW_COPY_AND_ASSIGN(WebDatabaseObserverImpl);
     73 };
     74 
     75 }  // namespace content
     76 
     77 #endif  // CONTENT_CHILD_WEB_DATABASE_OBSERVER_IMPL_H_
     78