# Copyright 2017 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.

import("//third_party/blink/renderer/modules/modules.gni")

blink_modules_sources("background_fetch") {
  sources = [
    "background_fetch_bridge.cc",
    "background_fetch_bridge.h",
    "background_fetch_event.cc",
    "background_fetch_event.h",
    "background_fetch_icon_loader.cc",
    "background_fetch_icon_loader.h",
    "background_fetch_manager.cc",
    "background_fetch_manager.h",
    "background_fetch_record.cc",
    "background_fetch_record.h",
    "background_fetch_registration.cc",
    "background_fetch_registration.h",
    "background_fetch_type_converters.cc",
    "background_fetch_type_converters.h",
    "background_fetch_update_ui_event.cc",
    "background_fetch_update_ui_event.h",
    "service_worker_global_scope_background_fetch.h",
    "service_worker_registration_background_fetch.cc",
    "service_worker_registration_background_fetch.h",
  ]

  deps = [
    "//third_party/blink/renderer/modules/cache_storage:cache_storage",
    "//third_party/blink/renderer/modules/manifest:manifest",
  ]
}
