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#include "content/child/db_message_filter.h"
6
7#include "content/common/database_messages.h"
8#include "third_party/WebKit/public/platform/WebString.h"
9#include "third_party/WebKit/public/web/WebDatabase.h"
10
11using blink::WebString;
12
13namespace content {
14
15DBMessageFilter::DBMessageFilter() {
16}
17
18bool DBMessageFilter::OnMessageReceived(const IPC::Message& message) {
19  bool handled = true;
20  IPC_BEGIN_MESSAGE_MAP(DBMessageFilter, message)
21    IPC_MESSAGE_HANDLER(DatabaseMsg_UpdateSize, OnDatabaseUpdateSize)
22    IPC_MESSAGE_HANDLER(DatabaseMsg_UpdateSpaceAvailable,
23                        OnDatabaseUpdateSpaceAvailable)
24    IPC_MESSAGE_HANDLER(DatabaseMsg_ResetSpaceAvailable,
25                        OnDatabaseResetSpaceAvailable)
26    IPC_MESSAGE_HANDLER(DatabaseMsg_CloseImmediately,
27                        OnDatabaseCloseImmediately)
28    IPC_MESSAGE_UNHANDLED(handled = false)
29  IPC_END_MESSAGE_MAP()
30  return handled;
31}
32
33void DBMessageFilter::OnDatabaseUpdateSize(const std::string& origin_identifier,
34                                           const base::string16& database_name,
35                                           int64 database_size) {
36  blink::WebDatabase::updateDatabaseSize(
37      WebString::fromUTF8(origin_identifier), database_name, database_size);
38}
39
40void DBMessageFilter::OnDatabaseUpdateSpaceAvailable(
41    const std::string& origin_identifier,
42    int64 space_available) {
43  blink::WebDatabase::updateSpaceAvailable(
44      WebString::fromUTF8(origin_identifier), space_available);
45}
46
47void DBMessageFilter::OnDatabaseResetSpaceAvailable(
48    const std::string& origin_identifier) {
49  blink::WebDatabase::resetSpaceAvailable(
50      WebString::fromUTF8(origin_identifier));
51}
52
53void DBMessageFilter::OnDatabaseCloseImmediately(
54    const std::string& origin_identifier,
55    const base::string16& database_name) {
56  blink::WebDatabase::closeDatabaseImmediately(
57      WebString::fromUTF8(origin_identifier), database_name);
58}
59
60}  // namespace content
61