Commit 0733475c authored by Joel Hockey's avatar Joel Hockey Committed by Commit Bot

Hide domain in Tab Hover Card for system web apps

System Web Apps use a domain such as
chrome-untrusted://terminal which should not be
shown to users.

The concept of a domain for System Web Apps is
not so useful, and should not be required
for users to identify or differentiate between
tabs in a System Web App browser.

Bug: 1060863
Change-Id: Ib0fe04b6d6d982162c89d6599522da8669d2553e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2108218
Commit-Queue: Joel Hockey <joelhockey@chromium.org>
Reviewed-by: default avatarPeter Kasting <pkasting@chromium.org>
Cr-Commit-Position: refs/heads/master@{#751613}
parent 5e3b0a50
......@@ -124,6 +124,9 @@ class TabController {
// will cause the tab hover card to be hidden.
virtual void UpdateHoverCard(Tab* tab) = 0;
// Returns whether domain/origin should be shown in the tab hover card.
virtual bool ShowDomainInHoverCard(const Tab* tab) const = 0;
// Returns true if the hover card is showing for the given tab.
virtual bool HoverCardIsShowingForTab(Tab* tab) = 0;
......
......@@ -21,6 +21,7 @@
#include "chrome/browser/ui/views/chrome_layout_provider.h"
#include "chrome/browser/ui/views/chrome_typography.h"
#include "chrome/browser/ui/views/tabs/tab.h"
#include "chrome/browser/ui/views/tabs/tab_controller.h"
#include "chrome/grit/generated_resources.h"
#include "components/tab_count_metrics/tab_count_metrics.h"
#include "components/url_formatter/url_formatter.h"
......@@ -461,17 +462,12 @@ TabHoverCardBubbleView::TabHoverCardBubbleView(Tab* tab)
constexpr int kVerticalMargin = 10;
constexpr int kHorizontalMargin = 18;
constexpr int kLineSpacing = 0;
title_label_->SetProperty(views::kMarginsKey,
gfx::Insets(kVerticalMargin, kHorizontalMargin,
kLineSpacing, kHorizontalMargin));
layout->SetInteriorMargin(gfx::Insets(kVerticalMargin, kHorizontalMargin));
title_label_->SetProperty(
views::kFlexBehaviorKey,
views::FlexSpecification(views::MinimumFlexSizeRule::kScaleToMinimum,
views::MaximumFlexSizeRule::kPreferred));
domain_label_->SetProperty(views::kMarginsKey,
gfx::Insets(kLineSpacing, kHorizontalMargin,
kVerticalMargin, kHorizontalMargin));
domain_label_->SetVisible(tab->controller()->ShowDomainInHoverCard(tab));
widget_ = views::BubbleDialogDelegateView::CreateBubble(this);
set_adjust_if_offscreen(true);
......
......@@ -52,6 +52,7 @@
#include "chrome/browser/ui/views/tabs/tab_strip_observer.h"
#include "chrome/browser/ui/views/tabs/tab_style_views.h"
#include "chrome/browser/ui/views/touch_uma/touch_uma.h"
#include "chrome/browser/ui/web_applications/app_browser_controller.h"
#include "chrome/grit/generated_resources.h"
#include "chrome/grit/theme_resources.h"
#include "components/tab_groups/tab_group_color.h"
......@@ -1852,6 +1853,11 @@ void TabStrip::UpdateHoverCard(Tab* tab) {
hover_card_->FadeOutToHide();
}
bool TabStrip::ShowDomainInHoverCard(const Tab* tab) const {
const auto* app_controller = controller_->GetBrowser()->app_controller();
return !app_controller || !app_controller->is_for_system_web_app();
}
bool TabStrip::HoverCardIsShowingForTab(Tab* tab) {
if (!base::FeatureList::IsEnabled(features::kTabHoverCards))
return false;
......
......@@ -292,6 +292,7 @@ class TabStrip : public views::AccessiblePaneView,
void OnMouseEventInTab(views::View* source,
const ui::MouseEvent& event) override;
void UpdateHoverCard(Tab* tab) override;
bool ShowDomainInHoverCard(const Tab* tab) const override;
bool HoverCardIsShowingForTab(Tab* tab) override;
int GetBackgroundOffset() const override;
int GetStrokeThickness() const override;
......
......@@ -84,6 +84,7 @@ class FakeTabController : public TabController {
void OnMouseEventInTab(views::View* source,
const ui::MouseEvent& event) override {}
void UpdateHoverCard(Tab* tab) override {}
bool ShowDomainInHoverCard(const Tab* tab) const override { return true; }
bool HoverCardIsShowingForTab(Tab* tab) override { return false; }
int GetBackgroundOffset() const override { return 0; }
bool ShouldPaintAsActiveFrame() const override { return true; }
......
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