• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 "third_party/WebKit/public/platform/WebDatabaseObserver.h"
11 #include "webkit/common/database/database_connections.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<webkit_database::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