| Index: webkit/tools/test_shell/simple_dom_storage_system.cc
 | 
| diff --git a/webkit/tools/test_shell/simple_dom_storage_system.cc b/webkit/tools/test_shell/simple_dom_storage_system.cc
 | 
| deleted file mode 100644
 | 
| index 1acdc7bae9bb85de5ca55e20909005d4f52173f4..0000000000000000000000000000000000000000
 | 
| --- a/webkit/tools/test_shell/simple_dom_storage_system.cc
 | 
| +++ /dev/null
 | 
| @@ -1,286 +0,0 @@
 | 
| -// Copyright (c) 2012 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.
 | 
| -
 | 
| -#include "webkit/tools/test_shell/simple_dom_storage_system.h"
 | 
| -
 | 
| -#include "base/auto_reset.h"
 | 
| -#include "googleurl/src/gurl.h"
 | 
| -#include "third_party/WebKit/public/platform/WebStorageArea.h"
 | 
| -#include "third_party/WebKit/public/platform/WebStorageNamespace.h"
 | 
| -#include "third_party/WebKit/public/platform/WebURL.h"
 | 
| -#include "third_party/WebKit/Source/WebKit/chromium/public/WebStorageEventDispatcher.h"
 | 
| -#include "webkit/browser/database/database_util.h"
 | 
| -#include "webkit/browser/dom_storage/dom_storage_area.h"
 | 
| -#include "webkit/browser/dom_storage/dom_storage_host.h"
 | 
| -
 | 
| -using dom_storage::DomStorageContext;
 | 
| -using dom_storage::DomStorageHost;
 | 
| -using dom_storage::DomStorageSession;
 | 
| -using webkit_database::DatabaseUtil;
 | 
| -using WebKit::WebStorageArea;
 | 
| -using WebKit::WebStorageNamespace;
 | 
| -using WebKit::WebStorageEventDispatcher;
 | 
| -using WebKit::WebString;
 | 
| -using WebKit::WebURL;
 | 
| -
 | 
| -namespace {
 | 
| -const int kInvalidNamespaceId = -1;
 | 
| -}
 | 
| -
 | 
| -class SimpleDomStorageSystem::NamespaceImpl : public WebStorageNamespace {
 | 
| - public:
 | 
| -  explicit NamespaceImpl(const base::WeakPtr<SimpleDomStorageSystem>& parent);
 | 
| -  NamespaceImpl(const base::WeakPtr<SimpleDomStorageSystem>& parent,
 | 
| -                int session_namespace_id);
 | 
| -  virtual ~NamespaceImpl();
 | 
| -  virtual WebStorageArea* createStorageArea(const WebString& origin) OVERRIDE;
 | 
| -  virtual WebStorageNamespace* copy() OVERRIDE;
 | 
| -  virtual bool isSameNamespace(const WebStorageNamespace&) const OVERRIDE;
 | 
| -
 | 
| - private:
 | 
| -  DomStorageContext* Context() {
 | 
| -    if (!parent_.get())
 | 
| -      return NULL;
 | 
| -    return parent_->context_.get();
 | 
| -  }
 | 
| -
 | 
| -  base::WeakPtr<SimpleDomStorageSystem> parent_;
 | 
| -  int namespace_id_;
 | 
| -};
 | 
| -
 | 
| -class SimpleDomStorageSystem::AreaImpl : public WebStorageArea {
 | 
| - public:
 | 
| -  AreaImpl(const base::WeakPtr<SimpleDomStorageSystem>& parent,
 | 
| -          int namespace_id, const GURL& origin);
 | 
| -  virtual ~AreaImpl();
 | 
| -  virtual unsigned length() OVERRIDE;
 | 
| -  virtual WebString key(unsigned index) OVERRIDE;
 | 
| -  virtual WebString getItem(const WebString& key) OVERRIDE;
 | 
| -  virtual void setItem(const WebString& key, const WebString& newValue,
 | 
| -                       const WebURL& pageUrl, Result&) OVERRIDE;
 | 
| -  virtual void removeItem(const WebString& key,
 | 
| -                          const WebURL& pageUrl) OVERRIDE;
 | 
| -  virtual void clear(const WebURL& pageUrl) OVERRIDE;
 | 
| -
 | 
| - private:
 | 
| -  DomStorageHost* Host() {
 | 
| -    if (!parent_.get())
 | 
| -      return NULL;
 | 
| -    return parent_->host_.get();
 | 
| -  }
 | 
| -
 | 
| -  base::WeakPtr<SimpleDomStorageSystem> parent_;
 | 
| -  int connection_id_;
 | 
| -};
 | 
| -
 | 
| -// NamespaceImpl -----------------------------
 | 
| -
 | 
| -SimpleDomStorageSystem::NamespaceImpl::NamespaceImpl(
 | 
| -    const base::WeakPtr<SimpleDomStorageSystem>& parent)
 | 
| -    : parent_(parent),
 | 
| -      namespace_id_(dom_storage::kLocalStorageNamespaceId) {
 | 
| -}
 | 
| -
 | 
| -SimpleDomStorageSystem::NamespaceImpl::NamespaceImpl(
 | 
| -    const base::WeakPtr<SimpleDomStorageSystem>& parent,
 | 
| -    int session_namespace_id)
 | 
| -    : parent_(parent),
 | 
| -      namespace_id_(session_namespace_id) {
 | 
| -}
 | 
| -
 | 
| -SimpleDomStorageSystem::NamespaceImpl::~NamespaceImpl() {
 | 
| -  if (namespace_id_ == dom_storage::kLocalStorageNamespaceId ||
 | 
| -      namespace_id_ == kInvalidNamespaceId || !Context()) {
 | 
| -    return;
 | 
| -  }
 | 
| -  Context()->DeleteSessionNamespace(namespace_id_, false);
 | 
| -}
 | 
| -
 | 
| -WebStorageArea* SimpleDomStorageSystem::NamespaceImpl::createStorageArea(
 | 
| -    const WebString& origin) {
 | 
| -  return new AreaImpl(parent_, namespace_id_, GURL(origin));
 | 
| -}
 | 
| -
 | 
| -WebStorageNamespace* SimpleDomStorageSystem::NamespaceImpl::copy() {
 | 
| -  DCHECK_NE(dom_storage::kLocalStorageNamespaceId, namespace_id_);
 | 
| -  int new_id = kInvalidNamespaceId;
 | 
| -  if (Context()) {
 | 
| -    new_id = Context()->AllocateSessionId();
 | 
| -    Context()->CloneSessionNamespace(namespace_id_, new_id, std::string());
 | 
| -  }
 | 
| -  return new NamespaceImpl(parent_, new_id);
 | 
| -}
 | 
| -
 | 
| -bool SimpleDomStorageSystem::NamespaceImpl::isSameNamespace(
 | 
| -    const WebStorageNamespace& other) const {
 | 
| -  const NamespaceImpl* other_impl = static_cast<const NamespaceImpl*>(&other);
 | 
| -  return namespace_id_ == other_impl->namespace_id_;
 | 
| -}
 | 
| -
 | 
| -// AreaImpl -----------------------------
 | 
| -
 | 
| -SimpleDomStorageSystem::AreaImpl::AreaImpl(
 | 
| -    const base::WeakPtr<SimpleDomStorageSystem>& parent,
 | 
| -    int namespace_id, const GURL& origin)
 | 
| -    : parent_(parent),
 | 
| -      connection_id_(0) {
 | 
| -  if (Host()) {
 | 
| -    connection_id_ = (parent_->next_connection_id_)++;
 | 
| -    Host()->OpenStorageArea(connection_id_, namespace_id, origin);
 | 
| -  }
 | 
| -}
 | 
| -
 | 
| -SimpleDomStorageSystem::AreaImpl::~AreaImpl() {
 | 
| -  if (Host())
 | 
| -    Host()->CloseStorageArea(connection_id_);
 | 
| -}
 | 
| -
 | 
| -unsigned SimpleDomStorageSystem::AreaImpl::length() {
 | 
| -  if (Host())
 | 
| -    return Host()->GetAreaLength(connection_id_);
 | 
| -  return 0;
 | 
| -}
 | 
| -
 | 
| -WebString SimpleDomStorageSystem::AreaImpl::key(unsigned index) {
 | 
| -  if (Host())
 | 
| -    return Host()->GetAreaKey(connection_id_, index);
 | 
| -  return NullableString16(true);
 | 
| -}
 | 
| -
 | 
| -WebString SimpleDomStorageSystem::AreaImpl::getItem(const WebString& key) {
 | 
| -  if (Host())
 | 
| -    return Host()->GetAreaItem(connection_id_, key);
 | 
| -  return NullableString16(true);
 | 
| -}
 | 
| -
 | 
| -void SimpleDomStorageSystem::AreaImpl::setItem(
 | 
| -    const WebString& key, const WebString& newValue,
 | 
| -    const WebURL& pageUrl, Result& result) {
 | 
| -  result = ResultBlockedByQuota;
 | 
| -  if (!Host())
 | 
| -    return;
 | 
| -
 | 
| -  base::AutoReset<AreaImpl*> auto_reset(&parent_->area_being_processed_, this);
 | 
| -  NullableString16 unused;
 | 
| -  if (!Host()->SetAreaItem(connection_id_, key, newValue, pageUrl,
 | 
| -                           &unused))
 | 
| -    return;
 | 
| -
 | 
| -  result = ResultOK;
 | 
| -}
 | 
| -
 | 
| -void SimpleDomStorageSystem::AreaImpl::removeItem(
 | 
| -    const WebString& key, const WebURL& pageUrl) {
 | 
| -  if (!Host())
 | 
| -    return;
 | 
| -
 | 
| -  base::AutoReset<AreaImpl*> auto_reset(&parent_->area_being_processed_, this);
 | 
| -  base::string16 notused;
 | 
| -  Host()->RemoveAreaItem(connection_id_, key, pageUrl, ¬used);
 | 
| -}
 | 
| -
 | 
| -void SimpleDomStorageSystem::AreaImpl::clear(const WebURL& pageUrl) {
 | 
| -  if (!Host())
 | 
| -    return;
 | 
| -
 | 
| -  base::AutoReset<AreaImpl*> auto_reset(&parent_->area_being_processed_, this);
 | 
| -  Host()->ClearArea(connection_id_, pageUrl);
 | 
| -}
 | 
| -
 | 
| -// SimpleDomStorageSystem -----------------------------
 | 
| -
 | 
| -SimpleDomStorageSystem* SimpleDomStorageSystem::g_instance_;
 | 
| -
 | 
| -SimpleDomStorageSystem::SimpleDomStorageSystem()
 | 
| -    : weak_factory_(this),
 | 
| -      context_(new DomStorageContext(base::FilePath(),
 | 
| -                                     base::FilePath(),
 | 
| -                                     NULL,
 | 
| -                                     NULL)),
 | 
| -      host_(new DomStorageHost(context_.get())),
 | 
| -      area_being_processed_(NULL),
 | 
| -      next_connection_id_(1) {
 | 
| -  DCHECK(!g_instance_);
 | 
| -  g_instance_ = this;
 | 
| -  context_->AddEventObserver(this);
 | 
| -}
 | 
| -
 | 
| -SimpleDomStorageSystem::~SimpleDomStorageSystem() {
 | 
| -  g_instance_ = NULL;
 | 
| -  host_.reset();
 | 
| -  context_->RemoveEventObserver(this);
 | 
| -}
 | 
| -
 | 
| -WebStorageNamespace* SimpleDomStorageSystem::CreateLocalStorageNamespace() {
 | 
| -  return new NamespaceImpl(weak_factory_.GetWeakPtr());
 | 
| -}
 | 
| -
 | 
| -WebStorageNamespace* SimpleDomStorageSystem::CreateSessionStorageNamespace() {
 | 
| -  int id = context_->AllocateSessionId();
 | 
| -  context_->CreateSessionNamespace(id, std::string());
 | 
| -  return new NamespaceImpl(weak_factory_.GetWeakPtr(), id);
 | 
| -}
 | 
| -
 | 
| -void SimpleDomStorageSystem::OnDomStorageItemSet(
 | 
| -    const dom_storage::DomStorageArea* area,
 | 
| -    const base::string16& key,
 | 
| -    const base::string16& new_value,
 | 
| -    const NullableString16& old_value,
 | 
| -    const GURL& page_url) {
 | 
| -  DispatchDomStorageEvent(area, page_url,
 | 
| -                          NullableString16(key, false),
 | 
| -                          NullableString16(new_value, false),
 | 
| -                          old_value);
 | 
| -}
 | 
| -
 | 
| -void SimpleDomStorageSystem::OnDomStorageItemRemoved(
 | 
| -    const dom_storage::DomStorageArea* area,
 | 
| -    const base::string16& key,
 | 
| -    const base::string16& old_value,
 | 
| -    const GURL& page_url) {
 | 
| -  DispatchDomStorageEvent(area, page_url,
 | 
| -                          NullableString16(key, false),
 | 
| -                          NullableString16(true),
 | 
| -                          NullableString16(old_value, false));
 | 
| -}
 | 
| -
 | 
| -void SimpleDomStorageSystem::OnDomStorageAreaCleared(
 | 
| -    const dom_storage::DomStorageArea* area,
 | 
| -    const GURL& page_url) {
 | 
| -  DispatchDomStorageEvent(area, page_url,
 | 
| -                          NullableString16(true),
 | 
| -                          NullableString16(true),
 | 
| -                          NullableString16(true));
 | 
| -}
 | 
| -
 | 
| -void SimpleDomStorageSystem::DispatchDomStorageEvent(
 | 
| -    const dom_storage::DomStorageArea* area,
 | 
| -    const GURL& page_url,
 | 
| -    const NullableString16& key,
 | 
| -    const NullableString16& new_value,
 | 
| -    const NullableString16& old_value) {
 | 
| -  DCHECK(area_being_processed_);
 | 
| -  if (area->namespace_id() == dom_storage::kLocalStorageNamespaceId) {
 | 
| -    WebStorageEventDispatcher::dispatchLocalStorageEvent(
 | 
| -        key,
 | 
| -        old_value,
 | 
| -        new_value,
 | 
| -        area->origin(),
 | 
| -        page_url,
 | 
| -        area_being_processed_,
 | 
| -        true  /* originatedInProcess */);
 | 
| -  } else {
 | 
| -    NamespaceImpl session_namespace_for_event_dispatch(
 | 
| -        base::WeakPtr<SimpleDomStorageSystem>(), area->namespace_id());
 | 
| -    WebStorageEventDispatcher::dispatchSessionStorageEvent(
 | 
| -        key,
 | 
| -        old_value,
 | 
| -        new_value,
 | 
| -        area->origin(),
 | 
| -        page_url,
 | 
| -        session_namespace_for_event_dispatch,
 | 
| -        area_being_processed_,
 | 
| -        true  /* originatedInProcess */);
 | 
| -  }
 | 
| -}
 | 
| 
 |