Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(349)

Unified Diff: chrome/browser/sync/profile_sync_components_factory_impl.cc

Issue 334713008: Use AttachmentUploadImpl instead of FakeAttachmentUploader. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Apply CR feedback from tim. Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/sync/profile_sync_components_factory_impl.cc
diff --git a/chrome/browser/sync/profile_sync_components_factory_impl.cc b/chrome/browser/sync/profile_sync_components_factory_impl.cc
index 9624fe502411fa25c9687193e70479927d9108a4..ed8076d13e262c54ab3988e06a37bd8138d9d806 100644
--- a/chrome/browser/sync/profile_sync_components_factory_impl.cc
+++ b/chrome/browser/sync/profile_sync_components_factory_impl.cc
@@ -60,12 +60,14 @@
#include "components/sync_driver/ui_data_type_controller.h"
#include "content/public/browser/browser_thread.h"
#include "extensions/browser/extension_system.h"
+#include "google_apis/gaia/oauth2_token_service_request.h"
+#include "net/url_request/url_request_context_getter.h"
#include "sync/api/attachments/attachment_service.h"
#include "sync/api/attachments/attachment_service_impl.h"
#include "sync/api/syncable_service.h"
+#include "sync/internal_api/public/attachments/attachment_uploader_impl.h"
#include "sync/internal_api/public/attachments/fake_attachment_downloader.h"
#include "sync/internal_api/public/attachments/fake_attachment_store.h"
-#include "sync/internal_api/public/attachments/fake_attachment_uploader.h"
#if defined(ENABLE_EXTENSIONS)
#include "chrome/browser/extensions/api/storage/settings_sync_util.h"
@@ -121,6 +123,8 @@ using content::BrowserThread;
namespace {
+const char kAttachmentsPath[] = "/attachments/";
+
syncer::ModelTypeSet GetDisabledTypesFromCommandLine(
const CommandLine& command_line) {
syncer::ModelTypeSet disabled_types;
@@ -139,17 +143,34 @@ syncer::ModelTypeSet GetEnabledTypesFromCommandLine(
return enabled_types;
}
+// Returns the base URL for attachments.
+std::string GetSyncServiceAttachmentsURL(const GURL& sync_service_url) {
+ return sync_service_url.spec() + kAttachmentsPath;
+}
+
} // namespace
ProfileSyncComponentsFactoryImpl::ProfileSyncComponentsFactoryImpl(
- Profile* profile, CommandLine* command_line)
+ Profile* profile,
+ CommandLine* command_line,
+ const GURL& sync_service_url,
+ const std::string& account_id,
+ const OAuth2TokenService::ScopeSet& scope_set,
+ OAuth2TokenService* token_service,
+ net::URLRequestContextGetter* url_request_context_getter)
: profile_(profile),
command_line_(command_line),
extension_system_(extensions::ExtensionSystem::Get(profile)),
- web_data_service_(
- WebDataServiceFactory::GetAutofillWebDataForProfile(
- profile_, Profile::EXPLICIT_ACCESS)),
+ web_data_service_(WebDataServiceFactory::GetAutofillWebDataForProfile(
+ profile_, Profile::EXPLICIT_ACCESS)),
+ sync_service_url_(sync_service_url),
+ account_id_(account_id),
+ scope_set_(scope_set),
+ token_service_(token_service),
+ url_request_context_getter_(url_request_context_getter),
weak_factory_(this) {
+ DCHECK(token_service_);
+ DCHECK(url_request_context_getter_);
}
ProfileSyncComponentsFactoryImpl::~ProfileSyncComponentsFactoryImpl() {
@@ -576,14 +597,62 @@ base::WeakPtr<syncer::SyncableService> ProfileSyncComponentsFactoryImpl::
}
}
+class TokenServiceProvider
+ : public OAuth2TokenServiceRequest::TokenServiceProvider {
+ public:
+ TokenServiceProvider(
+ const scoped_refptr<base::SingleThreadTaskRunner>& task_runner,
+ OAuth2TokenService* token_service);
+ virtual ~TokenServiceProvider();
+
+ // OAuth2TokenServiceRequest::TokenServiceProvider implementation.
+ virtual scoped_refptr<base::SingleThreadTaskRunner>
+ GetTokenServiceTaskRunner() OVERRIDE;
+ virtual OAuth2TokenService* GetTokenService() OVERRIDE;
+
+ private:
+ scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
+ OAuth2TokenService* token_service_;
+};
+
+TokenServiceProvider::TokenServiceProvider(
+ const scoped_refptr<base::SingleThreadTaskRunner>& task_runner,
+ OAuth2TokenService* token_service)
+ : task_runner_(task_runner), token_service_(token_service) {
+}
+
+TokenServiceProvider::~TokenServiceProvider() {
+}
+
+scoped_refptr<base::SingleThreadTaskRunner>
+TokenServiceProvider::GetTokenServiceTaskRunner() {
+ return task_runner_;
+}
+
+OAuth2TokenService* TokenServiceProvider::GetTokenService() {
+ return token_service_;
+}
+
scoped_ptr<syncer::AttachmentService>
ProfileSyncComponentsFactoryImpl::CreateAttachmentService(
syncer::AttachmentService::Delegate* delegate) {
- // TODO(maniscalco): Use a shared (one per profile) thread-safe instances of
+ std::string url_prefix = GetSyncServiceAttachmentsURL(sync_service_url_);
+ scoped_ptr<OAuth2TokenServiceRequest::TokenServiceProvider>
+ token_service_provider(new TokenServiceProvider(
+ content::BrowserThread::GetMessageLoopProxyForThread(
+ content::BrowserThread::UI),
+ token_service_));
+
+ // TODO(maniscalco): Use shared (one per profile) thread-safe instances of
// AttachmentUploader and AttachmentDownloader instead of creating a new one
// per AttachmentService (bug 369536).
scoped_ptr<syncer::AttachmentUploader> attachment_uploader(
- new syncer::FakeAttachmentUploader);
+ new syncer::AttachmentUploaderImpl(url_prefix,
+ url_request_context_getter_,
+ account_id_,
+ scope_set_,
+ token_service_provider.Pass()));
+
scoped_ptr<syncer::AttachmentDownloader> attachment_downloader(
new syncer::FakeAttachmentDownloader());

Powered by Google App Engine
This is Rietveld 408576698