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