| # This is supposed to be a complete list of top-level directories, | 
 | # excepting only api/ itself. | 
 | include_rules = [ | 
 |   "-audio", | 
 |   "-base", | 
 |   "-build", | 
 |   "-buildtools", | 
 |   "-build_overrides", | 
 |   "-call", | 
 |   "-common_audio", | 
 |   "-common_video", | 
 |   "-data", | 
 |   "-examples", | 
 |   "-experiments", | 
 |   "-g3doc", | 
 |   "-ios", | 
 |   "-infra", | 
 |   "-logging", | 
 |   "-media", | 
 |   "-net", | 
 |   "-modules", | 
 |   "-out", | 
 |   "-p2p", | 
 |   "-pc", | 
 |   "-resources", | 
 |   "-rtc_base", | 
 |   "-rtc_tools", | 
 |   "-sdk", | 
 |   "-stats", | 
 |   "-style-guide", | 
 |   "-system_wrappers", | 
 |   "-test", | 
 |   "-testing", | 
 |   "-third_party", | 
 |   "-tools", | 
 |   "-tools_webrtc", | 
 |   "-video", | 
 |   "-external/webrtc/webrtc",  # Android platform build. | 
 |   "-libyuv", | 
 |   "-common_types.h", | 
 |   "-WebRTC", | 
 | ] | 
 |  | 
 | specific_include_rules = { | 
 |   # Some internal headers are allowed even in API headers: | 
 |  | 
 |   "call_factory_interface\.h": [ | 
 |     "+call/rtp_transport_controller_send_factory_interface.h", | 
 |   ], | 
 |  | 
 |   ".*\.h": [ | 
 |     "+rtc_base/arraysize.h", | 
 |     "+rtc_base/checks.h", | 
 |     "+rtc_base/system/rtc_export.h", | 
 |     "+rtc_base/system/rtc_export_template.h", | 
 |     "+rtc_base/units/unit_base.h", | 
 |   ], | 
 |  | 
 |   "array_view\.h": [ | 
 |     "+rtc_base/type_traits.h", | 
 |   ], | 
 |  | 
 |   # Needed because AudioEncoderOpus is in the wrong place for | 
 |   # backwards compatibilty reasons. See | 
 |   # https://bugs.chromium.org/p/webrtc/issues/detail?id=7847 | 
 |   "audio_encoder_opus\.h": [ | 
 |     "+modules/audio_coding/codecs/opus/audio_encoder_opus.h", | 
 |   ], | 
 |  | 
 |   "async_resolver_factory\.h": [ | 
 |     "+rtc_base/async_resolver_interface.h", | 
 |   ], | 
 |  | 
 |   "async_dns_resolver\.h": [ | 
 |     "+rtc_base/socket_address.h", | 
 |   ], | 
 |  | 
 |   "audio_device_defines\.h": [ | 
 |     "+rtc_base/strings/string_builder.h", | 
 |   ], | 
 |  | 
 |   "candidate\.h": [ | 
 |     "+rtc_base/network_constants.h", | 
 |     "+rtc_base/socket_address.h", | 
 |   ], | 
 |  | 
 |   "data_channel_interface\.h": [ | 
 |     "+rtc_base/copy_on_write_buffer.h", | 
 |   ], | 
 |  | 
 |   "data_channel_transport_interface\.h": [ | 
 |     "+rtc_base/copy_on_write_buffer.h", | 
 |   ], | 
 |  | 
 |   "dtls_transport_interface\.h": [ | 
 |     "+rtc_base/ssl_certificate.h", | 
 |   ], | 
 |  | 
 |   "fec_controller\.h": [ | 
 |     "+modules/include/module_fec_types.h", | 
 |   ], | 
 |  | 
 |   "packet_socket_factory\.h": [ | 
 |     "+rtc_base/async_packet_socket.h", | 
 |   ], | 
 |  | 
 |   "peer_connection_interface\.h": [ | 
 |     "+call/rtp_transport_controller_send_factory_interface.h", | 
 |     "+media/base/media_config.h", | 
 |     "+media/base/media_engine.h", | 
 |     "+p2p/base/port.h", | 
 |     "+p2p/base/port_allocator.h", | 
 |     "+rtc_base/network.h", | 
 |     "+rtc_base/network_constants.h", | 
 |     "+rtc_base/network_monitor_factory.h", | 
 |     "+rtc_base/rtc_certificate.h", | 
 |     "+rtc_base/rtc_certificate_generator.h", | 
 |     "+rtc_base/socket_address.h", | 
 |     "+rtc_base/socket_factory.h", | 
 |     "+rtc_base/ssl_certificate.h", | 
 |     "+rtc_base/ssl_stream_adapter.h", | 
 |     "+rtc_base/thread.h", | 
 |   ], | 
 |  | 
 |   "proxy\.h": [ | 
 |     "+rtc_base/event.h", | 
 |     "+rtc_base/message_handler.h",  # Inherits from it. | 
 |     "+rtc_base/thread.h", | 
 |   ], | 
 |  | 
 |   "ref_counted_base\.h": [ | 
 |     "+rtc_base/ref_counter.h", | 
 |   ], | 
 |  | 
 |   "rtc_error\.h": [ | 
 |     "+rtc_base/logging.h", | 
 |   ], | 
 |   "rtc_event_log_output_file.h": [ | 
 |     # For private member and constructor. | 
 |     "+rtc_base/system/file_wrapper.h", | 
 |   ], | 
 |  | 
 |   "legacy_stats_types\.h": [ | 
 |     "+rtc_base/thread_annotations.h", | 
 |     "+rtc_base/thread_checker.h", | 
 |   ], | 
 |  | 
 |   "audio_decoder\.h": [ | 
 |     "+rtc_base/buffer.h", | 
 |   ], | 
 |  | 
 |   "audio_encoder\.h": [ | 
 |     "+rtc_base/buffer.h", | 
 |   ], | 
 |  | 
 |   "make_ref_counted\.h": [ | 
 |     "+rtc_base/ref_counted_object.h", | 
 |   ], | 
 |  | 
 |   "mock.*\.h": [ | 
 |     "+test/gmock.h", | 
 |   ], | 
 |  | 
 |   "mock_peerconnectioninterface\.h": [ | 
 |     "+rtc_base/ref_counted_object.h", | 
 |   ], | 
 |  | 
 |   "mock_video_track\.h": [ | 
 |     "+rtc_base/ref_counted_object.h", | 
 |   ], | 
 |  | 
 |   "notifier\.h": [ | 
 |     "+rtc_base/system/no_unique_address.h", | 
 |   ], | 
 |  | 
 |   "simulated_network\.h": [ | 
 |     "+rtc_base/random.h", | 
 |     "+rtc_base/thread_annotations.h", | 
 |   ], | 
 |  | 
 |   "test_dependency_factory\.h": [ | 
 |     "+rtc_base/thread_checker.h", | 
 |   ], | 
 |  | 
 |   "time_controller\.h": [ | 
 |     "+rtc_base/thread.h", | 
 |   ], | 
 |  | 
 |   "videocodec_test_fixture\.h": [ | 
 |     "+modules/video_coding/include/video_codec_interface.h" | 
 |   ], | 
 |  | 
 |   "sequence_checker\.h": [ | 
 |     "+rtc_base/synchronization/sequence_checker_internal.h", | 
 |     "+rtc_base/thread_annotations.h", | 
 |   ], | 
 |  | 
 |   "video_encoder_factory_template.*\.h": [ | 
 |     "+modules/video_coding", | 
 |   ], | 
 |  | 
 |   "video_encoder_factory_interface\.h": [ | 
 |     "+rtc_base/numerics", | 
 |   ], | 
 |  | 
 |   "video_encoder_interface\.h": [ | 
 |     "+rtc_base/numerics", | 
 |   ], | 
 |  | 
 |   "simple_encoder_wrapper\.h": [ | 
 |     "+common_video", | 
 |     "+modules", | 
 |   ], | 
 |  | 
 |   "video_decoder_factory_template.*\.h": [ | 
 |     "+modules/video_coding", | 
 |   ], | 
 |  | 
 |   "field_trials\.h": [ | 
 |     "+rtc_base/containers/flat_map.h", | 
 |   ], | 
 |  | 
 |   "video_track_source_proxy_factory.h": [ | 
 |     "+rtc_base/thread.h", | 
 |   ], | 
 |  | 
 |   "field_trials_registry\.h": [ | 
 |     "+rtc_base/containers/flat_set.h", | 
 |   ], | 
 |  | 
 |   # .cc files in api/ should not be restricted in what they can #include, | 
 |   # so we re-add all the top-level directories here. (That's because .h | 
 |   # files leak their #includes to whoever's #including them, but .cc files | 
 |   # do not since no one #includes them.) | 
 |   ".*\.cc": [ | 
 |     "+audio", | 
 |     "+call", | 
 |     "+common_audio", | 
 |     "+common_video", | 
 |     "+examples", | 
 |     "+experiments", | 
 |     "+logging", | 
 |     "+media", | 
 |     "+modules", | 
 |     "+p2p", | 
 |     "+pc", | 
 |     "+rtc_base", | 
 |     "+rtc_tools", | 
 |     "+sdk", | 
 |     "+stats", | 
 |     "+system_wrappers", | 
 |     "+test", | 
 |     "+tools", | 
 |     "+tools_webrtc", | 
 |     "+video", | 
 |     "+third_party", | 
 |   ], | 
 | } |