| Index: chrome/browser/in_process_webkit/dom_storage_dispatcher_host.h
|
| ===================================================================
|
| --- chrome/browser/in_process_webkit/dom_storage_dispatcher_host.h (revision 69012)
|
| +++ chrome/browser/in_process_webkit/dom_storage_dispatcher_host.h (working copy)
|
| @@ -1,117 +0,0 @@
|
| -// Copyright (c) 2010 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#ifndef CHROME_BROWSER_IN_PROCESS_WEBKIT_DOM_STORAGE_DISPATCHER_HOST_H_
|
| -#define CHROME_BROWSER_IN_PROCESS_WEBKIT_DOM_STORAGE_DISPATCHER_HOST_H_
|
| -#pragma once
|
| -
|
| -#include "base/process.h"
|
| -#include "base/ref_counted.h"
|
| -#include "base/tracked.h"
|
| -#include "chrome/browser/in_process_webkit/dom_storage_area.h"
|
| -#include "chrome/browser/in_process_webkit/webkit_context.h"
|
| -#include "chrome/common/dom_storage_common.h"
|
| -#include "ipc/ipc_message.h"
|
| -
|
| -class DOMStorageContext;
|
| -class GURL;
|
| -class HostContentSettingsMap;
|
| -class ResourceMessageFilter;
|
| -class Task;
|
| -struct ViewMsg_DOMStorageEvent_Params;
|
| -
|
| -// This class handles the logistics of DOM Storage within the browser process.
|
| -// It mostly ferries information between IPCs and the WebKit implementations,
|
| -// but it also handles some special cases like when renderer processes die.
|
| -class DOMStorageDispatcherHost
|
| - : public base::RefCountedThreadSafe<DOMStorageDispatcherHost> {
|
| - public:
|
| - // Only call the constructor from the UI thread.
|
| - DOMStorageDispatcherHost(
|
| - ResourceMessageFilter* resource_message_filter,
|
| - WebKitContext* webkit_context);
|
| -
|
| - // Only call from ResourceMessageFilter on the IO thread.
|
| - void Init(int process_id, base::ProcessHandle process_handle);
|
| -
|
| - // Only call from ResourceMessageFilter on the IO thread. Calls self on the
|
| - // WebKit thread in some cases.
|
| - void Shutdown();
|
| -
|
| - // Only call from ResourceMessageFilter on the IO thread.
|
| - bool OnMessageReceived(const IPC::Message& message, bool* msg_is_ok);
|
| -
|
| - // Clones a session storage namespace and returns the cloned namespaces' id.
|
| - // Only call on the IO thread.
|
| - int64 CloneSessionStorage(int64 original_id);
|
| -
|
| - // Send a message to the renderer process associated with our
|
| - // message_sender_ via the IO thread. May be called from any thread.
|
| - void Send(IPC::Message* message);
|
| -
|
| - // Only call on the WebKit thread.
|
| - static void DispatchStorageEvent(const NullableString16& key,
|
| - const NullableString16& old_value, const NullableString16& new_value,
|
| - const string16& origin, const GURL& url, bool is_local_storage);
|
| -
|
| - private:
|
| - friend class base::RefCountedThreadSafe<DOMStorageDispatcherHost>;
|
| - ~DOMStorageDispatcherHost();
|
| -
|
| - // Message Handlers.
|
| - void OnStorageAreaId(int64 namespace_id, const string16& origin,
|
| - IPC::Message* reply_msg);
|
| - void OnLength(int64 storage_area_id, IPC::Message* reply_msg);
|
| - void OnKey(int64 storage_area_id, unsigned index, IPC::Message* reply_msg);
|
| - void OnGetItem(int64 storage_area_id, const string16& key,
|
| - IPC::Message* reply_msg);
|
| - void OnSetItem(int64 storage_area_id, const string16& key,
|
| - const string16& value, const GURL& url,
|
| - IPC::Message* reply_msg);
|
| - void OnRemoveItem(int64 storage_area_id, const string16& key,
|
| - const GURL& url, IPC::Message* reply_msg);
|
| - void OnClear(int64 storage_area_id, const GURL& url, IPC::Message* reply_msg);
|
| -
|
| - // WebKit thread half of OnStorageAreaId
|
| - void OnStorageAreaIdWebKit(
|
| - int64 namespace_id, const string16& origin, IPC::Message* reply_msg,
|
| - HostContentSettingsMap* host_context_settings_map);
|
| -
|
| - // Only call on the IO thread.
|
| - void OnStorageEvent(const ViewMsg_DOMStorageEvent_Params& params);
|
| -
|
| - // A shortcut for accessing our context.
|
| - DOMStorageContext* Context() {
|
| - return webkit_context_->dom_storage_context();
|
| - }
|
| -
|
| - // Use whenever there's a chance OnStorageEvent will be called.
|
| - class ScopedStorageEventContext {
|
| - public:
|
| - ScopedStorageEventContext(DOMStorageDispatcherHost* dispatcher_host,
|
| - const GURL* url);
|
| - ~ScopedStorageEventContext();
|
| - };
|
| -
|
| - // Only access on the WebKit thread! Used for storage events.
|
| - static DOMStorageDispatcherHost* storage_event_host_;
|
| - static const GURL* storage_event_url_;
|
| -
|
| - // Data shared between renderer processes with the same profile.
|
| - scoped_refptr<WebKitContext> webkit_context_;
|
| -
|
| - // Only set and use on the IO thread.
|
| - ResourceMessageFilter* resource_message_filter_;
|
| -
|
| - // If we get a corrupt message from a renderer, we need to kill it using this
|
| - // handle.
|
| - base::ProcessHandle process_handle_;
|
| -
|
| - // Used to dispatch messages to the correct view host.
|
| - int process_id_;
|
| -
|
| - DISALLOW_IMPLICIT_CONSTRUCTORS(DOMStorageDispatcherHost);
|
| -};
|
| -
|
| -#endif // CHROME_BROWSER_IN_PROCESS_WEBKIT_DOM_STORAGE_DISPATCHER_HOST_H_
|
|
|