# Copyright 2019 The Fuchsia 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("//build/fidl/fidl.gni")

fidl("fuchsia.web") {
  sdk_category = "partner"
  sources = [
    "constants.fidl",
    "context.fidl",
    "cookie.fidl",
    "debug.fidl",
    "frame.fidl",
    "navigation.fidl",
    "url_request_rewrite_rules.fidl",
  ]

  public_deps = [
    "//sdk/fidl/fuchsia.io",
    "//sdk/fidl/fuchsia.logger",
    "//sdk/fidl/fuchsia.media.sessions2",
    "//sdk/fidl/fuchsia.mem",
    "//sdk/fidl/fuchsia.net.http",
    "//sdk/fidl/fuchsia.settings",
    "//sdk/fidl/fuchsia.ui.gfx",
    "//sdk/fidl/fuchsia.ui.views",
  ]
}
