Commit 8fad2902 authored by Devlin Cronin's avatar Devlin Cronin Committed by Commit Bot

[Extensions Metrics] Fix integer division error

There was an integer division error in reporting one of our percentages.
Fix it, and add a test to cover the case.

Bug: None
Change-Id: Ibc1993852644c86fdfe356862cbb8e5bc51644dd
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2265420Reviewed-by: default avatarCaroline Rising <corising@chromium.org>
Reviewed-by: default avatarSteven Holte <holte@chromium.org>
Commit-Queue: Devlin <rdevlin.cronin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#782684}
parent 83a75bec
......@@ -519,11 +519,11 @@ void ToolbarActionsModel::InitializeActionList() {
if (!profile_->IsOffTheRecord() && !action_ids_.empty()) {
base::UmaHistogramCounts100("Extensions.Toolbar.PinnedExtensionCount2",
pinned_action_ids_.size());
double percentage_double =
pinned_action_ids_.size() / action_ids_.size() * 100.0;
double percentage_double = double{pinned_action_ids_.size()} /
double{action_ids_.size()} * 100.0;
int percentage = int{percentage_double};
base::UmaHistogramPercentage(
"Extensions.Toolbar.PinnedExtensionPercentage2", percentage);
"Extensions.Toolbar.PinnedExtensionPercentage3", percentage);
}
}
}
......
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/ui/toolbar/toolbar_actions_model.h"
#include "base/test/metrics/histogram_tester.h"
#include "base/test/scoped_feature_list.h"
#include "chrome/browser/extensions/extension_browsertest.h"
#include "chrome/browser/ui/ui_features.h"
#include "content/public/test/browser_test.h"
class ToolbarActionsModelBrowserTest : public extensions::ExtensionBrowserTest {
public:
ToolbarActionsModelBrowserTest() {
scoped_feature_list_.InitAndEnableFeature(features::kExtensionsToolbarMenu);
}
~ToolbarActionsModelBrowserTest() override = default;
base::HistogramTester* histogram_tester() { return &histogram_tester_; }
private:
base::test::ScopedFeatureList scoped_feature_list_;
base::HistogramTester histogram_tester_;
};
IN_PROC_BROWSER_TEST_F(ToolbarActionsModelBrowserTest, PRE_PinnedStateMetrics) {
const extensions::Extension* extension1 =
LoadExtension(test_data_dir_.AppendASCII("simple_with_file"));
ASSERT_TRUE(extension1);
const extensions::Extension* extension2 =
LoadExtension(test_data_dir_.AppendASCII("simple_with_icon"));
ASSERT_TRUE(extension2);
ToolbarActionsModel* model = ToolbarActionsModel::Get(profile());
EXPECT_EQ(2u, model->action_ids().size());
EXPECT_FALSE(model->IsActionPinned(extension1->id()));
EXPECT_FALSE(model->IsActionPinned(extension2->id()));
model->SetActionVisibility(extension1->id(), true);
EXPECT_TRUE(model->IsActionPinned(extension1->id()));
EXPECT_FALSE(model->IsActionPinned(extension2->id()));
}
IN_PROC_BROWSER_TEST_F(ToolbarActionsModelBrowserTest, PinnedStateMetrics) {
ToolbarActionsModel* model = ToolbarActionsModel::Get(profile());
EXPECT_EQ(2u, model->action_ids().size());
EXPECT_EQ(1u, model->pinned_action_ids().size());
histogram_tester()->ExpectUniqueSample(
"Extensions.Toolbar.PinnedExtensionPercentage3", 50, 1);
histogram_tester()->ExpectUniqueSample(
"Extensions.Toolbar.PinnedExtensionCount2", 1, 1);
}
......@@ -1292,6 +1292,7 @@ if (!is_android) {
"../browser/ui/thumbnails/thumbnail_tab_helper_browsertest.cc",
"../browser/ui/toolbar/browser_actions_bar_browsertest.cc",
"../browser/ui/toolbar/browser_actions_bar_browsertest.h",
"../browser/ui/toolbar/toolbar_actions_model_browsertest.cc",
"../browser/ui/update_chrome_dialog_browsertest.cc",
"../browser/ui/views/apps/app_info_dialog/app_info_dialog_views_browsertest.cc",
"../browser/ui/views/bookmarks/bookmark_bar_view_browsertest.cc",
......
......@@ -59089,6 +59089,21 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Extensions.Toolbar.PinnedExtensionPercentage2" units="%"
expires_after="2021-06-30">
<obsolete>
Replaced by Extensions.Toolbar.PinnedExtensionPercentage3 in 2020/05.
</obsolete>
<owner>rdevlin.cronin@chromium.org</owner>
<owner>extensions-core@chromium.org</owner>
<summary>
The percentage of extensions that the user has pinned to the toolbar (i.e.,
this will be 100 if the user has every extension pinned). Recorded once per
profile during initialization if the user has at least one extension with an
action in the toolbar.
</summary>
</histogram>
<histogram name="Extensions.Toolbar.PinnedExtensionPercentage3" units="%"
expires_after="2021-06-30">
<owner>rdevlin.cronin@chromium.org</owner>
<owner>extensions-core@chromium.org</owner>
<summary>
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