From 4c3a235850730f45ee734eef73e79fe386826950 Mon Sep 17 00:00:00 2001 From: "ajwong@chromium.org" <ajwong@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> Date: Sat, 18 Aug 2012 08:54:34 +0000 Subject: Move StoragePartition into content/public and remove BrowserContext::GetDOMStorageContext(). Eventually all the storage context accessors will be removed from BrowserContext. Instead, users should retrieve the storage context from the StoragePartition. This also changes RenderProcessHost to take in a StoragePartition removing the need for a re-lookup its storage contexts. BUG=85121,143486 Review URL: https://chromiumcodereview.appspot.com/10837230 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@152251 0039d316-1c4b-4281-b951-d872f2087c98 --- content/browser/storage_partition_impl_map.h | 50 ++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 content/browser/storage_partition_impl_map.h (limited to 'content/browser/storage_partition_impl_map.h') diff --git a/content/browser/storage_partition_impl_map.h b/content/browser/storage_partition_impl_map.h new file mode 100644 index 0000000..d4a66e7 --- /dev/null +++ b/content/browser/storage_partition_impl_map.h @@ -0,0 +1,50 @@ +// 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. + +#ifndef CONTENT_BROWSER_STORAGE_PARTITION_MAP_H_ +#define CONTENT_BROWSER_STORAGE_PARTITION_MAP_H_ + +#include <map> +#include <string> + +#include "base/callback_forward.h" +#include "base/supports_user_data.h" +#include "content/public/browser/browser_context.h" + +class FilePath; + +namespace content { + +class BrowserContext; +class StoragePartitionImpl; + +// A std::string to StoragePartition map for use with SupportsUserData APIs. +class StoragePartitionImplMap : public base::SupportsUserData::Data { + public: + explicit StoragePartitionImplMap(BrowserContext* browser_context); + + virtual ~StoragePartitionImplMap(); + + // This map retains ownership of the returned StoragePartition objects. + StoragePartitionImpl* Get(const std::string& partition_id); + + void ForEach(const BrowserContext::StoragePartitionCallback& callback); + + private: + // This must always be called *after* |partition| has been added to the + // partitions_. + // + // TODO(ajwong): Is there a way to make it so that Get()'s implementation + // doesn't need to be aware of this ordering? Revisit when refactoring + // ResourceContext and AppCache to respect storage partitions. + void PostCreateInitialization(StoragePartitionImpl* partition, + const FilePath& partition_path); + + BrowserContext* browser_context_; // Not Owned. + std::map<std::string, StoragePartitionImpl*> partitions_; +}; + +} // namespace content + +#endif // CONTENT_BROWSER_STORAGE_PARTITION_MAP_H_ -- cgit v1.1