Index: content/browser/storage_partition_impl.cc |
diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage_partition_impl.cc |
index 1e262553c703d7a880710e853456630b1721cada..86b1520f0fe41d36c29f3cc49498537263d3165f 100644 |
--- a/content/browser/storage_partition_impl.cc |
+++ b/content/browser/storage_partition_impl.cc |
@@ -8,6 +8,7 @@ |
#include "base/strings/utf_string_conversions.h" |
#include "content/browser/browser_main_loop.h" |
#include "content/browser/fileapi/browser_file_system_helper.h" |
+#include "content/browser/geofencing/geofencing_manager.h" |
#include "content/browser/gpu/shader_disk_cache.h" |
#include "content/common/dom_storage/dom_storage_types.h" |
#include "content/public/browser/browser_context.h" |
@@ -363,7 +364,8 @@ StoragePartitionImpl::StoragePartitionImpl( |
IndexedDBContextImpl* indexed_db_context, |
ServiceWorkerContextWrapper* service_worker_context, |
WebRTCIdentityStore* webrtc_identity_store, |
- storage::SpecialStoragePolicy* special_storage_policy) |
+ storage::SpecialStoragePolicy* special_storage_policy, |
+ GeofencingManager* geofencing_manager) |
: partition_path_(partition_path), |
quota_manager_(quota_manager), |
appcache_service_(appcache_service), |
@@ -373,7 +375,8 @@ StoragePartitionImpl::StoragePartitionImpl( |
indexed_db_context_(indexed_db_context), |
service_worker_context_(service_worker_context), |
webrtc_identity_store_(webrtc_identity_store), |
- special_storage_policy_(special_storage_policy) { |
+ special_storage_policy_(special_storage_policy), |
+ geofencing_manager_(geofencing_manager) { |
} |
StoragePartitionImpl::~StoragePartitionImpl() { |
@@ -394,6 +397,9 @@ StoragePartitionImpl::~StoragePartitionImpl() { |
if (GetServiceWorkerContext()) |
GetServiceWorkerContext()->Shutdown(); |
+ |
+ if (GetGeofencingManager()) |
+ GetGeofencingManager()->Shutdown(); |
} |
// TODO(ajwong): Break the direct dependency on |context|. We only |
@@ -465,6 +471,10 @@ StoragePartitionImpl* StoragePartitionImpl::Create( |
scoped_refptr<storage::SpecialStoragePolicy> special_storage_policy( |
context->GetSpecialStoragePolicy()); |
+ scoped_refptr<GeofencingManager> geofencing_manager = |
+ new GeofencingManager(service_worker_context); |
+ geofencing_manager->Init(); |
+ |
return new StoragePartitionImpl(partition_path, |
quota_manager.get(), |
appcache_service.get(), |
@@ -474,7 +484,8 @@ StoragePartitionImpl* StoragePartitionImpl::Create( |
indexed_db_context.get(), |
service_worker_context.get(), |
webrtc_identity_store.get(), |
- special_storage_policy.get()); |
+ special_storage_policy.get(), |
+ geofencing_manager.get()); |
} |
base::FilePath StoragePartitionImpl::GetPath() { |
@@ -518,6 +529,10 @@ ServiceWorkerContextWrapper* StoragePartitionImpl::GetServiceWorkerContext() { |
return service_worker_context_.get(); |
} |
+GeofencingManager* StoragePartitionImpl::GetGeofencingManager() { |
+ return geofencing_manager_.get(); |
+} |
+ |
void StoragePartitionImpl::ClearDataImpl( |
uint32 remove_mask, |
uint32 quota_storage_remove_mask, |