• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright 2016 The Chromium Authors
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5import("//build/config/chromeos/ui_mode.gni")
6import("//mojo/public/tools/bindings/mojom.gni")
7
8mojom("url_mojom_gurl") {
9  generate_java = true
10  sources = [ "url.mojom" ]
11
12  cpp_typemaps = [
13    {
14      types = [
15        {
16          mojom = "url.mojom.Url"
17          cpp = "::GURL"
18        },
19      ]
20      traits_headers = [ "//url/mojom/url_gurl_mojom_traits.h" ]
21      traits_public_deps = [
22        ":mojom_traits",
23        "//url",
24      ]
25    },
26  ]
27
28  blink_cpp_typemaps = [
29    {
30      types = [
31        {
32          mojom = "url.mojom.Url"
33          cpp = "::blink::KURL"
34          force_serialize = true
35        },
36      ]
37      traits_headers = [
38        "//third_party/blink/renderer/platform/mojo/kurl_mojom_traits.h",
39        "//third_party/blink/renderer/platform/weborigin/kurl_hash.h",
40      ]
41      traits_public_deps = [ "//url" ]
42    },
43  ]
44
45  webui_module_path = "chrome://resources/mojo/url/mojom"
46
47  # Used by Closure compiler targets in ash/webui/help_app_ui/, so this needs
48  # to generate WebUI bindings in JavaScript on Ash.
49  use_typescript_sources = !is_chromeos_ash
50
51  # Legacy JS bindings are needed for Blink regardless of platform.
52  generate_legacy_js_bindings = true
53}
54
55mojom("url_mojom_origin") {
56  generate_java = true
57  sources = [ "origin.mojom" ]
58
59  public_deps = [
60    ":url_mojom_gurl",
61    "//mojo/public/mojom/base",
62  ]
63
64  check_includes_blink = false
65
66  cpp_typemaps = [
67    {
68      types = [
69        {
70          mojom = "url.mojom.Origin"
71          cpp = "::url::Origin"
72        },
73      ]
74      traits_headers = [ "//url/mojom/origin_mojom_traits.h" ]
75      traits_public_deps = [
76        ":mojom_traits",
77        "//url",
78      ]
79    },
80  ]
81
82  blink_cpp_typemaps = [
83    {
84      types = [
85        {
86          mojom = "url.mojom.Origin"
87          cpp = "::scoped_refptr<const ::blink::SecurityOrigin>"
88          nullable_is_same_type = true
89        },
90      ]
91      traits_headers = [ "//third_party/blink/renderer/platform/mojo/security_origin_mojom_traits.h" ]
92      traits_public_deps = [ "//url" ]
93    },
94  ]
95
96  webui_module_path = "chrome://resources/mojo/url/mojom"
97  generate_legacy_js_bindings = true
98}
99
100mojom("url_mojom_scheme_host_port") {
101  generate_java = true
102  sources = [ "scheme_host_port.mojom" ]
103
104  cpp_typemaps = [
105    {
106      types = [
107        {
108          mojom = "url.mojom.SchemeHostPort"
109          cpp = "::url::SchemeHostPort"
110        },
111      ]
112      traits_headers = [ "//url/mojom/scheme_host_port_mojom_traits.h" ]
113      traits_public_deps = [ "//url" ]
114    },
115  ]
116}
117
118mojom("test_url_mojom_gurl") {
119  sources = [ "url_test.mojom" ]
120
121  public_deps = [
122    ":url_mojom_gurl",
123    ":url_mojom_origin",
124    ":url_mojom_scheme_host_port",
125  ]
126}
127
128component("mojom_traits") {
129  output_name = "url_mojom_traits"
130
131  sources = [
132    "origin_mojom_traits.cc",
133    "origin_mojom_traits.h",
134    "scheme_host_port_mojom_traits.cc",
135    "scheme_host_port_mojom_traits.h",
136    "url_gurl_mojom_traits.cc",
137    "url_gurl_mojom_traits.h",
138  ]
139
140  defines = [ "IS_URL_MOJOM_TRAITS_IMPL" ]
141
142  public_deps = [
143    ":url_mojom_gurl_shared",
144    ":url_mojom_origin_shared",
145    ":url_mojom_scheme_host_port",
146    "//base",
147    "//mojo/public/cpp/base:shared_typemap_traits",
148    "//url",
149  ]
150
151  configs += [ "//build/config/compiler:wexit_time_destructors" ]
152}
153