diff options
author | cpu@chromium.org <cpu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-06-08 12:33:46 +0000 |
---|---|---|
committer | cpu@chromium.org <cpu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-06-08 12:33:46 +0000 |
commit | e4d0ed2731bd622c36ded53ae2c9957f6bfc4241 (patch) | |
tree | 8eb674b89678c38605c52f5e4ff6125100db8ab9 /components/webdata | |
parent | 99dbb184ea5182e07a738a9c901494ccb970d01f (diff) | |
download | chromium_src-e4d0ed2731bd622c36ded53ae2c9957f6bfc4241.zip chromium_src-e4d0ed2731bd622c36ded53ae2c9957f6bfc4241.tar.gz chromium_src-e4d0ed2731bd622c36ded53ae2c9957f6bfc4241.tar.bz2 |
Revert 205038 "Un-refcount AutofillWebData and TokenWebData"
Not sure if this is the culprit but lots of bots are red
unittest runs in linux mac and chromeos are not completing (timeout)
no output. Only for CL common to all, this is one.
I'll unrevert if it does not help.
> Un-refcount AutofillWebData and TokenWebData
>
> depends on https://codereview.chromium.org/15927029/
>
> BUG=230920
>
> Review URL: https://chromiumcodereview.appspot.com/16154031
TBR=caitkp@chromium.org
Review URL: https://codereview.chromium.org/15937020
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@205055 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'components/webdata')
-rw-r--r-- | components/webdata/common/web_data_service_base.h | 17 | ||||
-rw-r--r-- | components/webdata/common/web_data_service_test_util.cc | 12 | ||||
-rw-r--r-- | components/webdata/common/web_data_service_test_util.h | 13 |
3 files changed, 25 insertions, 17 deletions
diff --git a/components/webdata/common/web_data_service_base.h b/components/webdata/common/web_data_service_base.h index 0510184..11d5d3e 100644 --- a/components/webdata/common/web_data_service_base.h +++ b/components/webdata/common/web_data_service_base.h @@ -23,7 +23,9 @@ class Thread; } // Base for WebDataService class hierarchy. -class WEBDATA_EXPORT WebDataServiceBase { +class WEBDATA_EXPORT WebDataServiceBase + : public base::RefCountedThreadSafe<WebDataServiceBase, + content::BrowserThread::DeleteOnUIThread> { public: // All requests return an opaque handle of the following type. typedef int Handle; @@ -46,8 +48,6 @@ class WEBDATA_EXPORT WebDataServiceBase { WebDataServiceBase(scoped_refptr<WebDatabaseService> wdbs, const ProfileErrorCallback& callback); - virtual ~WebDataServiceBase(); - // Cancel any pending request. You need to call this method if your // WebDataServiceConsumer is about to be deleted. virtual void CancelRequest(Handle h); @@ -88,13 +88,20 @@ class WEBDATA_EXPORT WebDataServiceBase { virtual WebDatabase* GetDatabase(); protected: + virtual ~WebDataServiceBase(); + // Our database service. scoped_refptr<WebDatabaseService> wdbs_; private: - ProfileErrorCallback profile_error_callback_; + friend struct content::BrowserThread::DeleteOnThread< + content::BrowserThread::UI>; + friend class base::DeleteHelper<WebDataServiceBase>; + // We have to friend RCTS<> so WIN shared-lib build is happy (crbug/112250). + friend class base::RefCountedThreadSafe<WebDataServiceBase, + content::BrowserThread::DeleteOnUIThread>; - DISALLOW_COPY_AND_ASSIGN(WebDataServiceBase); + ProfileErrorCallback profile_error_callback_; }; #endif // COMPONENTS_WEBDATA_COMMON_WEB_DATA_SERVICE_BASE_H_ diff --git a/components/webdata/common/web_data_service_test_util.cc b/components/webdata/common/web_data_service_test_util.cc index 0ece6a4..2720721 100644 --- a/components/webdata/common/web_data_service_test_util.cc +++ b/components/webdata/common/web_data_service_test_util.cc @@ -22,8 +22,8 @@ void MockWebDataServiceWrapperBase::Shutdown() { // all the webdatas in. MockWebDataServiceWrapper::MockWebDataServiceWrapper( scoped_refptr<WebDataService> fake_service, - AutofillWebDataService* fake_autofill, - TokenWebData* fake_token) + scoped_refptr<AutofillWebDataService> fake_autofill, + scoped_refptr<TokenWebData> fake_token) : fake_autofill_web_data_(fake_autofill), fake_token_web_data_(fake_token), fake_web_data_(fake_service) { @@ -32,13 +32,13 @@ MockWebDataServiceWrapper::MockWebDataServiceWrapper( MockWebDataServiceWrapper::~MockWebDataServiceWrapper() { } -AutofillWebDataService* +scoped_refptr<AutofillWebDataService> MockWebDataServiceWrapper::GetAutofillWebData() { - return fake_autofill_web_data_.get(); + return fake_autofill_web_data_; } -TokenWebData* MockWebDataServiceWrapper::GetTokenWebData() { - return fake_token_web_data_.get(); +scoped_refptr<TokenWebData> MockWebDataServiceWrapper::GetTokenWebData() { + return fake_token_web_data_; } scoped_refptr<WebDataService> MockWebDataServiceWrapper::GetWebData() { diff --git a/components/webdata/common/web_data_service_test_util.h b/components/webdata/common/web_data_service_test_util.h index 6fb3b63..4f0f6e5 100644 --- a/components/webdata/common/web_data_service_test_util.h +++ b/components/webdata/common/web_data_service_test_util.h @@ -58,20 +58,21 @@ class MockWebDataServiceWrapper : public MockWebDataServiceWrapperBase { public: MockWebDataServiceWrapper( scoped_refptr<WebDataService> fake_service, - autofill::AutofillWebDataService* fake_autofill, - TokenWebData* fake_token); + scoped_refptr<autofill::AutofillWebDataService> fake_autofill, + scoped_refptr<TokenWebData> fake_token); virtual ~MockWebDataServiceWrapper(); - virtual autofill::AutofillWebDataService* GetAutofillWebData() OVERRIDE; + virtual scoped_refptr<autofill::AutofillWebDataService> + GetAutofillWebData() OVERRIDE; - virtual TokenWebData* GetTokenWebData() OVERRIDE; + virtual scoped_refptr<TokenWebData> GetTokenWebData() OVERRIDE; virtual scoped_refptr<WebDataService> GetWebData() OVERRIDE; protected: - scoped_ptr<autofill::AutofillWebDataService> fake_autofill_web_data_; - scoped_ptr<TokenWebData> fake_token_web_data_; + scoped_refptr<autofill::AutofillWebDataService> fake_autofill_web_data_; + scoped_refptr<TokenWebData> fake_token_web_data_; scoped_refptr<WebDataService> fake_web_data_; private: |