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 if (is_chromeos_ash) { 50 generate_webui_js_bindings = true 51 } 52 53 # Legacy JS bindings are needed for Blink regardless of platform. 54 generate_legacy_js_bindings = true 55} 56 57mojom("url_mojom_origin") { 58 generate_java = true 59 sources = [ "origin.mojom" ] 60 61 public_deps = [ 62 ":url_mojom_gurl", 63 "//mojo/public/mojom/base", 64 ] 65 66 check_includes_blink = false 67 68 cpp_typemaps = [ 69 { 70 types = [ 71 { 72 mojom = "url.mojom.Origin" 73 cpp = "::url::Origin" 74 }, 75 ] 76 traits_headers = [ "//url/mojom/origin_mojom_traits.h" ] 77 traits_public_deps = [ 78 ":mojom_traits", 79 "//url", 80 ] 81 }, 82 ] 83 84 blink_cpp_typemaps = [ 85 { 86 types = [ 87 { 88 mojom = "url.mojom.Origin" 89 cpp = "::scoped_refptr<const ::blink::SecurityOrigin>" 90 nullable_is_same_type = true 91 }, 92 ] 93 traits_headers = [ "//third_party/blink/renderer/platform/mojo/security_origin_mojom_traits.h" ] 94 traits_public_deps = [ "//url" ] 95 }, 96 ] 97 98 webui_module_path = "chrome://resources/mojo/url/mojom" 99 generate_legacy_js_bindings = true 100} 101 102mojom("url_mojom_scheme_host_port") { 103 generate_java = true 104 sources = [ "scheme_host_port.mojom" ] 105 106 cpp_typemaps = [ 107 { 108 types = [ 109 { 110 mojom = "url.mojom.SchemeHostPort" 111 cpp = "::url::SchemeHostPort" 112 }, 113 ] 114 traits_headers = [ "//url/mojom/scheme_host_port_mojom_traits.h" ] 115 traits_public_deps = [ "//url" ] 116 }, 117 ] 118} 119 120mojom("test_url_mojom_gurl") { 121 sources = [ "url_test.mojom" ] 122 123 public_deps = [ 124 ":url_mojom_gurl", 125 ":url_mojom_origin", 126 ":url_mojom_scheme_host_port", 127 ] 128} 129 130component("mojom_traits") { 131 output_name = "url_mojom_traits" 132 133 sources = [ 134 "origin_mojom_traits.cc", 135 "origin_mojom_traits.h", 136 "scheme_host_port_mojom_traits.cc", 137 "scheme_host_port_mojom_traits.h", 138 "url_gurl_mojom_traits.cc", 139 "url_gurl_mojom_traits.h", 140 ] 141 142 defines = [ "IS_URL_MOJOM_TRAITS_IMPL" ] 143 144 public_deps = [ 145 ":url_mojom_gurl_shared", 146 ":url_mojom_origin_shared", 147 ":url_mojom_scheme_host_port", 148 "//base", 149 "//mojo/public/cpp/base:shared_typemap_traits", 150 "//url", 151 ] 152 153 configs += [ "//build/config/compiler:wexit_time_destructors" ] 154} 155