diff options
author | jam <jam@chromium.org> | 2016-03-15 09:17:09 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-03-15 16:18:48 +0000 |
commit | 3643404f71aa094be5ab2453d6b01a1ab2c1b97b (patch) | |
tree | 00bc7490bce9e0e0429d3f70ae8ac8969a19e570 | |
parent | e3045853929c701a45b7ec8e203f5c1db1d73db6 (diff) | |
download | chromium_src-3643404f71aa094be5ab2453d6b01a1ab2c1b97b.zip chromium_src-3643404f71aa094be5ab2453d6b01a1ab2c1b97b.tar.gz chromium_src-3643404f71aa094be5ab2453d6b01a1ab2c1b97b.tar.bz2 |
Switch StoragePartitionService interface to use url::Origin instead of mojo string.
BUG=586194
Review URL: https://codereview.chromium.org/1798113002
Cr-Commit-Position: refs/heads/master@{#381229}
-rw-r--r-- | content/browser/dom_storage/dom_storage_context_wrapper.cc | 8 | ||||
-rw-r--r-- | content/browser/dom_storage/dom_storage_context_wrapper.h | 7 | ||||
-rw-r--r-- | content/browser/storage_partition_impl.cc | 2 | ||||
-rw-r--r-- | content/browser/storage_partition_impl.h | 2 | ||||
-rw-r--r-- | content/common/BUILD.gn | 3 | ||||
-rw-r--r-- | content/common/storage_partition_service.mojom | 3 | ||||
-rw-r--r-- | content/content_common_mojo_bindings.gyp | 7 | ||||
-rw-r--r-- | content/renderer/dom_storage/local_storage_cached_area.cc | 2 | ||||
-rw-r--r-- | mojo/public/tools/bindings/mojom.gni | 2 |
9 files changed, 24 insertions, 12 deletions
diff --git a/content/browser/dom_storage/dom_storage_context_wrapper.cc b/content/browser/dom_storage/dom_storage_context_wrapper.cc index d028d6f..1bbe8af 100644 --- a/content/browser/dom_storage/dom_storage_context_wrapper.cc +++ b/content/browser/dom_storage/dom_storage_context_wrapper.cc @@ -168,14 +168,14 @@ void DOMStorageContextWrapper::Flush() { } void DOMStorageContextWrapper::OpenLocalStorage( - const mojo::String& origin, + const url::Origin& origin, mojo::InterfaceRequest<LevelDBWrapper> request) { if (level_db_wrappers_.find(origin) == level_db_wrappers_.end()) { level_db_wrappers_[origin] = make_scoped_ptr(new LevelDBWrapperImpl( - origin, + origin.Serialize(), base::Bind(&DOMStorageContextWrapper::LevelDBWrapperImplHasNoBindings, base::Unretained(this), - origin.get()))); + origin))); } // TODO(jam): call LevelDB service (once per this object) to open the database // for LocalStorage and keep a pointer to it in this class. Then keep a map @@ -186,7 +186,7 @@ void DOMStorageContextWrapper::OpenLocalStorage( } void DOMStorageContextWrapper::LevelDBWrapperImplHasNoBindings( - const std::string& origin) { + const url::Origin& origin) { DCHECK(level_db_wrappers_.find(origin) != level_db_wrappers_.end()); level_db_wrappers_.erase(origin); } diff --git a/content/browser/dom_storage/dom_storage_context_wrapper.h b/content/browser/dom_storage/dom_storage_context_wrapper.h index b16b723..7ec0899 100644 --- a/content/browser/dom_storage/dom_storage_context_wrapper.h +++ b/content/browser/dom_storage/dom_storage_context_wrapper.h @@ -13,6 +13,7 @@ #include "content/common/content_export.h" #include "content/common/storage_partition_service.mojom.h" #include "content/public/browser/dom_storage_context.h" +#include "url/origin.h" namespace base { class FilePath; @@ -63,7 +64,7 @@ class CONTENT_EXPORT DOMStorageContextWrapper : // See StoragePartitionService interface. void OpenLocalStorage( - const mojo::String& origin, + const url::Origin& origin, mojo::InterfaceRequest<LevelDBWrapper> request); private: @@ -74,12 +75,12 @@ class CONTENT_EXPORT DOMStorageContextWrapper : ~DOMStorageContextWrapper() override; DOMStorageContextImpl* context() const { return context_.get(); } - void LevelDBWrapperImplHasNoBindings(const std::string& origin); + void LevelDBWrapperImplHasNoBindings(const url::Origin& origin); // Used for mojo-based LocalStorage implementation (behind // --mojo-local-storage for now). Maps between an origin and its prefixed // LevelDB view. - std::map<std::string, scoped_ptr<LevelDBWrapperImpl>> level_db_wrappers_; + std::map<url::Origin, scoped_ptr<LevelDBWrapperImpl>> level_db_wrappers_; scoped_refptr<DOMStorageContextImpl> context_; diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage_partition_impl.cc index 52497c9..7a9b90e 100644 --- a/content/browser/storage_partition_impl.cc +++ b/content/browser/storage_partition_impl.cc @@ -591,7 +591,7 @@ BackgroundSyncContextImpl* StoragePartitionImpl::GetBackgroundSyncContext() { } void StoragePartitionImpl::OpenLocalStorage( - const mojo::String& origin, + const url::Origin& origin, mojo::InterfaceRequest<LevelDBWrapper> request) { dom_storage_context_->OpenLocalStorage(origin, std::move(request)); } diff --git a/content/browser/storage_partition_impl.h b/content/browser/storage_partition_impl.h index de27bc8..d4bb809 100644 --- a/content/browser/storage_partition_impl.h +++ b/content/browser/storage_partition_impl.h @@ -66,7 +66,7 @@ class StoragePartitionImpl : public StoragePartition, // StoragePartitionService interface. void OpenLocalStorage( - const mojo::String& origin, + const url::Origin& origin, mojo::InterfaceRequest<LevelDBWrapper> request) override; void ClearDataForOrigin(uint32_t remove_mask, diff --git a/content/common/BUILD.gn b/content/common/BUILD.gn index c735b88..0a860a6 100644 --- a/content/common/BUILD.gn +++ b/content/common/BUILD.gn @@ -540,6 +540,9 @@ mojom("mojo_bindings") { import_dirs = [ "//mojo/services" ] + typemaps = [ "//url/mojo/origin.typemap" ] + typemap_deps = [ "//url/mojo:url_mojom" ] + public_deps = [ "//components/leveldb/public/interfaces", "//components/mus/public/interfaces", diff --git a/content/common/storage_partition_service.mojom b/content/common/storage_partition_service.mojom index 02c7283..7445284 100644 --- a/content/common/storage_partition_service.mojom +++ b/content/common/storage_partition_service.mojom @@ -5,8 +5,9 @@ module content; import "content/common/leveldb_wrapper.mojom"; +import "url/mojo/origin.mojom"; // Returns services related to the current storage partition. interface StoragePartitionService { - OpenLocalStorage(string origin, LevelDBWrapper& database); + OpenLocalStorage(url.mojom.Origin origin, LevelDBWrapper& database); }; diff --git a/content/content_common_mojo_bindings.gyp b/content/content_common_mojo_bindings.gyp index 6e5aade..d43306a 100644 --- a/content/content_common_mojo_bindings.gyp +++ b/content/content_common_mojo_bindings.gyp @@ -9,6 +9,9 @@ 'target_name': 'content_common_mojo_bindings_mojom', 'type': 'none', 'variables': { + 'mojom_extra_generator_args': [ + '--typemap', '<(DEPTH)/url/mojo/origin.typemap', + ], 'mojom_files': [ # NOTE: Sources duplicated in //content/common/BUILD.gn:mojo_bindings. 'common/application_setup.mojom', @@ -40,6 +43,10 @@ '../mojo/mojo_public.gyp:mojo_cpp_bindings', '../skia/skia.gyp:skia_mojo', '../ui/mojo/geometry/mojo_bindings.gyp:mojo_geometry_bindings', + '../url/url.gyp:url_interfaces_mojom', + ], + 'export_dependent_settings': [ + '../url/url.gyp:url_interfaces_mojom', ], 'includes': [ '../mojo/mojom_bindings_generator_explicit.gypi' ], }, diff --git a/content/renderer/dom_storage/local_storage_cached_area.cc b/content/renderer/dom_storage/local_storage_cached_area.cc index 1c3b2e2..45336e2 100644 --- a/content/renderer/dom_storage/local_storage_cached_area.cc +++ b/content/renderer/dom_storage/local_storage_cached_area.cc @@ -16,7 +16,7 @@ LocalStorageCachedArea::LocalStorageCachedArea( : loaded_(false), origin_(origin), binding_(this), cached_areas_(cached_areas) { storage_partition_service->OpenLocalStorage( - origin_.Serialize(), mojo::GetProxy(&leveldb_)); + origin_, mojo::GetProxy(&leveldb_)); } LocalStorageCachedArea::~LocalStorageCachedArea() { diff --git a/mojo/public/tools/bindings/mojom.gni b/mojo/public/tools/bindings/mojom.gni index 9ff1af1..fb31385 100644 --- a/mojo/public/tools/bindings/mojom.gni +++ b/mojo/public/tools/bindings/mojom.gni @@ -258,7 +258,7 @@ template("mojom") { } } - if (is_android && !defined(invoker.variant)) { + if (is_android && !defined(invoker.variant) && !defined(invoker.typemaps)) { import("//build/config/android/rules.gni") java_srcjar_target_name = target_name + "_java_sources" |