Merge changes I44f90fc1,Id19e956e,Ie3791801,I8aa02a6b,If595db37

* changes:
  gn2bp: Remove unnecessary mkdir in proto module
  gn2bp: Update --proto_path and --cpp_out arg
  gn2bp: Remove unused conversion rule
  gn2bp: Make result deterministic
  gn2bp: Remove unused dependencies from net_deps
diff --git a/tools/gn2bp/Android.bp.swp b/tools/gn2bp/Android.bp.swp
index e4e967c..3c59547 100644
--- a/tools/gn2bp/Android.bp.swp
+++ b/tools/gn2bp/Android.bp.swp
@@ -1891,57 +1891,6 @@
     ],
 }
 
-// GN: //net/base/registry_controlled_domains:registry_controlled_domains
-genrule {
-    name: "cronet_aml_net_base_registry_controlled_domains_registry_controlled_domains",
-    cmd: "$(location net/tools/dafsa/make_dafsa.py) --reverse " +
-         "$(location net/base/registry_controlled_domains/effective_tld_names.gperf) " +
-         "$(location net/base/registry_controlled_domains/effective_tld_names-reversed-inc.cc) " +
-         "&& python3 $(location net/tools/dafsa/make_dafsa.py) " +
-         "--reverse " +
-         "$(location net/base/registry_controlled_domains/effective_tld_names_unittest1.gperf) " +
-         "$(location net/base/registry_controlled_domains/effective_tld_names_unittest1-reversed-inc.cc) " +
-         "&& python3 $(location net/tools/dafsa/make_dafsa.py) " +
-         "--reverse " +
-         "$(location net/base/registry_controlled_domains/effective_tld_names_unittest2.gperf) " +
-         "$(location net/base/registry_controlled_domains/effective_tld_names_unittest2-reversed-inc.cc) " +
-         "&& python3 $(location net/tools/dafsa/make_dafsa.py) " +
-         "--reverse " +
-         "$(location net/base/registry_controlled_domains/effective_tld_names_unittest3.gperf) " +
-         "$(location net/base/registry_controlled_domains/effective_tld_names_unittest3-reversed-inc.cc) " +
-         "&& python3 $(location net/tools/dafsa/make_dafsa.py) " +
-         "--reverse " +
-         "$(location net/base/registry_controlled_domains/effective_tld_names_unittest4.gperf) " +
-         "$(location net/base/registry_controlled_domains/effective_tld_names_unittest4-reversed-inc.cc) " +
-         "&& python3 $(location net/tools/dafsa/make_dafsa.py) " +
-         "--reverse " +
-         "$(location net/base/registry_controlled_domains/effective_tld_names_unittest5.gperf) " +
-         "$(location net/base/registry_controlled_domains/effective_tld_names_unittest5-reversed-inc.cc) " +
-         "&& python3 $(location net/tools/dafsa/make_dafsa.py) " +
-         "--reverse " +
-         "$(location net/base/registry_controlled_domains/effective_tld_names_unittest6.gperf) " +
-         "$(location net/base/registry_controlled_domains/effective_tld_names_unittest6-reversed-inc.cc)",
-    out: [
-        "net/base/registry_controlled_domains/effective_tld_names-reversed-inc.cc",
-        "net/base/registry_controlled_domains/effective_tld_names_unittest1-reversed-inc.cc",
-        "net/base/registry_controlled_domains/effective_tld_names_unittest2-reversed-inc.cc",
-        "net/base/registry_controlled_domains/effective_tld_names_unittest3-reversed-inc.cc",
-        "net/base/registry_controlled_domains/effective_tld_names_unittest4-reversed-inc.cc",
-        "net/base/registry_controlled_domains/effective_tld_names_unittest5-reversed-inc.cc",
-        "net/base/registry_controlled_domains/effective_tld_names_unittest6-reversed-inc.cc",
-    ],
-    tool_files: [
-        "net/base/registry_controlled_domains/effective_tld_names.gperf",
-        "net/base/registry_controlled_domains/effective_tld_names_unittest1.gperf",
-        "net/base/registry_controlled_domains/effective_tld_names_unittest2.gperf",
-        "net/base/registry_controlled_domains/effective_tld_names_unittest3.gperf",
-        "net/base/registry_controlled_domains/effective_tld_names_unittest4.gperf",
-        "net/base/registry_controlled_domains/effective_tld_names_unittest5.gperf",
-        "net/base/registry_controlled_domains/effective_tld_names_unittest6.gperf",
-        "net/tools/dafsa/make_dafsa.py",
-    ],
-}
-
 // GN: //net:buildflags
 genrule {
     name: "cronet_aml_net_buildflags",
@@ -1971,7 +1920,7 @@
     tools: [
         "aprotoc",
     ],
-    cmd: "mkdir -p $(genDir)/external/chromium_org/ && $(location aprotoc) --proto_path=external/chromium_org --cpp_out=lite=true:$(genDir)/external/chromium_org/ $(in)",
+    cmd: "$(location aprotoc) --proto_path=external/chromium_org/net/cert --cpp_out=lite=true:$(genDir)/external/chromium_org/net/cert/ $(in)",
     out: [
         "external/chromium_org/net/cert/root_store.pb.cc",
     ],
@@ -1986,7 +1935,7 @@
     tools: [
         "aprotoc",
     ],
-    cmd: "mkdir -p $(genDir)/external/chromium_org/ && $(location aprotoc) --proto_path=external/chromium_org --cpp_out=lite=true:$(genDir)/external/chromium_org/ $(in)",
+    cmd: "$(location aprotoc) --proto_path=external/chromium_org/net/cert --cpp_out=lite=true:$(genDir)/external/chromium_org/net/cert/ $(in)",
     out: [
         "external/chromium_org/net/cert/root_store.pb.h",
     ],
@@ -2140,7 +2089,7 @@
     tools: [
         "aprotoc",
     ],
-    cmd: "mkdir -p $(genDir)/external/chromium_org/ && $(location aprotoc) --proto_path=external/chromium_org --cpp_out=lite=true:$(genDir)/external/chromium_org/ $(in)",
+    cmd: "$(location aprotoc) --proto_path=external/chromium_org/net/base --cpp_out=lite=true:$(genDir)/external/chromium_org/net/base/ $(in)",
     out: [
         "external/chromium_org/net/base/isolation_info.pb.cc",
     ],
@@ -2155,7 +2104,7 @@
     tools: [
         "aprotoc",
     ],
-    cmd: "mkdir -p $(genDir)/external/chromium_org/ && $(location aprotoc) --proto_path=external/chromium_org --cpp_out=lite=true:$(genDir)/external/chromium_org/ $(in)",
+    cmd: "$(location aprotoc) --proto_path=external/chromium_org/net/base --cpp_out=lite=true:$(genDir)/external/chromium_org/net/base/ $(in)",
     out: [
         "external/chromium_org/net/base/isolation_info.pb.h",
     ],
@@ -2182,7 +2131,6 @@
         ":cronet_aml_net_net_export_header",
         ":cronet_aml_net_net_nqe_proto_gen",
         ":cronet_aml_net_net_public_deps",
-        ":cronet_aml_net_net_resources",
         ":cronet_aml_net_third_party_quiche_net_quic_test_tools_proto_gen",
         ":cronet_aml_net_traffic_annotation_traffic_annotation",
         "net/android/android_http_util.cc",
@@ -2698,8 +2646,6 @@
         "cronet_aml_net_net_jni_headers",
         "cronet_aml_net_net_nqe_proto_gen_headers",
         "cronet_aml_net_third_party_quiche_net_quic_test_tools_proto_gen_headers",
-        "cronet_aml_tools_grit_grit_sources",
-        "cronet_aml_tools_gritsettings_default_resource_ids",
         "cronet_aml_url_buildflags",
     ],
     export_generated_headers: [
@@ -2713,8 +2659,6 @@
         "cronet_aml_net_net_jni_headers",
         "cronet_aml_net_net_nqe_proto_gen_headers",
         "cronet_aml_net_third_party_quiche_net_quic_test_tools_proto_gen_headers",
-        "cronet_aml_tools_grit_grit_sources",
-        "cronet_aml_tools_gritsettings_default_resource_ids",
         "cronet_aml_url_buildflags",
     ],
     defaults: [
@@ -2886,7 +2830,7 @@
     tools: [
         "aprotoc",
     ],
-    cmd: "mkdir -p $(genDir)/external/chromium_org/ && $(location aprotoc) --proto_path=external/chromium_org --cpp_out=lite=true:$(genDir)/external/chromium_org/ $(in)",
+    cmd: "$(location aprotoc) --proto_path=external/chromium_org/net/nqe/proto --cpp_out=lite=true:$(genDir)/external/chromium_org/net/nqe/proto/ $(in)",
     out: [
         "external/chromium_org/net/nqe/proto/network_id_proto.pb.cc",
     ],
@@ -2901,7 +2845,7 @@
     tools: [
         "aprotoc",
     ],
-    cmd: "mkdir -p $(genDir)/external/chromium_org/ && $(location aprotoc) --proto_path=external/chromium_org --cpp_out=lite=true:$(genDir)/external/chromium_org/ $(in)",
+    cmd: "$(location aprotoc) --proto_path=external/chromium_org/net/nqe/proto --cpp_out=lite=true:$(genDir)/external/chromium_org/net/nqe/proto/ $(in)",
     out: [
         "external/chromium_org/net/nqe/proto/network_id_proto.pb.h",
     ],
@@ -2916,93 +2860,6 @@
     name: "cronet_aml_net_net_public_deps",
 }
 
-// GN: //net:net_resources
-filegroup {
-    name: "cronet_aml_net_net_resources",
-}
-
-// GN: //net:net_resources_grit
-genrule {
-    name: "cronet_aml_net_net_resources_grit",
-    cmd: "$(location tools/grit/grit.py) -i " +
-         "$(location net/base/net_resources.grd) " +
-         "build " +
-         "-o " +
-         "$(genDir)/net " +
-         "--depdir " +
-         ". " +
-         "  " +
-         "  " +
-         "--write-only-new " +
-         "1 " +
-         "--depend-on-stamp " +
-         "-D " +
-         "DEVTOOLS_GRD_PATH " +
-         "gen/third_party/devtools-frontend/src/front_end/devtools_resources " +
-         "-D " +
-         "SHARED_INTERMEDIATE_DIR " +
-         "gen " +
-         "-D " +
-         "_google_chrome " +
-         "false " +
-         "-D " +
-         "_google_chrome_for_testing " +
-         "false " +
-         "-D " +
-         "chromeos_ash " +
-         "false " +
-         "-D " +
-         "chromeos_lacros " +
-         "false " +
-         "-D " +
-         "reven " +
-         "false " +
-         "-D " +
-         "toolkit_views " +
-         "false " +
-         "-D " +
-         "use_aura " +
-         "false " +
-         "-D " +
-         "use_ozone " +
-         "false " +
-         "-D " +
-         "use_titlecase " +
-         "false " +
-         "-E " +
-         "root_gen_dir " +
-         "gen " +
-         "-E " +
-         "root_src_dir " +
-         "../../ " +
-         "-E " +
-         "CHROMIUM_BUILD " +
-         "chromium " +
-         "-E " +
-         "ANDROID_JAVA_TAGGED_ONLY " +
-         "true " +
-         "-t " +
-         "android " +
-         "-f " +
-         "gen/tools/gritsettings/default_resource_ids " +
-         "--assert-file-list " +
-         "obj/net/net_resources_expected_outputs.txt",
-    out: [
-        "net/grit/net_resources.h",
-        "net/net_resources.pak",
-        "net/net_resources.pak.info",
-        "net/net_resources_grit.d.stamp",
-    ],
-    tool_files: [
-        "net/base/net_resources.grd",
-        "out/test/gen/tools/gritsettings/default_resource_ids",
-        "out/test/obj/net/net_resources_expected_outputs.txt",
-        "third_party/six/src/six.py",
-        "tools/grit/**/*.py",
-        "tools/grit/grit.py",
-    ],
-}
-
 // GN: //net:preload_decoder
 cc_library_static {
     name: "cronet_aml_net_preload_decoder",
@@ -3059,7 +2916,7 @@
     tools: [
         "aprotoc",
     ],
-    cmd: "mkdir -p $(genDir)/external/chromium_org/ && $(location aprotoc) --proto_path=external/chromium_org --cpp_out=lite=true:$(genDir)/external/chromium_org/ $(in)",
+    cmd: "$(location aprotoc) --proto_path=external/chromium_org/net/third_party/quiche/src --cpp_out=lite=true:$(genDir)/external/chromium_org/net/third_party/quiche/src/ $(in)",
     out: [
         "external/chromium_org/net/third_party/quiche/src/quiche/quic/core/proto/cached_network_parameters.pb.cc",
         "external/chromium_org/net/third_party/quiche/src/quiche/quic/core/proto/crypto_server_config.pb.cc",
@@ -3078,7 +2935,7 @@
     tools: [
         "aprotoc",
     ],
-    cmd: "mkdir -p $(genDir)/external/chromium_org/ && $(location aprotoc) --proto_path=external/chromium_org --cpp_out=lite=true:$(genDir)/external/chromium_org/ $(in)",
+    cmd: "$(location aprotoc) --proto_path=external/chromium_org/net/third_party/quiche/src --cpp_out=lite=true:$(genDir)/external/chromium_org/net/third_party/quiche/src/ $(in)",
     out: [
         "external/chromium_org/net/third_party/quiche/src/quiche/quic/core/proto/cached_network_parameters.pb.h",
         "external/chromium_org/net/third_party/quiche/src/quiche/quic/core/proto/crypto_server_config.pb.h",
@@ -3099,7 +2956,7 @@
     tools: [
         "aprotoc",
     ],
-    cmd: "mkdir -p $(genDir)/external/chromium_org/ && $(location aprotoc) --proto_path=external/chromium_org --cpp_out=lite=true:$(genDir)/external/chromium_org/ $(in)",
+    cmd: "$(location aprotoc) --proto_path=external/chromium_org/net/third_party/quiche/src/quiche/quic/test_tools --cpp_out=lite=true:$(genDir)/external/chromium_org/net/third_party/quiche/src/quiche/quic/test_tools/ $(in)",
     out: [
         "external/chromium_org/net/third_party/quiche/src/quiche/quic/test_tools/send_algorithm_test_result.pb.cc",
     ],
@@ -3114,7 +2971,7 @@
     tools: [
         "aprotoc",
     ],
-    cmd: "mkdir -p $(genDir)/external/chromium_org/ && $(location aprotoc) --proto_path=external/chromium_org --cpp_out=lite=true:$(genDir)/external/chromium_org/ $(in)",
+    cmd: "$(location aprotoc) --proto_path=external/chromium_org/net/third_party/quiche/src/quiche/quic/test_tools --cpp_out=lite=true:$(genDir)/external/chromium_org/net/third_party/quiche/src/quiche/quic/test_tools/ $(in)",
     out: [
         "external/chromium_org/net/third_party/quiche/src/quiche/quic/test_tools/send_algorithm_test_result.pb.h",
     ],
@@ -5279,7 +5136,6 @@
 cc_library_static {
     name: "cronet_aml_third_party_zlib_zlib",
     srcs: [
-        ":cronet_aml_third_party_android_ndk_cpu_features",
         ":cronet_aml_third_party_zlib_zlib_adler32_simd",
         ":cronet_aml_third_party_zlib_zlib_common_headers",
         ":cronet_aml_third_party_zlib_zlib_crc32_simd",
@@ -5306,22 +5162,26 @@
     ],
     cflags: [
         "-DADLER32_SIMD_SSSE3",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
         "-DCRC32_SIMD_SSE42_PCLMUL",
         "-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
         "-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
+        "-DCR_SYSROOT_KEY=20220331T153654Z-0",
         "-DDCHECK_ALWAYS_ON=1",
         "-DDEFLATE_SLIDE_HASH_SSE2",
         "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
-        "-DHAVE_SYS_UIO_H",
         "-DINFLATE_CHUNK_READ_64LE",
         "-DINFLATE_CHUNK_SIMD_SSE2",
+        "-DUSE_AURA=1",
+        "-DUSE_OZONE=1",
+        "-DUSE_UDEV",
         "-DX86_NOT_WINDOWS",
         "-DZLIB_DEBUG",
         "-DZLIB_IMPLEMENTATION",
         "-D_DEBUG",
+        "-D_FILE_OFFSET_BITS=64",
         "-D_GNU_SOURCE",
+        "-D_LARGEFILE64_SOURCE",
+        "-D_LARGEFILE_SOURCE",
         "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
         "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
         "-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
@@ -5334,9 +5194,8 @@
         "buildtools/third_party/libc++/",
         "buildtools/third_party/libc++/trunk/include",
         "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/android_ndk/sources/android/cpufeatures/",
         "third_party/zlib/",
-        "third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include",
+        "build/linux/debian_bullseye_amd64-sysroot/usr/include",
     ],
     cpp_std: "c++20",
 }
@@ -5377,43 +5236,6 @@
     name: "cronet_aml_third_party_zlib_zlib_slide_hash_simd",
 }
 
-// GN: //tools/grit:grit_sources
-genrule {
-    name: "cronet_aml_tools_grit_grit_sources",
-    cmd: "python $(location tools/grit/stamp_grit_sources.py) `dirname $(location tools/grit/grit.py)` " +
-         "$(out) " +
-         "$(genDir)/grit_sources.d",
-    out: [
-        "out/test/obj/tools/grit/grit_sources.script.stamp",
-    ],
-    tool_files: [
-        "tools/grit/grit.py",
-        "tools/grit/stamp_grit_sources.py",
-    ],
-}
-
-// GN: //tools/gritsettings:default_resource_ids
-genrule {
-    name: "cronet_aml_tools_gritsettings_default_resource_ids",
-    cmd: "$(location tools/grit/grit.py) update_resource_ids " +
-         "-o " +
-         "$(location tools/gritsettings/default_resource_ids) " +
-         "--add-header " +
-         "  " +
-         "  " +
-         "--input " +
-         "$(location tools/gritsettings/resource_ids.spec)",
-    out: [
-        "tools/gritsettings/default_resource_ids",
-    ],
-    tool_files: [
-        "third_party/six/src/six.py",
-        "tools/grit/**/*.py",
-        "tools/grit/grit.py",
-        "tools/gritsettings/resource_ids.spec",
-    ],
-}
-
 // GN: //url:buildflags
 genrule {
     name: "cronet_aml_url_buildflags",
diff --git a/tools/gn2bp/desc.json b/tools/gn2bp/desc.json
index 0c51c3c..8163d70 100644
--- a/tools/gn2bp/desc.json
+++ b/tools/gn2bp/desc.json
Binary files differ
diff --git a/tools/gn2bp/gen_android_bp b/tools/gn2bp/gen_android_bp
index 67940af..120728b 100755
--- a/tools/gn2bp/gen_android_bp
+++ b/tools/gn2bp/gen_android_bp
@@ -494,13 +494,13 @@
   assert (target.type == 'proto_library')
 
   tools = {'aprotoc'}
-  cpp_out_dir = '$(genDir)/%s/' % tree_path
+  cpp_out_dir = '$(genDir)/%s/%s/' % (tree_path, target.proto_in_dir)
   target_module_name = label_to_module_name(target.name)
 
   # In GN builds the proto path is always relative to the output directory
   # (out/tmp.xxx).
-  cmd = ['mkdir -p %s &&' % cpp_out_dir, '$(location aprotoc)']
-  cmd += ['--proto_path=%s' % tree_path]
+  cmd = ['$(location aprotoc)']
+  cmd += ['--proto_path=%s/%s' % (tree_path, target.proto_in_dir)]
 
   if buildtools_protobuf_src in target.proto_paths:
     cmd += ['--proto_path=%s' % android_protobuf_src]
@@ -887,35 +887,6 @@
         filename = re.sub('^\.\./\.\./', '', target.args[i + 1])
         # This is an output file so use $(location %s)
         target.args[i + 1] = '$(location %s)' % filename
-  elif target.script == "//tools/protoc_wrapper/protoc_wrapper.py":
-    # Use protoc in the android
-    module.tools.add("aprotoc")
-    target.outputs = [os.path.basename(out) for out in target.outputs]
-    for i, val in enumerate(target.args):
-      if val == '--protoc':
-        target.args[i + 1] = '$(location aprotoc)'
-      elif val == '--proto-in-dir':
-        # --proto-in-dir is a relative directory from Android croot.
-        # TODO: deleting the leading ../../ is a very common operation -- put
-        # it in a function.
-        proto_path = re.sub('^\.\./\.\./', '', target.args[i + 1])
-        target.args[i + 1] = tree_path + '/' + proto_path
-      elif val == '--cc-out-dir':
-        target.args[i + 1] = '$(genDir)'
-      elif val == 'dllexport_decl':
-        # Needs to be dllexport_decl=value format
-        target.args[i] = '%s=\'%s\'' % (target.args[i], target.args[i + 1])
-        target.args[i+1] = ''
-      elif val == '--include':
-        # This file can be got from filegroup this target depends on, but currently we don't add .h
-        # files to the srcs. So far this is the only case .h files need to be added to the srcs.
-        # So, for now, adding specific for this target.
-        module.srcs.add(target.args[i+1])
-        target.args[i + 1] = '$(location %s)' % target.args[i + 1]
-      elif val == "--py-out-dir":
-        # pb2.py files are not used by others.
-        target.args[i] = ''
-        target.args[i + 1] = ''
 
   script = gn_utils.label_to_path(target.script)
   module.tool_files.add(script)
@@ -967,16 +938,6 @@
   elif target.script == "//tools/grit/stamp_grit_sources.py":
     # stamp_grit_sources.py is not executable
     module.cmd = "python " + module.cmd
-  elif target.script == "//tools/protoc_wrapper/protoc_wrapper.py":
-    # Split module to source module and header module.
-    # Source module has the .cc files and header module has the .h files in the out.
-    header_module = copy.deepcopy(module)
-    header_module.name += "_headers"
-    header_module.out = [file for file in header_module.out if os.path.splitext(file)[1] == '.h']
-    module.out = [file for file in module.out if os.path.splitext(file)[1] == '.cc']
-    module.genrule_headers.add(header_module.name)
-    module.genrule_srcs.add(':' + module.name)
-    blueprint.add_module(header_module)
   elif target.script == "//base/android/jni_generator/jni_generator.py":
     # android_jar.classes should be part of the tools as it list implicit classes
     # for the script to generate JNI headers.
@@ -1128,7 +1089,10 @@
                   (type(add_val), key))
 
   # dep_name is an unmangled GN target name (e.g. //foo:bar(toolchain)).
-  all_deps = target.deps | target.source_set_deps | target.transitive_proto_deps
+  # Currently, only one module is generated from target even target has multiple toolchains.
+  # And module is generated based on the first visited target.
+  # Sort deps before iteration to make result deterministic.
+  all_deps = sorted(target.deps | target.source_set_deps | target.transitive_proto_deps)
   for dep_name in all_deps:
     # |builtin_deps| override GN deps with Android-specific ones. See the
     # config in the top of this file.
diff --git a/tools/gn2bp/gn_utils.py b/tools/gn2bp/gn_utils.py
index 589b12a..6fcc0f8 100644
--- a/tools/gn2bp/gn_utils.py
+++ b/tools/gn2bp/gn_utils.py
@@ -110,6 +110,7 @@
       self.proto_plugin = None
       self.proto_paths = set()
       self.proto_exports = set()
+      self.proto_in_dir = ""
 
       self.sources = set()
       # TODO(primiano): consider whether the public section should be part of
@@ -232,6 +233,7 @@
       target.proto_plugin = proto_target_type
       target.proto_paths.update(self.get_proto_paths(proto_desc))
       target.proto_exports.update(self.get_proto_exports(proto_desc))
+      target.proto_in_dir = self.get_proto_in_dir(proto_desc)
       target.sources.update(proto_desc.get('sources', []))
       assert (all(x.endswith('.proto') for x in target.sources))
     elif target.type == 'source_set':
@@ -322,6 +324,11 @@
     metadata = proto_desc.get('metadata', {})
     return metadata.get('import_dirs', [])
 
+
+  def get_proto_in_dir(self, proto_desc):
+    args = proto_desc.get('args')
+    return re.sub('^\.\./\.\./', '', args[args.index('--proto-in-dir') + 1])
+
   def get_proto_target_type(self, target):
     """ Checks if the target is a proto library and return the plugin.