Commit 5482d146 authored by Eric Robinson's avatar Eric Robinson Committed by Commit Bot

Removing csharrison as owner from SubresourceFilter UMA.

I've also declared a few histograms as obsolete where it seemed
appropriate to do so and removed the corresponding code and tests.

Bug: 1143730
Change-Id: I28f75c9e25f6daab4dceeb20ed4f6fc90d6260a7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2424064
Commit-Queue: Eric Robinson <ericrobinson@chromium.org>
Reviewed-by: default avatarEric Robinson <ericrobinson@chromium.org>
Reviewed-by: default avatarCaitlin Fischer <caitlinfischer@google.com>
Reviewed-by: default avatarIlya Sherman <isherman@chromium.org>
Reviewed-by: default avatarCharlie Harrison <csharrison@chromium.org>
Cr-Commit-Position: refs/heads/master@{#825890}
parent 80cb57d4
...@@ -100,10 +100,6 @@ constexpr const char kSubresourceLoadsDisallowedForPage[] = ...@@ -100,10 +100,6 @@ constexpr const char kSubresourceLoadsDisallowedForPage[] =
"SubresourceFilter.PageLoad.NumSubresourceLoads.Disallowed"; "SubresourceFilter.PageLoad.NumSubresourceLoads.Disallowed";
// Names of the performance measurement histograms. // Names of the performance measurement histograms.
constexpr const char kActivationWallDuration[] =
"SubresourceFilter.DocumentLoad.Activation.WallDuration";
constexpr const char kActivationCPUDuration[] =
"SubresourceFilter.DocumentLoad.Activation.CPUDuration";
constexpr const char kEvaluationTotalWallDurationForPage[] = constexpr const char kEvaluationTotalWallDurationForPage[] =
"SubresourceFilter.PageLoad.SubresourceEvaluation.TotalWallDuration"; "SubresourceFilter.PageLoad.SubresourceEvaluation.TotalWallDuration";
constexpr const char kEvaluationTotalCPUDurationForPage[] = constexpr const char kEvaluationTotalCPUDurationForPage[] =
...@@ -1024,14 +1020,6 @@ void ExpectHistogramsAreRecordedForTestFrameSet( ...@@ -1024,14 +1020,6 @@ void ExpectHistogramsAreRecordedForTestFrameSet(
tester.ExpectTotalCount(kEvaluationCPUDuration, tester.ExpectTotalCount(kEvaluationCPUDuration,
time_recorded ? num_subresource_checks : 0); time_recorded ? num_subresource_checks : 0);
// Activation WallDuration histogram is always recorded.
tester.ExpectTotalCount(kActivationWallDuration, 6);
// Activation CPUDuration histogram is recorded only if base::ThreadTicks is
// supported.
tester.ExpectTotalCount(kActivationCPUDuration,
ScopedThreadTimers::IsSupported() ? 6 : 0);
tester.ExpectUniqueSample( tester.ExpectUniqueSample(
kDocumentLoadActivationLevel, kDocumentLoadActivationLevel,
static_cast<base::Histogram::Sample>(mojom::ActivationLevel::kEnabled), static_cast<base::Histogram::Sample>(mojom::ActivationLevel::kEnabled),
...@@ -1095,9 +1083,6 @@ IN_PROC_BROWSER_TEST_F(SubresourceFilterBrowserTestWithoutAdTagging, ...@@ -1095,9 +1083,6 @@ IN_PROC_BROWSER_TEST_F(SubresourceFilterBrowserTestWithoutAdTagging,
tester.ExpectTotalCount(kEvaluationWallDuration, 0); tester.ExpectTotalCount(kEvaluationWallDuration, 0);
tester.ExpectTotalCount(kEvaluationCPUDuration, 0); tester.ExpectTotalCount(kEvaluationCPUDuration, 0);
tester.ExpectTotalCount(kActivationWallDuration, 0);
tester.ExpectTotalCount(kActivationCPUDuration, 0);
// Although SubresourceFilterAgents still record the activation decision. // Although SubresourceFilterAgents still record the activation decision.
tester.ExpectUniqueSample( tester.ExpectUniqueSample(
kDocumentLoadActivationLevel, kDocumentLoadActivationLevel,
......
...@@ -454,57 +454,4 @@ TEST_F(SafeBrowsingTriggeredPopupBlockerTest, ...@@ -454,57 +454,4 @@ TEST_F(SafeBrowsingTriggeredPopupBlockerTest,
EXPECT_FALSE(popup_blocker()->ShouldApplyAbusivePopupBlocker()); EXPECT_FALSE(popup_blocker()->ShouldApplyAbusivePopupBlocker());
} }
TEST_F(SafeBrowsingTriggeredPopupBlockerTest, EnforcementRedirectPosition) {
// Turn on the feature to perform safebrowsing on redirects.
base::test::ScopedFeatureList scoped_feature_list;
const GURL enforce_url("https://enforce.test/");
const GURL warn_url("https://warn.test/");
MarkUrlAsAbusiveEnforce(enforce_url);
MarkUrlAsAbusiveWarning(warn_url);
using subresource_filter::RedirectPosition;
struct {
std::vector<const char*> urls;
base::Optional<RedirectPosition> last_enforcement_position;
} kTestCases[] = {
{{"https://normal.test/"}, base::nullopt},
{{"https://enforce.test/"}, RedirectPosition::kOnly},
{{"https://warn.test/"}, base::nullopt},
{{"https://normal.test/", "https://warn.test/"}, base::nullopt},
{{"https://normal.test/", "https://normal.test/",
"https://enforce.test/"},
RedirectPosition::kLast},
{{"https://enforce.test", "https://normal.test/", "https://warn.test/"},
RedirectPosition::kFirst},
{{"https://warn.test/", "https://normal.test/"}, base::nullopt},
{{"https://normal.test/", "https://enforce.test/",
"https://normal.test/"},
RedirectPosition::kMiddle},
};
for (const auto& test_case : kTestCases) {
base::HistogramTester histograms;
const GURL& first_url = GURL(test_case.urls.front());
auto navigation_simulator =
content::NavigationSimulator::CreateRendererInitiated(first_url,
main_rfh());
for (size_t i = 1; i < test_case.urls.size(); ++i) {
navigation_simulator->Redirect(GURL(test_case.urls[i]));
}
navigation_simulator->Commit();
histograms.ExpectTotalCount(
"SubresourceFilter.PageLoad.Activation.RedirectPosition2.Enforcement",
test_case.last_enforcement_position.has_value() ? 1 : 0);
if (test_case.last_enforcement_position.has_value()) {
histograms.ExpectUniqueSample(
"SubresourceFilter.PageLoad.Activation.RedirectPosition2.Enforcement",
static_cast<int>(test_case.last_enforcement_position.value()), 1);
}
}
}
} // namespace blocked_content } // namespace blocked_content
...@@ -33,19 +33,6 @@ ...@@ -33,19 +33,6 @@
namespace subresource_filter { namespace subresource_filter {
namespace {
// Histogram name on thread timers. Please, use |ExpectThreadTimers| for
// expectation calls corrections.
constexpr char kActivationCPU[] =
"SubresourceFilter.DocumentLoad.Activation.CPUDuration";
int ExpectThreadTimers(int expected) {
return ScopedThreadTimers::IsSupported() ? expected : 0;
}
} // namespace
namespace proto = url_pattern_index::proto; namespace proto = url_pattern_index::proto;
// The tests are parameterized by a bool which enables speculative main frame // The tests are parameterized by a bool which enables speculative main frame
...@@ -484,33 +471,26 @@ TEST_P(ActivationStateComputingThrottleSubFrameTest, DisabledStatePropagated2) { ...@@ -484,33 +471,26 @@ TEST_P(ActivationStateComputingThrottleSubFrameTest, DisabledStatePropagated2) {
EXPECT_TRUE(state.generic_blocking_rules_disabled); EXPECT_TRUE(state.generic_blocking_rules_disabled);
} }
TEST_P(ActivationStateComputingThrottleSubFrameTest, Speculation) { // TODO(crbug.com/1143730): This test needs to verify that
// Use the activation performance metric as a proxy for how many times // ComputeActivationState was called appropriately. Previously this was done
// activation computation occurred. // via looking at performance histograms, but those are now obsolete.
base::HistogramTester main_histogram_tester; TEST_P(ActivationStateComputingThrottleSubFrameTest, DISABLED_Speculation) {
// Main frames don't do speculative lookups, a navigation commit should only // Main frames don't do speculative lookups, a navigation commit should only
// trigger a single ruleset lookup. // trigger a single ruleset lookup.
CreateTestNavigationForMainFrame(GURL("http://example.test/")); CreateTestNavigationForMainFrame(GURL("http://example.test/"));
SimulateStartAndExpectToProceed(); SimulateStartAndExpectToProceed();
base::RunLoop().RunUntilIdle(); base::RunLoop().RunUntilIdle();
int main_frame_checks = dryrun_speculation() ? 1 : 0; // Check that there was one activation decision.
main_histogram_tester.ExpectTotalCount(kActivationCPU,
ExpectThreadTimers(main_frame_checks));
SimulateRedirectAndExpectToProceed(GURL("http://example.test2/")); SimulateRedirectAndExpectToProceed(GURL("http://example.test2/"));
base::RunLoop().RunUntilIdle(); base::RunLoop().RunUntilIdle();
main_frame_checks += dryrun_speculation() ? 1 : 0; // Check that there was one additional activation decision.
main_histogram_tester.ExpectTotalCount(kActivationCPU,
ExpectThreadTimers(main_frame_checks));
mojom::ActivationState state; mojom::ActivationState state;
state.activation_level = mojom::ActivationLevel::kEnabled; state.activation_level = mojom::ActivationLevel::kEnabled;
NotifyPageActivation(state); NotifyPageActivation(state);
SimulateCommitAndExpectToProceed(); SimulateCommitAndExpectToProceed();
main_frame_checks += dryrun_speculation() ? 0 : 1; // Check that there was one additional activation decision.
main_histogram_tester.ExpectTotalCount(kActivationCPU,
ExpectThreadTimers(main_frame_checks));
base::HistogramTester sub_histogram_tester; base::HistogramTester sub_histogram_tester;
CreateSubframeAndInitTestNavigation(GURL("http://example.test/"), CreateSubframeAndInitTestNavigation(GURL("http://example.test/"),
...@@ -519,16 +499,16 @@ TEST_P(ActivationStateComputingThrottleSubFrameTest, Speculation) { ...@@ -519,16 +499,16 @@ TEST_P(ActivationStateComputingThrottleSubFrameTest, Speculation) {
// For subframes, do a ruleset lookup at the start and every redirect. // For subframes, do a ruleset lookup at the start and every redirect.
SimulateStartAndExpectToProceed(); SimulateStartAndExpectToProceed();
base::RunLoop().RunUntilIdle(); base::RunLoop().RunUntilIdle();
sub_histogram_tester.ExpectTotalCount(kActivationCPU, ExpectThreadTimers(1)); // Check that there was one additional activation decision.
SimulateRedirectAndExpectToProceed(GURL("http://example.test2/")); SimulateRedirectAndExpectToProceed(GURL("http://example.test2/"));
base::RunLoop().RunUntilIdle(); base::RunLoop().RunUntilIdle();
sub_histogram_tester.ExpectTotalCount(kActivationCPU, ExpectThreadTimers(2)); // Check that there was one additional activation decision.
// No ruleset lookup required at commit because we've already checked the // No ruleset lookup required at commit because we've already checked the
// latest URL. // latest URL.
SimulateCommitAndExpectToProceed(); SimulateCommitAndExpectToProceed();
sub_histogram_tester.ExpectTotalCount(kActivationCPU, ExpectThreadTimers(2)); // Check that there were no additional activation decisions.
} }
TEST_P(ActivationStateComputingThrottleSubFrameTest, SpeculationWithDelay) { TEST_P(ActivationStateComputingThrottleSubFrameTest, SpeculationWithDelay) {
...@@ -545,11 +525,9 @@ TEST_P(ActivationStateComputingThrottleSubFrameTest, SpeculationWithDelay) { ...@@ -545,11 +525,9 @@ TEST_P(ActivationStateComputingThrottleSubFrameTest, SpeculationWithDelay) {
simulator->Start(); simulator->Start();
EXPECT_FALSE(simulator->IsDeferred()); EXPECT_FALSE(simulator->IsDeferred());
main_histogram_tester.ExpectTotalCount(kActivationCPU, 0);
simulator->Redirect(GURL("http://example.test2/")); simulator->Redirect(GURL("http://example.test2/"));
EXPECT_FALSE(simulator->IsDeferred()); EXPECT_FALSE(simulator->IsDeferred());
main_histogram_tester.ExpectTotalCount(kActivationCPU, 0);
mojom::ActivationState state; mojom::ActivationState state;
state.activation_level = mojom::ActivationLevel::kEnabled; state.activation_level = mojom::ActivationLevel::kEnabled;
...@@ -559,17 +537,12 @@ TEST_P(ActivationStateComputingThrottleSubFrameTest, SpeculationWithDelay) { ...@@ -559,17 +537,12 @@ TEST_P(ActivationStateComputingThrottleSubFrameTest, SpeculationWithDelay) {
EXPECT_TRUE(simulator->IsDeferred()); EXPECT_TRUE(simulator->IsDeferred());
EXPECT_LT(0u, simple_task_runner()->NumPendingTasks()); EXPECT_LT(0u, simple_task_runner()->NumPendingTasks());
simple_task_runner()->RunPendingTasks(); simple_task_runner()->RunPendingTasks();
// If speculation was enabled for this test, will do a lookup at start and
// redirect.
main_histogram_tester.ExpectTotalCount(
kActivationCPU, ExpectThreadTimers(dryrun_speculation() ? 2 : 1));
simulator->Wait(); simulator->Wait();
EXPECT_FALSE(simulator->IsDeferred()); EXPECT_FALSE(simulator->IsDeferred());
EXPECT_EQ(content::NavigationThrottle::PROCEED, EXPECT_EQ(content::NavigationThrottle::PROCEED,
simulator->GetLastThrottleCheckResult()); simulator->GetLastThrottleCheckResult());
simulator->Commit(); simulator->Commit();
base::HistogramTester sub_histogram_tester;
auto subframe_simulator = auto subframe_simulator =
content::NavigationSimulator::CreateRendererInitiated( content::NavigationSimulator::CreateRendererInitiated(
GURL("http://example.test"), GURL("http://example.test"),
...@@ -582,14 +555,12 @@ TEST_P(ActivationStateComputingThrottleSubFrameTest, SpeculationWithDelay) { ...@@ -582,14 +555,12 @@ TEST_P(ActivationStateComputingThrottleSubFrameTest, SpeculationWithDelay) {
// navigation until commit time. // navigation until commit time.
subframe_simulator->Start(); subframe_simulator->Start();
EXPECT_FALSE(subframe_simulator->IsDeferred()); EXPECT_FALSE(subframe_simulator->IsDeferred());
sub_histogram_tester.ExpectTotalCount(kActivationCPU, 0);
// Calling redirect should ensure that the throttle does not receive the // Calling redirect should ensure that the throttle does not receive the
// results of the check, but the task to actually perform the check will still // results of the check, but the task to actually perform the check will still
// happen. // happen.
subframe_simulator->Redirect(GURL("http://example.test2/")); subframe_simulator->Redirect(GURL("http://example.test2/"));
EXPECT_FALSE(subframe_simulator->IsDeferred()); EXPECT_FALSE(subframe_simulator->IsDeferred());
sub_histogram_tester.ExpectTotalCount(kActivationCPU, 0);
// Finish the checks dispatched in the start and redirect phase when the // Finish the checks dispatched in the start and redirect phase when the
// navigation is ready to commit. // navigation is ready to commit.
...@@ -601,7 +572,6 @@ TEST_P(ActivationStateComputingThrottleSubFrameTest, SpeculationWithDelay) { ...@@ -601,7 +572,6 @@ TEST_P(ActivationStateComputingThrottleSubFrameTest, SpeculationWithDelay) {
EXPECT_FALSE(subframe_simulator->IsDeferred()); EXPECT_FALSE(subframe_simulator->IsDeferred());
EXPECT_EQ(content::NavigationThrottle::PROCEED, EXPECT_EQ(content::NavigationThrottle::PROCEED,
simulator->GetLastThrottleCheckResult()); simulator->GetLastThrottleCheckResult());
sub_histogram_tester.ExpectTotalCount(kActivationCPU, ExpectThreadTimers(2));
} }
INSTANTIATE_TEST_SUITE_P(All, INSTANTIATE_TEST_SUITE_P(All,
......
...@@ -26,22 +26,6 @@ mojom::ActivationState ComputeActivationState( ...@@ -26,22 +26,6 @@ mojom::ActivationState ComputeActivationState(
const MemoryMappedRuleset* ruleset) { const MemoryMappedRuleset* ruleset) {
DCHECK(ruleset); DCHECK(ruleset);
SCOPED_UMA_HISTOGRAM_MICRO_TIMER(
"SubresourceFilter.DocumentLoad.Activation.WallDuration");
SCOPED_UMA_HISTOGRAM_MICRO_THREAD_TIMER(
"SubresourceFilter.DocumentLoad.Activation.CPUDuration");
auto page_wall_duration_timer = ScopedTimers::StartIf(
parent_document_origin.opaque(), [](base::TimeDelta delta) {
UMA_HISTOGRAM_MICRO_TIMES(
"SubresourceFilter.PageLoad.Activation.WallDuration", delta);
});
auto page_cpu_duration_timer = ScopedThreadTimers::StartIf(
parent_document_origin.opaque(), [](base::TimeDelta delta) {
UMA_HISTOGRAM_MICRO_TIMES(
"SubresourceFilter.PageLoad.Activation.CPUDuration", delta);
});
IndexedRulesetMatcher matcher(ruleset->data(), ruleset->length()); IndexedRulesetMatcher matcher(ruleset->data(), ruleset->length());
mojom::ActivationState activation_state = parent_activation_state; mojom::ActivationState activation_state = parent_activation_state;
if (activation_state.filtering_disabled_for_document) if (activation_state.filtering_disabled_for_document)
......
...@@ -938,13 +938,6 @@ TEST_F(ContentSubresourceFilterThrottleManagerTest, LogActivation) { ...@@ -938,13 +938,6 @@ TEST_F(ContentSubresourceFilterThrottleManagerTest, LogActivation) {
ExpectActivationSignalForFrame(subframe1, true /* expect_activation */); ExpectActivationSignalForFrame(subframe1, true /* expect_activation */);
tester.ExpectTotalCount(kActivationStateHistogram, 3); tester.ExpectTotalCount(kActivationStateHistogram, 3);
// Only those with page level activation do ruleset lookups.
tester.ExpectTotalCount("SubresourceFilter.PageLoad.Activation.WallDuration",
2);
// The *.CPUDuration histograms are recorded only if base::ThreadTicks is
// supported.
tester.ExpectTotalCount("SubresourceFilter.PageLoad.Activation.CPUDuration",
base::ThreadTicks::IsSupported() ? 2 : 0);
} }
// Check to make sure we don't send an IPC with the ad tag bit for ad frames // Check to make sure we don't send an IPC with the ad tag bit for ad frames
......
...@@ -229,12 +229,8 @@ void SubresourceFilterSafeBrowsingActivationThrottle:: ...@@ -229,12 +229,8 @@ void SubresourceFilterSafeBrowsingActivationThrottle::
builder.SetDryRun(true); builder.SetDryRun(true);
} }
if (auto optional_position = GetEnforcementRedirectPosition(check_results_)) { if (auto position = GetEnforcementRedirectPosition(check_results_)) {
RedirectPosition position = *optional_position; builder.SetEnforcementRedirectPosition(static_cast<int64_t>(*position));
UMA_HISTOGRAM_ENUMERATION(
"SubresourceFilter.PageLoad.Activation.RedirectPosition2.Enforcement",
position);
builder.SetEnforcementRedirectPosition(static_cast<int64_t>(position));
} }
builder.Record(ukm::UkmRecorder::Get()); builder.Record(ukm::UkmRecorder::Get());
......
...@@ -909,9 +909,6 @@ struct RedirectSamplesAndResults { ...@@ -909,9 +909,6 @@ struct RedirectSamplesAndResults {
TEST_F(SubresourceFilterSafeBrowsingActivationThrottleTest, TEST_F(SubresourceFilterSafeBrowsingActivationThrottleTest,
RedirectPositionLogged) { RedirectPositionLogged) {
std::string histogram_string =
"SubresourceFilter.PageLoad.Activation.RedirectPosition2.Enforcement";
// Set up the urls for enforcement. // Set up the urls for enforcement.
GURL normal_url("https://example.regular"); GURL normal_url("https://example.regular");
GURL bad_url("https://example.bad"); GURL bad_url("https://example.bad");
...@@ -944,7 +941,7 @@ TEST_F(SubresourceFilterSafeBrowsingActivationThrottleTest, ...@@ -944,7 +941,7 @@ TEST_F(SubresourceFilterSafeBrowsingActivationThrottleTest,
{{worse_url}, true, RedirectPosition::kOnly}, {{worse_url}, true, RedirectPosition::kOnly},
}; };
for (const auto& test_case : kTestCases) { for (const auto& test_case : kTestCases) {
const base::HistogramTester histograms; ukm::TestAutoSetUkmRecorder test_ukm_recorder;
SimulateStartAndExpectProceed(test_case.urls[0]); SimulateStartAndExpectProceed(test_case.urls[0]);
for (size_t index = 1; index < test_case.urls.size(); index++) { for (size_t index = 1; index < test_case.urls.size(); index++) {
SimulateRedirectAndExpectProceed(test_case.urls[index]); SimulateRedirectAndExpectProceed(test_case.urls[index]);
...@@ -958,11 +955,20 @@ TEST_F(SubresourceFilterSafeBrowsingActivationThrottleTest, ...@@ -958,11 +955,20 @@ TEST_F(SubresourceFilterSafeBrowsingActivationThrottleTest,
EXPECT_EQ(mojom::ActivationLevel::kDisabled, EXPECT_EQ(mojom::ActivationLevel::kDisabled,
*observer()->GetPageActivationForLastCommittedLoad()); *observer()->GetPageActivationForLastCommittedLoad());
} }
using SubresourceFilter = ukm::builders::SubresourceFilter;
auto entries =
test_ukm_recorder.GetEntriesByName(SubresourceFilter::kEntryName);
EXPECT_EQ(1u, entries.size());
const auto* entry = entries[0];
if (test_case.last_enforcement_position.has_value()) { if (test_case.last_enforcement_position.has_value()) {
histograms.ExpectUniqueSample(histogram_string, test_ukm_recorder.ExpectEntryMetric(
*test_case.last_enforcement_position, 1); entry, SubresourceFilter::kEnforcementRedirectPositionName,
static_cast<int64_t>(*test_case.last_enforcement_position));
} else { } else {
histograms.ExpectTotalCount(histogram_string, 0); EXPECT_EQ(
nullptr,
test_ukm_recorder.GetEntryMetric(
entry, SubresourceFilter::kEnforcementRedirectPositionName));
} }
} }
} }
......
...@@ -23,8 +23,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. ...@@ -23,8 +23,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="SubresourceFilter.Actions2" enum="SubresourceFilterActions2" <histogram name="SubresourceFilter.Actions2" enum="SubresourceFilterActions2"
expires_after="2021-04-18"> expires_after="2021-04-18">
<owner>csharrison@chromium.org</owner> <owner>ericrobinson@google.com</owner>
<owner>jkarlin@chromium.org</owner> <owner>jkarlin@chromium.org</owner>
<owner>chrome-ads-histograms@google.com</owner>
<summary> <summary>
Counts of various UI and user action events related to the Counts of various UI and user action events related to the
SubresourceFilter. This will be triggered when portions of the UI are shown SubresourceFilter. This will be triggered when portions of the UI are shown
...@@ -82,42 +83,46 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. ...@@ -82,42 +83,46 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram> </histogram>
<histogram name="SubresourceFilter.DocumentLoad.SubframeFilteringDelay.Allowed" <histogram name="SubresourceFilter.DocumentLoad.SubframeFilteringDelay.Allowed"
units="microseconds" expires_after="M87"> units="microseconds" expires_after="M92">
<owner>csharrison@chromium.org</owner> <owner>ericrobinson@google.com</owner>
<owner>chrome-ads-histograms@google.com</owner>
<summary> <summary>
Records the total time a subframe navigation was delayed while calculating Records the total time a subframe navigation was delayed while calculating
whether it should be disallowed or not. Logged for all navigations that were whether it should be disallowed or not. Logged for all navigations that were
allowed. allowed.
Warning: This metric may include reports from clients with low-resolution This metric uses UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES to acccount for
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports clients with low-resolution clocks.
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary> </summary>
</histogram> </histogram>
<histogram <histogram
name="SubresourceFilter.DocumentLoad.SubframeFilteringDelay.Disallowed2" name="SubresourceFilter.DocumentLoad.SubframeFilteringDelay.Disallowed2"
units="microseconds" expires_after="M87"> units="microseconds" expires_after="M92">
<owner>csharrison@chromium.org</owner> <owner>ericrobinson@google.com</owner>
<owner>justinmiron@google.com</owner> <owner>chrome-ads-histograms@google.com</owner>
<summary> <summary>
Records the total time a subframe navigation was delayed while calculating Records the total time a subframe navigation was delayed while calculating
whether it should be disallowed or not. Logged for all navigations with the whether it should be disallowed or not. Logged for all navigations with the
disallowed load policy. disallowed load policy.
This metric uses UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES to acccount for
clients with low-resolution clocks.
</summary> </summary>
</histogram> </histogram>
<histogram <histogram
name="SubresourceFilter.DocumentLoad.SubframeFilteringDelay.WouldDisallow" name="SubresourceFilter.DocumentLoad.SubframeFilteringDelay.WouldDisallow"
units="microseconds" expires_after="M87"> units="microseconds" expires_after="M92">
<owner>csharrison@chromium.org</owner> <owner>ericrobinson@google.com</owner>
<owner>justinmiron@google.com</owner> <owner>chrome-ads-histograms@google.com</owner>
<summary> <summary>
Records the total time a subframe navigation was delayed while calculating Records the total time a subframe navigation was delayed while calculating
whether it should be disallowed or not. Logged for all navigations with the whether it should be disallowed or not. Logged for all navigations with the
would_disallow load policy. would_disallow load policy.
This metric uses UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES to acccount for
clients with low-resolution clocks.
</summary> </summary>
</histogram> </histogram>
...@@ -134,43 +139,47 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. ...@@ -134,43 +139,47 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="SubresourceFilter.IndexRuleset.NumUnsupportedRules" <histogram name="SubresourceFilter.IndexRuleset.NumUnsupportedRules"
units="rules" expires_after="M90"> units="rules" expires_after="M90">
<owner>csharrison@chromium.org</owner>
<owner>jkarlin@chromium.org</owner> <owner>jkarlin@chromium.org</owner>
<owner>chrome-ads-histograms@google.com</owner>
<summary> <summary>
The number of rules that could be not be successfully indexed and therefore The number of rules that could be not be successfully indexed and therefore
have been ignored. Recorded every time the RulesetService kicks off a have been ignored. Recorded every time the RulesetService kicks off a
ruleset indexing process and it reaches the point where rules are getting ruleset indexing process and it reaches the point where rules are getting
indexed. indexed. This is logged when a new ruleset is indexed for the first time on
Chrome start.
</summary> </summary>
</histogram> </histogram>
<histogram name="SubresourceFilter.IndexRuleset.Verify.Status" <histogram name="SubresourceFilter.IndexRuleset.Verify.Status"
enum="SubresourceFilterVerifyStatus" expires_after="2021-04-04"> enum="SubresourceFilterVerifyStatus" expires_after="2021-04-04">
<owner>ericrobinson@chromium.org</owner> <owner>ericrobinson@chromium.org</owner>
<owner>csharrison@chromium.org</owner> <owner>chrome-ads-histograms@google.com</owner>
<summary> <summary>
The result of the IndexRulesetMatcher Verify method. Either pass if both the The result of the IndexRulesetMatcher Verify method. Either pass if both the
checksum and verifier succeeded, or a value indicating which combination of checksum and verifier succeeded, or a value indicating which combination of
them failed. Note that a zero checksum indicates that the checksum has not them failed. Note that a zero checksum indicates that the checksum has not
yet been stored during indexing (for rulesets indexed prior to the yet been stored during indexing (for rulesets indexed prior to the
checksumming code). checksumming code). This is logged when the indexed ruleset is loaded on
Chrome start.
</summary> </summary>
</histogram> </histogram>
<histogram name="SubresourceFilter.IndexRuleset.Verify2.WallDuration" <histogram name="SubresourceFilter.IndexRuleset.Verify2.WallDuration"
units="ms" expires_after="M85"> units="ms" expires_after="M92">
<owner>csharrison@chromium.org</owner> <owner>ericrobinson@google.com</owner>
<owner>chrome-ads-histograms@google.com</owner>
<summary> <summary>
The total time it took to verify the indexed ruleset in the browser process. The total time it took to verify the indexed ruleset in the browser process.
Logged every time verification occurs, which usually occurs when the first Logged every time verification occurs, which usually occurs when the first
page with activation is navigated to. page with activation is navigated to. This is logged when the indexed
ruleset is loaded on Chrome start.
</summary> </summary>
</histogram> </histogram>
<histogram name="SubresourceFilter.IndexRuleset.WallDuration" units="ms" <histogram name="SubresourceFilter.IndexRuleset.WallDuration" units="ms"
expires_after="M90"> expires_after="M92">
<owner>csharrison@chromium.org</owner>
<owner>jkarlin@chromium.org</owner> <owner>jkarlin@chromium.org</owner>
<owner>chrome-ads-histograms@google.com</owner>
<summary> <summary>
The total time it took to read and index all rules. Includes I/O time for The total time it took to read and index all rules. Includes I/O time for
reading the unindexed rules, but not for writing the indexed ruleset. reading the unindexed rules, but not for writing the indexed ruleset.
...@@ -192,6 +201,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. ...@@ -192,6 +201,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="SubresourceFilter.PageLoad.Activation.CPUDuration" <histogram name="SubresourceFilter.PageLoad.Activation.CPUDuration"
units="microseconds" expires_after="2018-08-30"> units="microseconds" expires_after="2018-08-30">
<obsolete>
Removed in 10/2020 after being expired two years. Presumably not used.
</obsolete>
<owner>csharrison@chromium.org</owner> <owner>csharrison@chromium.org</owner>
<summary> <summary>
Records how much thread CPU time it takes to decide whether subresource Records how much thread CPU time it takes to decide whether subresource
...@@ -208,6 +220,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. ...@@ -208,6 +220,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram <histogram
name="SubresourceFilter.PageLoad.Activation.RedirectPosition2.Enforcement" name="SubresourceFilter.PageLoad.Activation.RedirectPosition2.Enforcement"
enum="RedirectPosition" expires_after="M78"> enum="RedirectPosition" expires_after="M78">
<obsolete>
Removed in 10/2020 after being expired over a year. Presumably not used.
</obsolete>
<owner>ericrobinson@chromium.org</owner> <owner>ericrobinson@chromium.org</owner>
<owner>csharrison@chromium.org</owner> <owner>csharrison@chromium.org</owner>
<summary> <summary>
...@@ -218,6 +233,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. ...@@ -218,6 +233,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="SubresourceFilter.PageLoad.Activation.WallDuration" <histogram name="SubresourceFilter.PageLoad.Activation.WallDuration"
units="microseconds" expires_after="2018-08-30"> units="microseconds" expires_after="2018-08-30">
<obsolete>
Removed in 10/2020 after being expired two years. Presumably not used.
</obsolete>
<owner>csharrison@chromium.org</owner> <owner>csharrison@chromium.org</owner>
<summary> <summary>
Records how long it takes to decide whether subresource filtering should be Records how long it takes to decide whether subresource filtering should be
...@@ -233,8 +251,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. ...@@ -233,8 +251,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="SubresourceFilter.PageLoad.ActivationDecision" <histogram name="SubresourceFilter.PageLoad.ActivationDecision"
enum="SubresourceFilterActivationDecision" expires_after="M90"> enum="SubresourceFilterActivationDecision" expires_after="M90">
<owner>csharrison@chromium.org</owner>
<owner>jkarlin@chromium.org</owner> <owner>jkarlin@chromium.org</owner>
<owner>chrome-ads-histograms@google.com</owner>
<summary> <summary>
Records the policy decision to activate subresource filtering for a page Records the policy decision to activate subresource filtering for a page
load. 'Activated' indicates that subresource filtering was activated. All load. 'Activated' indicates that subresource filtering was activated. All
...@@ -244,7 +262,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. ...@@ -244,7 +262,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="SubresourceFilter.PageLoad.ActivationList" <histogram name="SubresourceFilter.PageLoad.ActivationList"
enum="ActivationList" expires_after="2021-03-07"> enum="ActivationList" expires_after="2021-03-07">
<owner>csharrison@chromium.org</owner> <owner>ericrobinson@google.com</owner>
<owner>chrome-ads-histograms@google.com</owner>
<summary> <summary>
The ActivationList or NONE that the main frame navigation matched with. The ActivationList or NONE that the main frame navigation matched with.
Recorded at WillProcessResponse time for a main frame navigation. Recorded at WillProcessResponse time for a main frame navigation.
...@@ -253,8 +272,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. ...@@ -253,8 +272,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="SubresourceFilter.PageLoad.ActivationState" <histogram name="SubresourceFilter.PageLoad.ActivationState"
enum="SubresourceFilterActivationState" expires_after="2021-03-07"> enum="SubresourceFilterActivationState" expires_after="2021-03-07">
<owner>csharrison@chromium.org</owner> <owner>ericrobinson@google.com</owner>
<owner>chrome-ads-uma@google.com</owner> <owner>chrome-ads-histograms@google.com</owner>
<summary> <summary>
Whenever a document load is committed in a main frame, records whether Whenever a document load is committed in a main frame, records whether
subresource filtering should be activated for that load. Also records the subresource filtering should be activated for that load. Also records the
...@@ -285,9 +304,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. ...@@ -285,9 +304,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram> </histogram>
<histogram name="SubresourceFilter.PageLoad.NumSubresourceLoads.Disallowed" <histogram name="SubresourceFilter.PageLoad.NumSubresourceLoads.Disallowed"
units="resource loads" expires_after="M85"> units="resource loads" expires_after="M92">
<owner>csharrison@chromium.org</owner>
<owner>jkarlin@chromium.org</owner> <owner>jkarlin@chromium.org</owner>
<owner>chrome-ads-histograms@google.com</owner>
<summary> <summary>
Whenever a page load is finished with subresource filtering activated, Whenever a page load is finished with subresource filtering activated,
records the total number of subresource loads that have been disallowed. records the total number of subresource loads that have been disallowed.
...@@ -297,9 +316,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. ...@@ -297,9 +316,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram> </histogram>
<histogram name="SubresourceFilter.PageLoad.NumSubresourceLoads.Evaluated" <histogram name="SubresourceFilter.PageLoad.NumSubresourceLoads.Evaluated"
units="resource loads" expires_after="M85"> units="resource loads" expires_after="M92">
<owner>csharrison@chromium.org</owner>
<owner>jkarlin@chromium.org</owner> <owner>jkarlin@chromium.org</owner>
<owner>chrome-ads-histograms@google.com</owner>
<summary> <summary>
Whenever a page load is finished with subresource filtering activated, Whenever a page load is finished with subresource filtering activated,
records the total number of subresource loads that have been evaluated. This records the total number of subresource loads that have been evaluated. This
...@@ -309,9 +328,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. ...@@ -309,9 +328,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram> </histogram>
<histogram name="SubresourceFilter.PageLoad.NumSubresourceLoads.MatchedRules" <histogram name="SubresourceFilter.PageLoad.NumSubresourceLoads.MatchedRules"
units="resource loads" expires_after="M85"> units="resource loads" expires_after="M92">
<owner>csharrison@chromium.org</owner>
<owner>jkarlin@chromium.org</owner> <owner>jkarlin@chromium.org</owner>
<owner>chrome-ads-histograms@google.com</owner>
<summary> <summary>
Whenever a page load is finished with subresource filtering activated, Whenever a page load is finished with subresource filtering activated,
records the total number of subresource loads that have matched filtering records the total number of subresource loads that have matched filtering
...@@ -321,9 +340,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. ...@@ -321,9 +340,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram> </histogram>
<histogram name="SubresourceFilter.PageLoad.NumSubresourceLoads.Total" <histogram name="SubresourceFilter.PageLoad.NumSubresourceLoads.Total"
units="resource loads" expires_after="M85"> units="resource loads" expires_after="M92">
<owner>csharrison@chromium.org</owner>
<owner>jkarlin@chromium.org</owner> <owner>jkarlin@chromium.org</owner>
<owner>chrome-ads-histograms@google.com</owner>
<summary> <summary>
Whenever a page load is finished with subresource filtering activated, Whenever a page load is finished with subresource filtering activated,
records the total number of subresource loads that have gone through the records the total number of subresource loads that have gone through the
...@@ -332,11 +351,15 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. ...@@ -332,11 +351,15 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram> </histogram>
<histogram name="SubresourceFilter.PageLoad.SafeBrowsingDelay" units="ms" <histogram name="SubresourceFilter.PageLoad.SafeBrowsingDelay" units="ms"
expires_after="M81"> expires_after="M92">
<owner>csharrison@chromium.org</owner> <owner>ericrobinson@google.com</owner>
<owner>chrome-ads-histograms@google.com</owner>
<summary> <summary>
The navigation delay imposed by the subresource filter on a given navigation The navigation delay imposed by the subresource filter on a given navigation
due to Safe Browsing checks. due to Safe Browsing checks.
This metric expired after M83 and was renewed in M88, so it has incomplete
data between M84 and M87 inclusively.
</summary> </summary>
</histogram> </histogram>
...@@ -396,13 +419,16 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. ...@@ -396,13 +419,16 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram> </histogram>
<histogram name="SubresourceFilter.SafeBrowsing.TotalCheckTime" units="ms" <histogram name="SubresourceFilter.SafeBrowsing.TotalCheckTime" units="ms"
expires_after="M81"> expires_after="M92">
<owner>csharrison@chromium.org</owner>
<owner>ericrobinson@chromium.org</owner> <owner>ericrobinson@chromium.org</owner>
<owner>chrome-ads-histograms@google.com</owner>
<summary> <summary>
The time an individual Safe Browsing URL check took before finishing, The time an individual Safe Browsing URL check took before finishing,
including posting tasks to and from the IO thread. Measured on the UI including posting tasks to and from the IO thread. Measured on the UI thread
thread. on navigation.
This metric expired after M83 and was renewed in M88, so it has incomplete
data between M84 and M87 inclusively.
</summary> </summary>
</histogram> </histogram>
...@@ -440,18 +466,19 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. ...@@ -440,18 +466,19 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="SubresourceFilter.WriteRuleset.ReplaceFileError" <histogram name="SubresourceFilter.WriteRuleset.ReplaceFileError"
enum="PlatformFileError" expires_after="M90"> enum="PlatformFileError" expires_after="M90">
<owner>csharrison@chromium.org</owner>
<owner>jkarlin@chromium.org</owner> <owner>jkarlin@chromium.org</owner>
<owner>chrome-ads-histograms@google.com</owner>
<summary> <summary>
Records the exact error whenever writing a ruleset fails at the step where Records the exact error whenever writing a ruleset fails at the step where
the ruleset would be moved from the scratch directory to its final location. the ruleset would be moved from the scratch directory to its final location.
Recorded every time the RulesetService kicks off a ruleset indexing process.
</summary> </summary>
</histogram> </histogram>
<histogram name="SubresourceFilter.WriteRuleset.Result" <histogram name="SubresourceFilter.WriteRuleset.Result"
enum="SubresourceFilterWriteRulesetResult" expires_after="M88"> enum="SubresourceFilterWriteRulesetResult" expires_after="M88">
<owner>ericrobinson@chromium.org</owner> <owner>ericrobinson@chromium.org</owner>
<owner>csharrison@chromium.org</owner> <owner>chrome-ads-histograms@google.com</owner>
<summary> <summary>
Whether indexing a version of the ruleset and writing it to disk succeeded, Whether indexing a version of the ruleset and writing it to disk succeeded,
or failed at a particular step. Recorded every time the RulesetService kicks or failed at a particular step. Recorded every time the RulesetService kicks
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment