summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjam <jam@chromium.org>2016-03-15 09:17:09 -0700
committerCommit bot <commit-bot@chromium.org>2016-03-15 16:18:48 +0000
commit3643404f71aa094be5ab2453d6b01a1ab2c1b97b (patch)
tree00bc7490bce9e0e0429d3f70ae8ac8969a19e570
parente3045853929c701a45b7ec8e203f5c1db1d73db6 (diff)
downloadchromium_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.cc8
-rw-r--r--content/browser/dom_storage/dom_storage_context_wrapper.h7
-rw-r--r--content/browser/storage_partition_impl.cc2
-rw-r--r--content/browser/storage_partition_impl.h2
-rw-r--r--content/common/BUILD.gn3
-rw-r--r--content/common/storage_partition_service.mojom3
-rw-r--r--content/content_common_mojo_bindings.gyp7
-rw-r--r--content/renderer/dom_storage/local_storage_cached_area.cc2
-rw-r--r--mojo/public/tools/bindings/mojom.gni2
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"