Initialize DomDistillerStore

Needed as part of setting up the DomDistillerBrowserContextKeyedService.
Distilled articles will be stored in an "Articles" directory in the
user's profile directory.
BUG=288015

Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=235562

NOTRY=true

Review URL: https://codereview.chromium.org/63553009

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@235799 0039d316-1c4b-4281-b951-d872f2087c98
parent 93501684
......@@ -4,11 +4,13 @@
#include "components/dom_distiller/content/dom_distiller_service_factory.h"
#include "base/threading/sequenced_worker_pool.h"
#include "components/browser_context_keyed_service/browser_context_dependency_manager.h"
#include "components/dom_distiller/content/distiller_page_web_contents.h"
#include "components/dom_distiller/core/distiller.h"
#include "components/dom_distiller/core/dom_distiller_store.h"
#include "content/public/browser/browser_context.h"
#include "content/public/browser/browser_thread.h"
namespace dom_distiller {
......@@ -39,15 +41,32 @@ DomDistillerServiceFactory::~DomDistillerServiceFactory() {}
BrowserContextKeyedService* DomDistillerServiceFactory::BuildServiceInstanceFor(
content::BrowserContext* profile) const {
scoped_ptr<DomDistillerStoreInterface> dom_distiller_store;
scoped_refptr<base::SequencedTaskRunner> background_task_runner =
content::BrowserThread::GetBlockingPool()->GetSequencedTaskRunner(
content::BrowserThread::GetBlockingPool()->GetSequenceToken());
scoped_ptr<DomDistillerDatabase> db(
new DomDistillerDatabase(background_task_runner));
base::FilePath database_dir(
profile->GetPath().Append(FILE_PATH_LITERAL("Articles")));
scoped_ptr<DomDistillerStore> dom_distiller_store(
new DomDistillerStore(db.PassAs<DomDistillerDatabaseInterface>(),
database_dir));
scoped_ptr<DistillerPageFactory> distiller_page_factory(
new DistillerPageWebContentsFactory(profile));
scoped_ptr<DistillerURLFetcherFactory> distiller_url_fetcher_factory(
new DistillerURLFetcherFactory(profile->GetRequestContext()));
scoped_ptr<DistillerFactory> distiller_factory(new DistillerFactoryImpl(
distiller_page_factory.Pass(), distiller_url_fetcher_factory.Pass()));
return new DomDistillerContextKeyedService(dom_distiller_store.Pass(),
distiller_factory.Pass());
scoped_ptr<DistillerFactory> distiller_factory(
new DistillerFactoryImpl(distiller_page_factory.Pass(),
distiller_url_fetcher_factory.Pass()));
return new DomDistillerContextKeyedService(
dom_distiller_store.PassAs<DomDistillerStoreInterface>(),
distiller_factory.Pass());
}
content::BrowserContext* DomDistillerServiceFactory::GetBrowserContextToUse(
......
......@@ -65,7 +65,7 @@ class DomDistillerStoreInterface {
// to the other (i.e. non-source) two models.
// TODO(cjhopman): Support deleting entries.
class DomDistillerStore : public syncer::SyncableService,
DomDistillerStoreInterface {
public DomDistillerStoreInterface {
public:
// Creates storage using the given database for local storage. Initializes the
// database with |database_dir|.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment