Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4198)

Unified Diff: chrome/browser/renderer_host/database_message_filter.h

Issue 5757002: Make DatabaseDispatcherHost be a message filter so that ResourceMessageFilter... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/renderer_host/database_message_filter.h
===================================================================
--- chrome/browser/renderer_host/database_message_filter.h (revision 68877)
+++ chrome/browser/renderer_host/database_message_filter.h (working copy)
@@ -2,37 +2,47 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CHROME_BROWSER_RENDERER_HOST_DATABASE_DISPATCHER_HOST_H_
-#define CHROME_BROWSER_RENDERER_HOST_DATABASE_DISPATCHER_HOST_H_
+#ifndef CHROME_BROWSER_RENDERER_HOST_DATABASE_MESSAGE_FILTER_H_
+#define CHROME_BROWSER_RENDERER_HOST_DATABASE_MESSAGE_FILTER_H_
#pragma once
#include "base/hash_tables.h"
-#include "base/process.h"
-#include "base/ref_counted.h"
#include "base/string16.h"
+#include "chrome/browser/browser_message_filter.h"
#include "chrome/common/content_settings.h"
-#include "ipc/ipc_message.h"
#include "webkit/database/database_connections.h"
#include "webkit/database/database_tracker.h"
-class GURL;
class HostContentSettingsMap;
-class Receiver;
-class ResourceMessageFilter;
-class DatabaseDispatcherHost
- : public base::RefCountedThreadSafe<DatabaseDispatcherHost>,
+class DatabaseMessageFilter
+ : public BrowserMessageFilter,
public webkit_database::DatabaseTracker::Observer {
public:
- DatabaseDispatcherHost(webkit_database::DatabaseTracker* db_tracker,
- IPC::Message::Sender* sender,
- HostContentSettingsMap *host_content_settings_map);
- void Init(base::ProcessHandle process_handle);
- void Shutdown();
+ DatabaseMessageFilter(
+ webkit_database::DatabaseTracker* db_tracker,
+ HostContentSettingsMap *host_content_settings_map);
- bool OnMessageReceived(const IPC::Message& message, bool* message_was_ok);
+ // BrowserMessageFilter implementation.
+ virtual void OnChannelClosing();
+ virtual void OverrideThreadForMessage(const IPC::Message& message,
+ BrowserThread::ID* thread);
+ virtual bool OnMessageReceived(const IPC::Message& message,
+ bool* message_was_ok);
- // VFS message handlers (IO thread)
+ webkit_database::DatabaseTracker* database_tracker() const {
+ return db_tracker_.get();
+ }
+
+ private:
+ virtual ~DatabaseMessageFilter();
+
+ class PromptDelegate;
+
+ void AddObserver();
+ void RemoveObserver();
+
+ // VFS message handlers (file thread)
void OnDatabaseOpenFile(const string16& vfs_file_name,
int desired_flags,
IPC::Message* reply_msg);
@@ -44,7 +54,7 @@
void OnDatabaseGetFileSize(const string16& vfs_file_name,
IPC::Message* reply_msg);
- // Database tracker message handlers (IO thread)
+ // Database tracker message handlers (file thread)
void OnDatabaseOpened(const string16& origin_identifier,
const string16& database_name,
const string16& description,
@@ -67,46 +77,11 @@
virtual void OnDatabaseScheduledForDeletion(const string16& origin_identifier,
const string16& database_name);
- webkit_database::DatabaseTracker* database_tracker() const {
- return db_tracker_.get();
- }
-
- void Send(IPC::Message* message);
-
- private:
- friend class base::RefCountedThreadSafe<DatabaseDispatcherHost>;
- virtual ~DatabaseDispatcherHost();
-
- class PromptDelegate;
-
- void AddObserver();
- void RemoveObserver();
-
- void ReceivedBadMessage(uint32 msg_type);
-
- // VFS message handlers (file thread)
- void DatabaseOpenFile(const string16& vfs_file_name,
- int desired_flags,
- IPC::Message* reply_msg);
void DatabaseDeleteFile(const string16& vfs_file_name,
bool sync_dir,
IPC::Message* reply_msg,
int reschedule_count);
- void DatabaseGetFileAttributes(const string16& vfs_file_name,
- IPC::Message* reply_msg);
- void DatabaseGetFileSize(const string16& vfs_file_name,
- IPC::Message* reply_msg);
- // Database tracker message handlers (file thread)
- void DatabaseOpened(const string16& origin_identifier,
- const string16& database_name,
- const string16& description,
- int64 estimated_size);
- void DatabaseModified(const string16& origin_identifier,
- const string16& database_name);
- void DatabaseClosed(const string16& origin_identifier,
- const string16& database_name);
-
// CookiePromptModalDialog response handler (io thread)
void AllowDatabaseResponse(IPC::Message* reply_msg,
ContentSetting content_setting);
@@ -114,21 +89,10 @@
// The database tracker for the current profile.
scoped_refptr<webkit_database::DatabaseTracker> db_tracker_;
- // The sender to be used for sending out IPC messages.
- IPC::Message::Sender* message_sender_;
-
- // The handle of this process.
- base::ProcessHandle process_handle_;
-
// True if and only if this instance was added as an observer
// to DatabaseTracker.
bool observer_added_;
- // If true, all messages that are normally processed by this class
- // will be silently discarded. This field should be set to true
- // only when the corresponding renderer process is about to go away.
- bool shutdown_;
-
// Keeps track of all DB connections opened by this renderer
webkit_database::DatabaseConnections database_connections_;
@@ -136,4 +100,4 @@
scoped_refptr<HostContentSettingsMap> host_content_settings_map_;
};
-#endif // CHROME_BROWSER_RENDERER_HOST_DATABASE_DISPATCHER_HOST_H_
+#endif // CHROME_BROWSER_RENDERER_HOST_DATABASE_MESSAGE_FILTER_H_
« no previous file with comments | « chrome/browser/renderer_host/database_dispatcher_host.cc ('k') | chrome/browser/renderer_host/database_message_filter.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698