11320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Copyright 2014 The Chromium Authors. All rights reserved.
21320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Use of this source code is governed by a BSD-style license that can be
31320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// found in the LICENSE file.
41320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/browser/dom_distiller/profile_utils.h"
61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "base/command_line.h"
81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/browser/dom_distiller/dom_distiller_service_factory.h"
91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/browser/dom_distiller/lazy_dom_distiller_service.h"
101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/browser/profiles/profile.h"
111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/common/chrome_switches.h"
121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "components/dom_distiller/content/dom_distiller_viewer_source.h"
131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "components/dom_distiller/core/url_constants.h"
141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccivoid RegisterDomDistillerViewerSource(Profile* profile) {
161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  const CommandLine& command_line = *CommandLine::ForCurrentProcess();
171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  if (command_line.HasSwitch(switches::kEnableDomDistiller)) {
181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    dom_distiller::DomDistillerServiceFactory* dom_distiller_service_factory =
191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci        dom_distiller::DomDistillerServiceFactory::GetInstance();
201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    // The LazyDomDistillerService deletes itself when the profile is destroyed.
211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    dom_distiller::LazyDomDistillerService* lazy_service =
221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci        new dom_distiller::LazyDomDistillerService(
231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci            profile, dom_distiller_service_factory);
241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    content::URLDataSource::Add(
251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci        profile,
261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci        new dom_distiller::DomDistillerViewerSource(
271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci            lazy_service, dom_distiller::kDomDistillerScheme));
281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  }
291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}
30