1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "content/browser/shared_worker/worker_storage_partition.h"
6
7#include <string>
8
9#include "content/browser/appcache/chrome_appcache_service.h"
10#include "content/browser/indexed_db/indexed_db_context_impl.h"
11#include "content/browser/service_worker/service_worker_context_wrapper.h"
12#include "net/url_request/url_request_context_getter.h"
13#include "storage/browser/database/database_tracker.h"
14#include "storage/browser/fileapi/file_system_context.h"
15#include "storage/browser/quota/quota_manager.h"
16
17namespace content {
18
19WorkerStoragePartition::WorkerStoragePartition(
20    net::URLRequestContextGetter* url_request_context,
21    net::URLRequestContextGetter* media_url_request_context,
22    ChromeAppCacheService* appcache_service,
23    storage::QuotaManager* quota_manager,
24    storage::FileSystemContext* filesystem_context,
25    storage::DatabaseTracker* database_tracker,
26    IndexedDBContextImpl* indexed_db_context,
27    ServiceWorkerContextWrapper* service_worker_context)
28    : url_request_context_(url_request_context),
29      media_url_request_context_(media_url_request_context),
30      appcache_service_(appcache_service),
31      quota_manager_(quota_manager),
32      filesystem_context_(filesystem_context),
33      database_tracker_(database_tracker),
34      indexed_db_context_(indexed_db_context),
35      service_worker_context_(service_worker_context) {
36}
37
38WorkerStoragePartition::WorkerStoragePartition(
39    const WorkerStoragePartition& other) {
40  Copy(other);
41}
42
43const WorkerStoragePartition& WorkerStoragePartition::operator=(
44    const WorkerStoragePartition& rhs) {
45  Copy(rhs);
46  return *this;
47}
48
49bool WorkerStoragePartition::Equals(
50    const WorkerStoragePartition& other) const {
51  return url_request_context_.get() == other.url_request_context_.get() &&
52         media_url_request_context_.get() ==
53             other.media_url_request_context_.get() &&
54         appcache_service_.get() == other.appcache_service_.get() &&
55         quota_manager_.get() == other.quota_manager_.get() &&
56         filesystem_context_.get() == other.filesystem_context_.get() &&
57         database_tracker_.get() == other.database_tracker_.get() &&
58         indexed_db_context_.get() == other.indexed_db_context_.get() &&
59         service_worker_context_.get() == other.service_worker_context_.get();
60}
61
62WorkerStoragePartition::~WorkerStoragePartition() {
63}
64
65void WorkerStoragePartition::Copy(const WorkerStoragePartition& other) {
66  url_request_context_ = other.url_request_context_;
67  media_url_request_context_ = other.media_url_request_context_;
68  appcache_service_ = other.appcache_service_;
69  quota_manager_ = other.quota_manager_;
70  filesystem_context_ = other.filesystem_context_;
71  database_tracker_ = other.database_tracker_;
72  indexed_db_context_ = other.indexed_db_context_;
73  service_worker_context_ = other.service_worker_context_;
74}
75
76WorkerStoragePartitionId::WorkerStoragePartitionId(
77    const WorkerStoragePartition& partition)
78    : url_request_context_(partition.url_request_context()),
79      media_url_request_context_(partition.media_url_request_context()),
80      appcache_service_(partition.appcache_service()),
81      quota_manager_(partition.quota_manager()),
82      filesystem_context_(partition.filesystem_context()),
83      database_tracker_(partition.database_tracker()),
84      indexed_db_context_(partition.indexed_db_context()),
85      service_worker_context_(partition.service_worker_context()) {
86}
87
88WorkerStoragePartitionId::~WorkerStoragePartitionId() {
89}
90
91bool WorkerStoragePartitionId::Equals(
92    const WorkerStoragePartitionId& other) const {
93  return url_request_context_ == other.url_request_context_ &&
94         media_url_request_context_ == other.media_url_request_context_ &&
95         appcache_service_ == other.appcache_service_ &&
96         quota_manager_ == other.quota_manager_ &&
97         filesystem_context_ == other.filesystem_context_ &&
98         database_tracker_ == other.database_tracker_ &&
99         indexed_db_context_ == other.indexed_db_context_ &&
100         service_worker_context_ == other.service_worker_context_;
101}
102
103}  // namespace content
104