# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# GYP version: components/dom_distiller.gyp:dom_distiller_webui
static_library("webui") {
  sources = [
    "dom_distiller_handler.cc",
    "dom_distiller_handler.h",
    "dom_distiller_ui.cc",
    "dom_distiller_ui.h",
  ]

  deps = [
    "//base",
    "//components/dom_distiller/core",
    "//components/dom_distiller/core/proto",
    "//components/resources",
    "//components/strings",
    "//content/public/browser",
    "//skia",
    #'../sync/sync.gyp:sync',  TODO(GYP)
  ]
}
