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.
5 #ifndef CONTENT_CHILD_WEB_DATABASE_OBSERVER_IMPL_H_
6 #define CONTENT_CHILD_WEB_DATABASE_OBSERVER_IMPL_H_
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"
15 class WebDatabaseObserverImpl
: public blink::WebDatabaseObserver
{
17 explicit WebDatabaseObserverImpl(IPC::SyncMessageFilter
* sender
);
18 virtual ~WebDatabaseObserverImpl();
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
,
62 void WaitForAllDatabasesToClose();
65 void HandleSqliteError(const blink::WebString
& origin_identifier
,
66 const blink::WebString
& database_name
,
69 scoped_refptr
<IPC::SyncMessageFilter
> sender_
;
70 scoped_refptr
<storage::DatabaseConnectionsWrapper
> open_connections_
;
72 DISALLOW_COPY_AND_ASSIGN(WebDatabaseObserverImpl
);
75 } // namespace content
77 #endif // CONTENT_CHILD_WEB_DATABASE_OBSERVER_IMPL_H_