0

Revert "Add presubmit check to prevent anonymous namespace usage in headers"

This reverts commit ba1e976cd9.

Reason for revert:
Causes failures on win-presubmit bot, starting here when it landed:
https://ci.chromium.org/ui/p/chromium/builders/ci/win-presubmit/11338/overview

It seems the existing problems in the repository were not cleaned up before landing this new check.

Full error message:
===
These files have an anonymous namespace which is not permitted in header files, for more information see (https://google.github.io/styleguide/cppguide.html#Internal_Linkage): 
  ash\accelerators\ash_accelerator_configuration.h
  ash\accessibility\ui\accessibility_confirmation_dialog.h
  ash\ambient\test\ambient_ash_test_base.h
  ash\glanceables\classroom\fake_glanceables_classroom_client.h
  ash\hud_display\hud_settings_view.h
  ash\lobster\lobster_image_actuator.h
  ash\login\ui\lock_contents_view_constants.h
  ash\login\ui\lock_screen_media_view.h
  ash\system\accessibility\dictation_bubble_view.h
  ash\system\diagnostics\fake_diagnostics_browser_delegate.h
  ash\system\focus_mode\focus_mode_chip_carousel.h
  ash\system\focus_mode\focus_mode_detailed_view.h
  ash\system\media\quick_settings_media_view.h
  ash\system\network\fake_network_detailed_view_delegate.h
  ash\system\network\network_detailed_network_view.h
  ash\system\notification_center\notification_grouping_controller.h
  ash\system\power\power_sounds_controller.h
  ash\system\time\calendar_model.h
  ash\system\time\calendar_unittest_utils.h
  ash\webui\eche_app_ui\accessibility_tree_converter.h
  ash\webui\help_app_ui\search\search_handler.h
  ash\webui\shortcut_customization_ui\backend\accelerator_layout_table.h
  base\allocator\miracle_parameter.h
  base\allocator\partition_allocator\src\partition_alloc\shim\allocator_shim_override_apple_default_zone.h
  base\allocator\partition_allocator\src\partition_alloc\shim\allocator_shim_override_glibc_weak_symbols.h
  base\allocator\partition_allocator\src\partition_alloc\shim\allocator_shim_override_ucrt_symbols_win.h
  base\allocator\partition_allocator\src\partition_alloc\shim\shim_alloc_functions.h
  base\memory\safety_checks.h
  base\task\lazy_thread_pool_task_runner.h
  base\task\thread_pool\pooled_single_thread_task_runner_manager.h
  base\test\fuzztest_support.h
  base\time\time.h
  chrome\browser\accessibility\live_caption\live_caption_speech_recognition_host_browsertest.h
  chrome\browser\android\metrics\android_session_durations_service.h
  chrome\browser\ash\app_list\search\arc\arc_app_shortcut_search_result.h
  chrome\browser\ash\app_restore\app_restore_arc_task_handler.h
  chrome\browser\ash\arc\instance_throttle\arc_active_window_throttle_observer.h
  chrome\browser\ash\file_manager\trash_io_task.h
  chrome\browser\ash\guest_os\vm_sk_forwarding_native_message_host.h
  chrome\browser\ash\lobster\lobster_insertion.h
  chrome\browser\ash\login\existing_user_controller_base_test.h
  chrome\browser\ash\login\test\feature_parameter_interface.h
  chrome\browser\ash\policy\skyvault\test\skyvault_test_utils.h
  chrome\browser\ash\smb_client\smb_service_test_base.h
  chrome\browser\ash\system_web_apps\apps\personalization_app\keyboard_backlight_color_metrics_provider.h
  chrome\browser\chromeos\extensions\telemetry\api\events\event_router.h
  chrome\browser\extensions\api\messaging\native_message_echo_host.h
  chrome\browser\extensions\context_menu_helpers.h
  chrome\browser\media\prefs\capture_device_ranking.h
  chrome\browser\metrics\chrome_metrics_service_accessor.h
  chrome\browser\metrics\structured\chrome_structured_metrics_delegate.h
  chrome\browser\metrics\structured\metadata_processor_ash.h
  chrome\browser\nearby_sharing\wifi_network_configuration\fake_wifi_network_configuration_handler.h
  chrome\browser\page_load_metrics\observers\third_party_cookie_deprecation_page_load_metrics_observer.h
  chrome\browser\password_manager\password_change_delegate_impl.h
  chrome\browser\performance_manager\decorators\helpers\page_live_state_decorator_helper.h
  chrome\browser\permissions\crowd_deny_preload_data.h
  chrome\browser\persisted_state_db\session_proto_db_factory.h
  chrome\browser\profile_resetter\profile_resetter.h
  chrome\browser\push_messaging\push_messaging_service_impl.h
  chrome\browser\screen_ai\public\optical_character_recognizer.h
  chrome\browser\screen_ai\screen_ai_service_router.h
  chrome\browser\ui\ash\wallpaper\wallpaper_controller_client_impl.h
  chrome\browser\ui\cocoa\history_menu_bridge.h
  chrome\browser\ui\global_media_controls\media_item_ui_metrics.h
  chrome\browser\ui\passwords\manage_passwords_ui_controller.h
  chrome\browser\ui\performance_controls\performance_intervention_button_controller.h
  chrome\browser\ui\performance_controls\test_support\memory_saver_browser_test_mixin.h
  chrome\browser\ui\safety_hub\abusive_notification_permissions_manager.h
  chrome\browser\ui\safety_hub\menu_notification_service.h
  chrome\browser\ui\signin\signin_view_controller.h
  chrome\browser\ui\views\desktop_capture\desktop_media_tab_list.h
  chrome\browser\ui\views\frame\picture_in_picture_browser_frame_view.h
  chrome\browser\ui\views\global_media_controls\media_item_ui_cast_footer_view.h
  chrome\browser\ui\views\global_media_controls\media_item_ui_device_selector_view.h
  chrome\browser\ui\views\global_media_controls\media_item_ui_footer_view.h
  chrome\browser\ui\views\site_data\page_specific_site_data_dialog.h
  chrome\browser\ui\views\web_apps\frame_toolbar\web_app_frame_toolbar_view.h
  chrome\browser\ui\web_applications\sub_apps_service_impl.h
  chrome\browser\ui\web_applications\test\isolated_web_app_test_utils.h
  chrome\browser\ui\webui\ash\diagnostics_dialog\diagnostics_dialog.h
  chrome\browser\ui\webui\ash\login\consolidated_consent_screen_handler.h
  chrome\browser\ui\webui\ash\sanitize_dialog\sanitize_dialog.h
  chrome\browser\ui\webui\ash\settings\pages\apps\mojom\app_type_mojom_traits.h
  chrome\browser\web_applications\isolated_web_apps\isolated_web_app_update_manager.h
  chrome\browser\web_applications\preinstalled_web_app_manager.h
  chrome\common\read_anything\read_anything_constants.h
  chrome\test\base\ash\web_ui_browser_test.h
  chrome\test\base\chromeos\crosier\chromeos_integration_login_mixin.h
  chrome\updater\app\server\win\com_classes_legacy.h
  chromecast\media\base\aligned_buffer.h
  chromeos\ash\components\assistant\test_support\expect_utils.h
  chromeos\ash\components\carrier_lock\psm_claim_verifier_unittest.h
  chromeos\ash\components\game_mode\game_mode_controller.h
  chromeos\ash\components\nearby\presence\nearby_presence_service_impl.h
  chromeos\ash\components\phonehub\fake_multidevice_feature_access_manager.h
  chromeos\ash\components\phonehub\phone_hub_structured_metrics_logger.h
  chromeos\ash\components\string_matching\prefix_matcher.h
  chromeos\ash\components\string_matching\sequence_matcher.h
  chromeos\ash\experiences\arc\arc_browser_context_keyed_service_factory_base.h
  chromeos\ash\experiences\arc\metrics\arc_daily_metrics.h
  chromeos\ash\experiences\arc\window\arc_window_watcher.h
  chromeos\ash\services\quick_pair\public\mojom\fast_pair_traits.h
  components\autofill\ios\browser\form_suggestion_provider_query.h
  components\background_sync\background_sync_metrics.h
  components\commerce\core\product_specifications\product_specifications_set.h
  components\commerce\core\test_utils.h
  components\crash\core\common\crash_key.h
  components\discardable_memory\service\discardable_shared_memory_manager.h
  components\endpoint_fetcher\endpoint_fetcher.h
  components\exo\wayland\clients\test\client_version_test.h
  components\exo\wayland\compatibility_test\wayland_client_event_receiver_version_fixtures.h
  components\exo\wayland\wayland_dmabuf_feedback_manager.h
  components\feed\core\v2\public\ios\info_card_tracker.h
  components\global_media_controls\public\views\media_item_ui_detailed_view.h
  components\gwp_asan\client\thread_local_random_bit_generator.h
  components\leveldb_proto\internal\proto_database_impl.h
  components\leveldb_proto\testing\fake_db.h
  components\live_caption\views\caption_bubble.h
  components\metrics\structured\delegating_events_processor.h
  components\metrics\structured\events_processor_interface.h
  components\metrics\structured\recorder.h
  components\optimization_guide\core\model_handler.h
  components\optimization_guide\core\tflite_model_executor.h
  components\session_proto_db\session_proto_db.h
  components\unexportable_keys\unexportable_key_service_impl.h
  components\update_client\background_downloader_mac.h
  components\viz\service\debugger\viz_debugger.h
  content\browser\accessibility\web_contents_accessibility_android.h
  content\browser\back_forward_cache_test_util.h
  content\browser\background_sync\background_sync_base_browsertest.h
  content\browser\bluetooth\advertisement_client.h
  content\browser\client_hints\critical_client_hints_throttle.h
  content\browser\locks\lock_manager.h
  content\browser\presentation\presentation_test_utils.h
  content\browser\tracing\trace_report\trace_report_mojom_traits.h
  content\public\browser\sms_fetcher.h
  content\public\browser\storage_notification_service.h
  device\bluetooth\floss\exported_callback_manager.h
  extensions\browser\api\storage\settings_namespace.h
  gpu\ipc\client\gpu_context_tests.h
  media\base\eme_constants.h
  media\base\mock_media_log.h
  media\base\use_after_free_checker.h
  media\capture\video\mac\video_capture_device_decklink_mac.h
  media\cdm\cdm_wrapper.h
  media\device_monitors\device_monitor_mac.h
  media\formats\hls\types.h
  media\gpu\chromeos\shaders\shaders.h
  media\gpu\v4l2\mt21\mt21_util.h
  media\gpu\v4l2\v4l2_jpeg_encode_accelerator.h
  media\renderers\win\media_foundation_stream_wrapper.h
  native_client_sdk\src\examples\api\video_decode\testdata.h
  net\cert\internal\cert_issuer_source_sync_unittest.h
  net\cert\root_cert_list_generated.h
  net\cookies\cookie_store_change_unittest.h
  net\dns\stale_host_resolver.h
  net\nqe\socket_watcher.h
  net\nqe\socket_watcher_factory.h
  net\nqe\throughput_analyzer.h
  net\quic\quic_proxy_client_socket_test_base.h
  net\ssl\client_cert_store_unittest-inl.h
  net\tools\huffman_trie\huffman\huffman_builder.h
  net\traffic_annotation\network_traffic_annotation.h
  ppapi\cpp\input_event_interface_name.h
  ppapi\cpp\module_impl.h
  ppapi\examples\video_decode\testdata.h
  ppapi\tests\test_udp_socket.h
  sandbox\win\src\crosscall_params.h
  sandbox\win\src\process_thread_interception.h
  services\device\generic_sensor\orientation_test_data.h
  testing\multiprocess_func_list.h
  third_party\blink\renderer\bindings\core\v8\iterable.h
  third_party\blink\renderer\core\editing\finder\find_task_controller.h
  third_party\blink\renderer\core\layout\grid\grid_data.h
  third_party\blink\renderer\core\loader\document_loader.h
  third_party\blink\renderer\modules\canvas\canvas2d\base_rendering_context_2d.h
  third_party\blink\renderer\modules\compute_pressure\pressure_observer.h
  third_party\blink\renderer\platform\geometry\math_functions.h
  third_party\blink\renderer\platform\peerconnection\webrtc_connection_matchers.h
  third_party\blink\renderer\platform\scheduler\public\frame_or_worker_scheduler.h
  third_party\blink\renderer\platform\text\emoji_segmentation_category_inline_header.h
  tools\win\chromeexts\chrome_exts_command.h
  ui\accessibility\platform\fuchsia\semantic_provider_impl.h
  ui\base\class_property.h
  ui\base\clipboard\clipboard_test_template.h
  ui\events\fuchsia\util\pointer_event_utility.h
  ui\events\ozone\device\device_event.h
  ui\events\velocity_tracker\velocity_tracker.h
  ui\gfx\animation\keyframe\keyframed_animation_curve-inl.h
  ui\gfx\mojom\rrect_f_mojom_traits.h
  ui\gfx\mojom\selection_bound_mojom_traits.h
  ui\gl\delegated_ink_point_renderer_gpu.h
  ui\gl\gl_enums_implementation_autogen.h
  ui\webui\resources\cr_components\app_management\app_management_mojom_traits.h
===

which I got by copying and pasting from
https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket/8724556290967808561/+/u/presubmit/stdout

Original change's description:
> Add presubmit check to prevent anonymous namespace usage in headers
>
> Bug: 391905435
> Change-Id: I928d282bc3b626addc564889338cb7426e7cbe4c
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6192789
> Commit-Queue: Aaron Selya <selya@google.com>
> Reviewed-by: Andrew Grieve <agrieve@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#1411842}

Bug: 391905435
Change-Id: I8753a2777b650bf5716c6364b3ba160c503a236e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6203269
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Mark Pearson <mpearson@chromium.org>
Auto-Submit: Mark Pearson <mpearson@chromium.org>
Owners-Override: Mark Pearson <mpearson@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1411949}
This commit is contained in:
Mark Pearson
2025-01-27 15:42:09 -08:00
committed by Chromium LUCI CQ
parent 48fac4e753
commit 63204dad1a
2 changed files with 0 additions and 54 deletions

@ -7819,33 +7819,3 @@ def CheckTodoBugReferences(input_api, output_api):
]
else:
return []
def CheckForAnonymousNamespaceInHeader(input_api,
output_api,
allowlist=_HEADER_EXTENSIONS,
denylist=None):
denylist = tuple(denylist or input_api.DEFAULT_FILES_TO_SKIP)
source_file_filter = lambda x: input_api.FilterSourceFile(
x, allowlist, denylist)
def headers(f):
return input_api.FilterSourceFile(
f, files_to_check=(r'.+%s' % _HEADER_EXTENSIONS, ))
header_using_anon_namespace_files = []
for f in input_api.AffectedSourceFiles(headers):
contents = input_api.ReadFile(f, 'rb')
if input_api.re.search(r"namespace {", contents):
header_using_anon_namespace_files.append(f.LocalPath())
result = []
if header_using_anon_namespace_files:
result.append(
output_api.PresubmitError(
'These files have an anonymous namespace which is not '
'permitted in header files, for more information see ('
'https://google.github.io/styleguide/cppguide.html#Internal_Linkage'
'): ',
items=header_using_anon_namespace_files))
return result

@ -5705,30 +5705,6 @@ class CheckDeprecatedSyncConsentFunctionsTest(unittest.TestCase):
self.assertTrue('chrome/foo/file4.java' in results[0].message),
self.assertTrue('chrome/foo/file5.java' in results[0].message),
class CheckAnonymousNamespacesInHeaderFilesTest(unittest.TestCase):
"""Test the presubmit checking for anonymous namespaces in header files."""
def testAnonymousNamespaceInHeader(self):
file_types = ['src/helpers.h', 'src/helpers.hpp', 'src/helpers.hxx']
for header_file in file_types:
input_api = MockInputApi()
input_api.files = [
MockAffectedFile(header_file,
['namespace {}'])]
error = PRESUBMIT.CheckForAnonymousNamespaceInHeader(
input_api, MockOutputApi())
self.assertEqual(1, len(error))
def testValidNamespaceInHeader(self):
file_types = ['src/helpers.h', 'src/helpers.hpp', 'src/helpers.hxx']
for header_file in file_types:
input_api = MockInputApi()
input_api.files = [
MockAffectedFile(header_file,
['namespace test {}'])]
error = PRESUBMIT.CheckForAnonymousNamespaceInHeader(
input_api, MockOutputApi())
self.assertEqual(0, len(error))
class CheckAnonymousNamespaceTest(unittest.TestCase):
"""Test the presubmit for anonymous namespaces."""