New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 742517 link

Starred by 2 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Bug

Blocked on:
issue 879643



Sign in to add a comment

Expose convenience constants kCount and kLast for Mojo enums

Project Member Reported by dcheng@chromium.org, Jul 13 2017

Issue description

This was previously discussed in issue 705169, and has recently come up in https://chromium-review.googlesource.com/c/569002/ and https://chromium-review.googlesource.com/c/566764/: both CLs want to plumb a mojo enum value to UMA it.

However, it would be better if the enum itself didn't define a kCount enumerator, as:
- this forces all switch statements to handle a sentinel case that should "never happen"
- Mojo enum validation will accept the sentinel value, even though it would be better to reject it

As mojo enums are just generated, it should be easy to generate something like:
  static constexpr EnumType EnumType_COUNT =
      static_cast<EnumType>(static_cast<int32_t>(EnumType::max_value()) + 1);

And then this value can just be used in the histogram macros.
 

Comment 1 by yzshen@chromium.org, Jul 14 2017

Enum values could be set:

enum Foo {
  a = 3, 
  b = 4
}

In this case, will Foo_COUNT be 5? That might be confusing. Foo_max (= b) seems more clear IMO. 

Comment 2 by dcheng@chromium.org, Jul 14 2017

Yeah, count would be confusing with explicit values set, but max doesn't really help the UMA case (since you still need + 1 there).

Comment 3 by yzshen@chromium.org, Jul 14 2017

An explicit +1 (and necessary cast operation) may be verbose, but that still seems more reasonable than causing confusion IMO. :)
Having some helper function/macro to make +1 easier may be useful?

..., Plus1(Foo_Max)...

Comment 4 by dcheng@chromium.org, Jul 14 2017

If it helps, we could call it kEnumTypeUmaBoundary?

The problem with requiring people to manually add 1 is that it's very easy to omit the step by accident--and if we try to add a helper macro, then you need to use a different macro depending on which kind of enum you're dealing with.

All-in-all, it seems less fragile to just have a well-known generated constant.

Comment 5 by yzshen@chromium.org, Jul 14 2017

Agreed that "Boundary" sounds better than "Count". :)
Project Member

Comment 6 by bugdroid1@chromium.org, Mar 29 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cfed2af79d23ca501914431053d6864628ccc61b

commit cfed2af79d23ca501914431053d6864628ccc61b
Author: Daniel Cheng <dcheng@chromium.org>
Date: Thu Mar 29 06:19:55 2018

Allow base/metrics/histogram.h to be used directly in Blink.

It's already used in a number of places in Blink. Blessing direct use of
the standard UMA histogram macros will also make it simpler to make
improvements to things like the macros for enumerations.

Bug: 742517
Change-Id: Ic7b83312e77918170c0dbabc92c1536fed673abc
Reviewed-on: https://chromium-review.googlesource.com/982946
Reviewed-by: Mark Pearson <mpearson@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#546744}
[modify] https://crrev.com/cfed2af79d23ca501914431053d6864628ccc61b/third_party/WebKit/Source/DEPS

Project Member

Comment 7 by bugdroid1@chromium.org, Mar 30 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d8358f64279ca99b8abf8444ada936796c1659a5

commit d8358f64279ca99b8abf8444ada936796c1659a5
Author: Daniel Cheng <dcheng@chromium.org>
Date: Fri Mar 30 18:36:58 2018

Update chrome clang plugin check for enumerators.

Rather than doing fuzzy matching on _LAST/Last, simple look for
kMaxValue. In addition, enforce that the value isn't unique, since that
defeats the entire point of using kMaxValue (avoiding pointless case
statements in switch statements).

Bug: 705169, 742517
Change-Id: I4499db30bf87a345bdc5c94b8d3f488823eb7504
Reviewed-on: https://chromium-review.googlesource.com/986723
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#547217}
[modify] https://crrev.com/d8358f64279ca99b8abf8444ada936796c1659a5/tools/clang/plugins/ChromeClassTester.cpp
[modify] https://crrev.com/d8358f64279ca99b8abf8444ada936796c1659a5/tools/clang/plugins/ChromeClassTester.h
[modify] https://crrev.com/d8358f64279ca99b8abf8444ada936796c1659a5/tools/clang/plugins/FindBadConstructsAction.cpp
[modify] https://crrev.com/d8358f64279ca99b8abf8444ada936796c1659a5/tools/clang/plugins/FindBadConstructsConsumer.cpp
[modify] https://crrev.com/d8358f64279ca99b8abf8444ada936796c1659a5/tools/clang/plugins/FindBadConstructsConsumer.h
[modify] https://crrev.com/d8358f64279ca99b8abf8444ada936796c1659a5/tools/clang/plugins/Options.h
[delete] https://crrev.com/3a92f0d98a3b37e6f8ce4f72e8841bb58c36e592/tools/clang/plugins/tests/enum_last_value.cpp
[delete] https://crrev.com/3a92f0d98a3b37e6f8ce4f72e8841bb58c36e592/tools/clang/plugins/tests/enum_last_value.flags
[delete] https://crrev.com/3a92f0d98a3b37e6f8ce4f72e8841bb58c36e592/tools/clang/plugins/tests/enum_last_value.txt
[delete] https://crrev.com/3a92f0d98a3b37e6f8ce4f72e8841bb58c36e592/tools/clang/plugins/tests/enum_last_value_from_c.c
[delete] https://crrev.com/3a92f0d98a3b37e6f8ce4f72e8841bb58c36e592/tools/clang/plugins/tests/enum_last_value_from_c.flags
[delete] https://crrev.com/3a92f0d98a3b37e6f8ce4f72e8841bb58c36e592/tools/clang/plugins/tests/enum_last_value_from_c.txt
[add] https://crrev.com/d8358f64279ca99b8abf8444ada936796c1659a5/tools/clang/plugins/tests/enum_max_value.cpp
[add] https://crrev.com/d8358f64279ca99b8abf8444ada936796c1659a5/tools/clang/plugins/tests/enum_max_value.flags
[add] https://crrev.com/d8358f64279ca99b8abf8444ada936796c1659a5/tools/clang/plugins/tests/enum_max_value.txt

Project Member

Comment 8 by bugdroid1@chromium.org, Mar 30 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cda1df5bb80803b84cb8adbfbd83d21f94cf0282

commit cda1df5bb80803b84cb8adbfbd83d21f94cf0282
Author: Daniel Cheng <dcheng@chromium.org>
Date: Fri Mar 30 21:30:16 2018

Improve mojo enum quality-of-life for UMAs and legacy IPC.

Rather than forcing enums to define a kMaxValue enumerator and
manually update it, just automatically generate it for mojo
enums. kMaxValue shares the value of the highest enumerator:
this is done to avoid switch statements having to handle useless
sentinel values.

However, since the UMA histogram macros for enums require that
the boundary is 1 greater than the highest legal value, also
add a new helper that automatically calculate boundary based on
the existence of Enum::kMaxValue to avoid awkward static_casts
to int and then back to the enum type.

Bug: 742517
Tbr: sky@chromium.org
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_mojo
Change-Id: I84b1985c9d93b6ca7576947936f3dc9cd9ec22c8
Reviewed-on: https://chromium-review.googlesource.com/982944
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Reviewed-by: Alexei Svitkine <asvitkine@chromium.org>
Reviewed-by: Ken Rockot <rockot@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#547276}
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/ash/public/interfaces/night_light_controller.mojom
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/ash/public/interfaces/tray_action.mojom
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/ash/system/night_light/night_light_controller.cc
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/base/macros.h
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/base/metrics/histogram_macros.h
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/base/metrics/histogram_macros_internal.h
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/base/metrics/histogram_macros_unittest.cc
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/chrome/browser/chromeos/lock_screen_apps/state_controller.cc
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/chrome/browser/client_hints/client_hints.cc
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/chrome/browser/client_hints/client_hints_observer.cc
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/chrome/renderer/content_settings_observer.cc
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/chrome/renderer/extensions/automation_internal_custom_bindings.cc
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/content/browser/accessibility/accessibility_tree_formatter_blink.cc
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/content/browser/cache_storage/cache_storage_cache.cc
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/content/browser/service_worker/service_worker_metrics.cc
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/content/common/accessibility_messages.h
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/content/common/content_param_traits_macros.h
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/content/common/service_worker/service_worker_messages.h
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/content/public/common/common_param_traits_macros.h
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/docs/security/mojo.md
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/mojo/public/cpp/bindings/README.md
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/mojo/public/tools/bindings/generators/cpp_templates/enum_macros.tmpl
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/mojo/public/tools/bindings/pylib/mojom/generate/module.py
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/mojo/public/tools/bindings/pylib/mojom/generate/translate.py
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/services/network/public/cpp/cors/cors_error_status.cc
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/services/network/public/cpp/network_param_ipc_traits.h
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/services/network/public/mojom/cors.mojom
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/services/network/public/mojom/fetch_api.mojom
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/services/network/public/mojom/request_context_frame_type.mojom
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/third_party/WebKit/Source/core/loader/private/FrameClientHintsPreferencesContext.cpp
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/third_party/WebKit/Source/modules/cachestorage/Cache.cpp
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/third_party/WebKit/Source/platform/loader/fetch/ClientHintsPreferences.cpp
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/third_party/WebKit/public/mojom/page/page_visibility_state.mojom
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/third_party/WebKit/public/mojom/service_worker/service_worker_client.mojom
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/third_party/WebKit/public/mojom/service_worker/service_worker_error_type.mojom
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/third_party/WebKit/public/mojom/service_worker/service_worker_state.mojom
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/third_party/WebKit/public/platform/WebClientHintsType.h
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/third_party/WebKit/public/platform/modules/cache_storage/cache_storage.mojom
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorkerClientsInfo.h
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/third_party/WebKit/public/platform/web_client_hints_types.mojom
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/tools/metrics/histograms/README.md
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/ui/accessibility/ax_enums.mojom
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/ui/accessibility/ax_node_data.cc
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/ui/accessibility/ax_tree.cc
[modify] https://crrev.com/cda1df5bb80803b84cb8adbfbd83d21f94cf0282/ui/accessibility/platform/ax_platform_relation_win.cc

Project Member

Comment 9 by bugdroid1@chromium.org, Mar 31 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a67dd55f55a4165c1d69df6fd502e7672e2c556d

commit a67dd55f55a4165c1d69df6fd502e7672e2c556d
Author: Daniel Cheng <dcheng@chromium.org>
Date: Sat Mar 31 02:30:46 2018

Normalize definition of CacheMetrics::kMaxValue.

For consistency, kMaxValue should share the value of the highest enumerator,
not be unique.

This also updates the internal macros for enumeration histograms to allow
flags to be passed through, so it can be reused for both the regular and
the local versions of the histogram macros.

Bug: 705169, 742517
Change-Id: Ia93e18e3a69bd828f4cbc4c7f1020b4cf3f13ca1
Reviewed-on: https://chromium-review.googlesource.com/988678
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Marijn Kruisselbrink <mek@chromium.org>
Cr-Commit-Position: refs/heads/master@{#547363}
[modify] https://crrev.com/a67dd55f55a4165c1d69df6fd502e7672e2c556d/base/metrics/histogram_macros.h
[modify] https://crrev.com/a67dd55f55a4165c1d69df6fd502e7672e2c556d/base/metrics/histogram_macros_internal.h
[modify] https://crrev.com/a67dd55f55a4165c1d69df6fd502e7672e2c556d/base/metrics/histogram_macros_local.h
[modify] https://crrev.com/a67dd55f55a4165c1d69df6fd502e7672e2c556d/content/renderer/dom_storage/local_storage_cached_areas.cc

Project Member

Comment 10 by bugdroid1@chromium.org, Apr 2 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/05ce6db9504918a85d767b14ba384e0df97ac0c1

commit 05ce6db9504918a85d767b14ba384e0df97ac0c1
Author: Daniel Cheng <dcheng@chromium.org>
Date: Mon Apr 02 18:03:13 2018

Use built-in kMaxValue enumerator for VideoDecodeAccelerator::Recent.

Also use the two argument version of UMA_HISTOGRAM_ENUMERATION which
autodeduces the boundary value.

Bug: 742517
Change-Id: I41bb007b16869456baa16b5ab8753c1bd3e565cc
Reviewed-on: https://chromium-review.googlesource.com/989418
Reviewed-by: Luis Hector Chavez <lhchavez@chromium.org>
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#547470}
[modify] https://crrev.com/05ce6db9504918a85d767b14ba384e0df97ac0c1/components/arc/common/video_decode_accelerator.mojom
[modify] https://crrev.com/05ce6db9504918a85d767b14ba384e0df97ac0c1/components/arc/video_accelerator/gpu_arc_video_decode_accelerator.cc

Project Member

Comment 13 by bugdroid1@chromium.org, Apr 12 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0f81237aa7519604c0f788a24cb0f54eb29e377e

commit 0f81237aa7519604c0f788a24cb0f54eb29e377e
Author: Daniel Cheng <dcheng@chromium.org>
Date: Thu Apr 12 00:28:59 2018

Enable chrome clang plugin check for kMaxValue enumerator.

Bug: 705169, 742517
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I105debbc2ccca76bd251d1f068a2fefb8bba3e09
Reviewed-on: https://chromium-review.googlesource.com/1004447
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#549975}
[modify] https://crrev.com/0f81237aa7519604c0f788a24cb0f54eb29e377e/base/metrics/histogram_macros_unittest.cc
[modify] https://crrev.com/0f81237aa7519604c0f788a24cb0f54eb29e377e/build/config/clang/BUILD.gn
[modify] https://crrev.com/0f81237aa7519604c0f788a24cb0f54eb29e377e/gpu/ipc/service/gpu_vsync_provider_win.cc

Project Member

Comment 15 by bugdroid1@chromium.org, Aug 2

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/aa4d8e066c4c416f9171c594e37107b46c9cf757

commit aa4d8e066c4c416f9171c594e37107b46c9cf757
Author: Daniel Cheng <dcheng@chromium.org>
Date: Thu Aug 02 18:04:45 2018

Use built-in kMaxValue enumerator for LatencyInfo mojo enums.

There's no need to define _LAST enumerators, since Mojo provides these
automatically.

Bug: 742517
Change-Id: Ibafea09dd000cf14db4033790bef6a860b5030e6
Reviewed-on: https://chromium-review.googlesource.com/1159263
Reviewed-by: Timothy Dresser <tdresser@chromium.org>
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#580245}
[modify] https://crrev.com/aa4d8e066c4c416f9171c594e37107b46c9cf757/ui/latency/mojo/latency_info.mojom
[modify] https://crrev.com/aa4d8e066c4c416f9171c594e37107b46c9cf757/ui/latency/mojo/latency_info_struct_traits.cc
[modify] https://crrev.com/aa4d8e066c4c416f9171c594e37107b46c9cf757/ui/latency/mojo/latency_info_struct_traits.h

Project Member

Comment 16 by bugdroid1@chromium.org, Sep 19

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/657636e627dc25e0b153295240cedd358dd98dbd

commit 657636e627dc25e0b153295240cedd358dd98dbd
Author: Daniel Cheng <dcheng@chromium.org>
Date: Wed Sep 19 17:34:56 2018

Update ARC enums to use kMaxValue enumerator for UMAs

Bug: 742517
Change-Id: Id5ce54250468e9172f65f5dd79b522d08306e086
Reviewed-on: https://chromium-review.googlesource.com/1233121
Reviewed-by: Xiyuan Xia <xiyuan@chromium.org>
Reviewed-by: Yusuke Sato <yusukes@chromium.org>
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#592458}
[modify] https://crrev.com/657636e627dc25e0b153295240cedd358dd98dbd/ash/system/message_center/arc/arc_notification_content_view.cc
[modify] https://crrev.com/657636e627dc25e0b153295240cedd358dd98dbd/ash/system/message_center/arc/arc_notification_item_impl.cc
[modify] https://crrev.com/657636e627dc25e0b153295240cedd358dd98dbd/chrome/browser/chromeos/apps/intent_helper/apps_navigation_throttle.cc
[modify] https://crrev.com/657636e627dc25e0b153295240cedd358dd98dbd/chrome/browser/chromeos/apps/intent_helper/apps_navigation_throttle.h
[modify] https://crrev.com/657636e627dc25e0b153295240cedd358dd98dbd/chrome/browser/chromeos/arc/arc_optin_uma.cc
[modify] https://crrev.com/657636e627dc25e0b153295240cedd358dd98dbd/chrome/browser/chromeos/arc/arc_optin_uma.h
[modify] https://crrev.com/657636e627dc25e0b153295240cedd358dd98dbd/chrome/browser/chromeos/arc/intent_helper/start_smart_selection_action_menu.cc
[modify] https://crrev.com/657636e627dc25e0b153295240cedd358dd98dbd/chrome/browser/chromeos/file_manager/arc_file_tasks.cc
[modify] https://crrev.com/657636e627dc25e0b153295240cedd358dd98dbd/chrome/browser/chromeos/note_taking_helper.cc
[modify] https://crrev.com/657636e627dc25e0b153295240cedd358dd98dbd/chrome/browser/ui/app_list/arc/arc_app_utils.cc
[modify] https://crrev.com/657636e627dc25e0b153295240cedd358dd98dbd/components/arc/intent_helper/link_handler_model.cc
[modify] https://crrev.com/657636e627dc25e0b153295240cedd358dd98dbd/components/arc/metrics/arc_metrics_constants.h
[modify] https://crrev.com/657636e627dc25e0b153295240cedd358dd98dbd/components/arc/metrics/arc_metrics_service.cc
[modify] https://crrev.com/657636e627dc25e0b153295240cedd358dd98dbd/components/arc/metrics/arc_metrics_service.h

Blockedon: 879643
Project Member

Comment 18 by bugdroid1@chromium.org, Oct 16

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d6c4c54b5a6dbbe14e33e686e140d7d560799a03

commit d6c4c54b5a6dbbe14e33e686e140d7d560799a03
Author: Daniel Cheng <dcheng@chromium.org>
Date: Tue Oct 16 08:39:46 2018

[offline pages] update histogram enums to use kMaxValue

The two-argument version of UMA_HISTOGRAM_ENUMERATION can autodeduce the
correct boundary value, so use that instead of defining a placeholder
enumerator value that needs to be ignored in switch statements.

Bug: 742517, 857134
Change-Id: I74ca2ace85fc6f3955f6f3a5e772e15bad8776e9
Reviewed-on: https://chromium-review.googlesource.com/c/1278060
Reviewed-by: Carlos Knippschild <carlosk@chromium.org>
Reviewed-by: calamity <calamity@chromium.org>
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#599917}
[modify] https://crrev.com/d6c4c54b5a6dbbe14e33e686e140d7d560799a03/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageUtils.java
[modify] https://crrev.com/d6c4c54b5a6dbbe14e33e686e140d7d560799a03/chrome/browser/offline_pages/android/offline_page_bridge.cc
[modify] https://crrev.com/d6c4c54b5a6dbbe14e33e686e140d7d560799a03/chrome/browser/ui/webui/offline/offline_internals_ui_message_handler.cc
[modify] https://crrev.com/d6c4c54b5a6dbbe14e33e686e140d7d560799a03/components/offline_pages/core/client_namespace_constants.h
[modify] https://crrev.com/d6c4c54b5a6dbbe14e33e686e140d7d560799a03/components/offline_pages/core/model/add_page_task_unittest.cc
[modify] https://crrev.com/d6c4c54b5a6dbbe14e33e686e140d7d560799a03/components/offline_pages/core/model/clear_storage_task.h
[modify] https://crrev.com/d6c4c54b5a6dbbe14e33e686e140d7d560799a03/components/offline_pages/core/model/delete_page_task_unittest.cc
[modify] https://crrev.com/d6c4c54b5a6dbbe14e33e686e140d7d560799a03/components/offline_pages/core/model/mark_page_accessed_task.cc
[modify] https://crrev.com/d6c4c54b5a6dbbe14e33e686e140d7d560799a03/components/offline_pages/core/model/offline_page_model_taskified.cc
[modify] https://crrev.com/d6c4c54b5a6dbbe14e33e686e140d7d560799a03/components/offline_pages/core/offline_page_types.h
[modify] https://crrev.com/d6c4c54b5a6dbbe14e33e686e140d7d560799a03/components/offline_pages/core/prefetch/prefetch_importer_impl.cc

Project Member

Comment 19 by bugdroid1@chromium.org, Oct 17

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/75601d0b3031b08e8330369654425b773f473bd1

commit 75601d0b3031b08e8330369654425b773f473bd1
Author: Daniel Cheng <dcheng@chromium.org>
Date: Wed Oct 17 14:24:35 2018

[offline pages] more UMA histogram cleanup

- Update more scoped enums to use kMaxValue instead of defining a dummy
  COUNT enumerator.
- Update more UMA enumeration histograms to use the two-argument version
  of the macro, which autodeduces the boundary value.
- Use base::UmaHistogram* where appropriate instead of manually
  expanding the corresponding macros.

Bug: 742517, 857134
Change-Id: I0feb837ecb41a780c8d3234e9d2e75c23229a24b
Reviewed-on: https://chromium-review.googlesource.com/c/1283250
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Alexei Svitkine <asvitkine@chromium.org>
Reviewed-by: Carlos Knippschild <carlosk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#600384}
[modify] https://crrev.com/75601d0b3031b08e8330369654425b773f473bd1/components/offline_pages/core/background/offliner.h
[modify] https://crrev.com/75601d0b3031b08e8330369654425b773f473bd1/components/offline_pages/core/background/request_coordinator.cc
[modify] https://crrev.com/75601d0b3031b08e8330369654425b773f473bd1/components/offline_pages/core/background/request_coordinator_event_logger.cc
[modify] https://crrev.com/75601d0b3031b08e8330369654425b773f473bd1/components/offline_pages/core/background/request_coordinator_event_logger_unittest.cc
[modify] https://crrev.com/75601d0b3031b08e8330369654425b773f473bd1/components/offline_pages/core/background/request_coordinator_unittest.cc
[modify] https://crrev.com/75601d0b3031b08e8330369654425b773f473bd1/components/offline_pages/core/background/request_notifier.h
[modify] https://crrev.com/75601d0b3031b08e8330369654425b773f473bd1/components/offline_pages/core/model/persistent_page_consistency_check_task.cc
[modify] https://crrev.com/75601d0b3031b08e8330369654425b773f473bd1/components/offline_pages/core/model/startup_maintenance_task.cc
[modify] https://crrev.com/75601d0b3031b08e8330369654425b773f473bd1/components/offline_pages/core/offline_page_metadata_store.cc
[modify] https://crrev.com/75601d0b3031b08e8330369654425b773f473bd1/components/offline_pages/core/offline_store_types.h
[modify] https://crrev.com/75601d0b3031b08e8330369654425b773f473bd1/components/offline_pages/core/prefetch/prefetch_types.h
[modify] https://crrev.com/75601d0b3031b08e8330369654425b773f473bd1/components/offline_pages/core/prefetch/store/prefetch_store.cc
[modify] https://crrev.com/75601d0b3031b08e8330369654425b773f473bd1/components/offline_pages/core/prefetch/tasks/download_completed_task.cc
[modify] https://crrev.com/75601d0b3031b08e8330369654425b773f473bd1/components/offline_pages/core/prefetch/tasks/prefetch_task_test_base_unittest.cc

Cc: -roc...@chromium.org rockot@google.com
Project Member

Comment 21 by bugdroid1@chromium.org, Nov 2

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/57fed1af82de9b80de3b713433367fb786d343e4

commit 57fed1af82de9b80de3b713433367fb786d343e4
Author: Daniel Cheng <dcheng@chromium.org>
Date: Fri Nov 02 19:58:55 2018

Switch MediaSession UMAs to use kMaxValue enumerator value.

clang automatically checks this value is correctly set, and it
simplifies macro usage.

Bug: 742517
Change-Id: I3b53752a7ac00e33167b9fb42fb3801ef8e7d378
Reviewed-on: https://chromium-review.googlesource.com/c/1308082
Reviewed-by: Mounir Lamouri <mlamouri@chromium.org>
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#605030}
[modify] https://crrev.com/57fed1af82de9b80de3b713433367fb786d343e4/content/browser/media/session/media_session_impl.cc
[modify] https://crrev.com/57fed1af82de9b80de3b713433367fb786d343e4/content/browser/media/session/media_session_uma_helper.cc
[modify] https://crrev.com/57fed1af82de9b80de3b713433367fb786d343e4/content/browser/media/session/media_session_uma_helper.h

Project Member

Comment 22 by bugdroid1@chromium.org, Nov 6

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a925cbb58645e5eac9e4c53c48a3a3ac2e363923

commit a925cbb58645e5eac9e4c53c48a3a3ac2e363923
Author: Daniel Cheng <dcheng@chromium.org>
Date: Tue Nov 06 21:52:35 2018

//ui/message_center: make NotifierType a scoped enum

Also get rid of the SIZE placeholder constant, since it requires
additional case statements in switches. Define kMaxValue instead: clang
enforces the correct definition of this value, and the UMA enumeration
histograms can take advantage of it without any weird casting.

Bug: 742517
Tbr: oshima@chromium.org
Tbr: thestig@chromium.org
Change-Id: I34373733f7be363aa1d70827ae88dc03c6934819
Reviewed-on: https://chromium-review.googlesource.com/c/1312685
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Peter Beverloo <peter@chromium.org>
Cr-Commit-Position: refs/heads/master@{#605831}
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ash/accelerators/accelerator_controller.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ash/accessibility/accessibility_controller.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ash/app_menu/notification_menu_controller_unittest.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ash/app_menu/notification_menu_view_unittest.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ash/assistant/assistant_notification_controller.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ash/detachable_base/detachable_base_notification_controller.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ash/display/display_util.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ash/display/resolution_notification_controller.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ash/media/media_notification_controller.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ash/multi_device_setup/multi_device_notification_presenter.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ash/shelf/shelf_controller.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ash/shelf/shelf_controller_unittest.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ash/shell/window_type_launcher.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ash/system/bluetooth/bluetooth_notification_controller.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ash/system/caps_lock_notification_controller.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ash/system/cast/cast_notification_controller.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ash/system/locale/locale_notification_controller.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ash/system/message_center/arc/arc_notification_content_view_unittest.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ash/system/message_center/arc/arc_notification_item_impl.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ash/system/message_center/arc/arc_notification_manager.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ash/system/message_center/arc/arc_notification_view_unittest.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ash/system/message_center/fullscreen_notification_blocker.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ash/system/message_center/inactive_user_notification_blocker_unittest.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ash/system/message_center/notifier_settings_view_unittest.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ash/system/message_center/session_state_notification_blocker_unittest.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ash/system/network/auto_connect_notifier.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ash/system/network/sms_observer.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ash/system/network/wifi_toggle_notification_controller.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ash/system/power/battery_notification.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ash/system/power/dual_role_notification.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ash/system/power/peripheral_battery_notifier.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ash/system/power/power_notification_controller.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ash/system/screen_layout_observer.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ash/system/screen_security/screen_security_notification_controller.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ash/system/session/session_limit_notification_controller.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ash/system/supervised/supervised_notification_controller.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ash/system/tracing_notification_controller.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ash/system/update/update_notification_controller.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/background/background_contents_service.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/background/background_mode_manager_win.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/chromeos/arc/accessibility/arc_accessibility_helper_bridge_unittest.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/chromeos/arc/arc_migration_guide_notification.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/chromeos/arc/notification/arc_boot_error_notification.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/chromeos/arc/notification/arc_provision_notification_service.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/chromeos/arc/notification/arc_supervision_transition_notification.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/chromeos/authpolicy/auth_policy_credentials_manager.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/chromeos/child_accounts/time_limit_notifier.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/chromeos/crostini/crostini_package_installer_notification.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/chromeos/eol_notification.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/chromeos/file_system_provider/notification_manager.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/chromeos/first_run/drive_first_run_controller.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/chromeos/hats/hats_notification_controller.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/chromeos/login/easy_unlock/easy_unlock_notification_controller.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/chromeos/printing/cups_print_job_notification.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/chromeos/tpm_firmware_update_notification.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/chromeos/ui/low_disk_notification.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/download/notification/download_item_notification.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/extensions/api/file_system/request_file_system_notification.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/extensions/api/notifications/extension_notification_handler.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/extensions/api/notifications/notifications_api.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/extensions/api/notifications/notifications_apitest.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/extensions/extension_storage_monitor.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/extensions/extension_system_impl.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/notifications/arc_application_notifier_controller.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/notifications/chrome_ash_message_center_client.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/notifications/chrome_ash_message_center_client.h
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/notifications/chrome_ash_message_center_client_browsertest.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/notifications/extension_notifier_controller.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/notifications/fullscreen_notification_blocker.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/notifications/notification_permission_context.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/notifications/notification_permission_context_apitest.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/notifications/notification_permission_context_unittest.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/notifications/notification_ui_manager_browsertest.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/notifications/notification_ui_manager_unittest.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/notifications/notifier_state_tracker.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/printing/cloud_print/privet_notifications.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/signin/signin_error_notifier_ash.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/sync/sync_error_notifier_ash.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/ui/ash/assistant/assistant_setup.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/ui/ash/chrome_screenshot_grabber.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/ui/ash/network/data_promo_notification.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/ui/ash/network/network_portal_notification_controller.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/ui/ash/network/network_state_notifier.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/ui/ash/network/tether_notification_presenter.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/ui/cocoa/apps/quit_with_apps_controller_mac.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/ui/extensions/extension_installed_notification.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/ui/views/message_center/popups_only_ui_delegate_unittest.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/chrome/browser/usb/web_usb_detector.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/components/exo/notification.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ui/message_center/cocoa/notification_controller_unittest.mm
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ui/message_center/message_center_impl_unittest.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ui/message_center/message_center_stats_collector.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ui/message_center/message_center_stats_collector.h
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ui/message_center/notification_list_unittest.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ui/message_center/popup_timers_controller.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ui/message_center/public/cpp/notification.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ui/message_center/public/cpp/notifier_id.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ui/message_center/public/cpp/notifier_id.h
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ui/message_center/public/mojo/notifier_id.mojom
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ui/message_center/public/mojo/notifier_id.typemap
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ui/message_center/public/mojo/notifier_id_struct_traits.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ui/message_center/public/mojo/notifier_id_struct_traits.h
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ui/message_center/public/mojo/struct_traits_unittest.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ui/message_center/views/notification_menu_model_unittest.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ui/message_center/views/notification_view_md.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ui/message_center/views/notification_view_md_unittest.cc
[modify] https://crrev.com/a925cbb58645e5eac9e4c53c48a3a3ac2e363923/ui/message_center/views/notification_view_unittest.cc

Sign in to add a comment