Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(697)

Unified Diff: chrome/browser/ui/tabs/tab_utils.cc

Issue 893843007: Experiment to hide close buttons of inactive tabs when using touch (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/tabs/tab_utils.cc
diff --git a/chrome/browser/ui/tabs/tab_utils.cc b/chrome/browser/ui/tabs/tab_utils.cc
index 1f17621f9057367f076a8a60bfc4a6d613ac76b8..a90b0bc4f494cf4ed47ba046129d432633b60d57 100644
--- a/chrome/browser/ui/tabs/tab_utils.cc
+++ b/chrome/browser/ui/tabs/tab_utils.cc
@@ -9,6 +9,7 @@
#include "chrome/browser/media/media_capture_devices_dispatcher.h"
#include "chrome/browser/media/media_stream_capture_indicator.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
+#include "chrome/browser/ui/views/tabs/tab.h"
tdanderson 2015/02/06 20:34:33 I added this so that I can access the static metho
tdanderson 2015/02/10 18:52:17 No longer an issue since I've moved the new logic
#include "chrome/common/chrome_switches.h"
#include "chrome/grit/generated_resources.h"
#include "content/public/browser/web_contents.h"
@@ -80,6 +81,8 @@ TabRecordingIndicatorAnimation::Create() {
} // namespace
bool ShouldTabShowFavicon(int capacity,
+ int width,
+ bool touch_used_last,
bool is_pinned_tab,
bool is_active_tab,
bool has_favicon,
@@ -87,36 +90,67 @@ bool ShouldTabShowFavicon(int capacity,
if (!has_favicon)
return false;
int required_capacity = 1;
- if (ShouldTabShowCloseButton(capacity, is_pinned_tab, is_active_tab))
+ if (ShouldTabShowCloseButton(capacity,
+ width,
+ touch_used_last,
+ is_pinned_tab,
+ is_active_tab)) {
++required_capacity;
- if (ShouldTabShowMediaIndicator(
- capacity, is_pinned_tab, is_active_tab, has_favicon, media_state)) {
+ }
+ if (ShouldTabShowMediaIndicator(capacity,
+ width,
+ touch_used_last,
+ is_pinned_tab,
+ is_active_tab,
+ has_favicon,
+ media_state)) {
++required_capacity;
}
return capacity >= required_capacity;
}
bool ShouldTabShowMediaIndicator(int capacity,
+ int width,
+ bool touch_used_last,
bool is_pinned_tab,
bool is_active_tab,
bool has_favicon,
TabMediaState media_state) {
if (media_state == TAB_MEDIA_STATE_NONE)
return false;
- if (ShouldTabShowCloseButton(capacity, is_pinned_tab, is_active_tab))
+ if (ShouldTabShowCloseButton(capacity,
+ width,
+ touch_used_last,
+ is_pinned_tab,
+ is_active_tab)) {
return capacity >= 2;
+ }
return capacity >= 1;
}
bool ShouldTabShowCloseButton(int capacity,
+ int width,
+ bool touch_used_last,
bool is_pinned_tab,
bool is_active_tab) {
if (is_pinned_tab)
return false;
else if (is_active_tab)
return true;
- else
- return capacity >= 3;
+
+ if (touch_used_last) {
+ std::string switch_value =
+ base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
+ switches::kTabCloseButtonsHiddenWithTouch);
+ if (switch_value == "always")
sky 2015/02/07 00:09:39 This code is basically saying if touch_used_last (
tdanderson 2015/02/10 18:52:17 Done.
+ return false;
+ else if (switch_value == "narrow" && width < Tab::GetStandardSize().width())
+ return false;
+ else if (switch_value == "stacked" && width <= Tab::GetTouchWidth())
+ return false;
+ }
+
+ return capacity >= 3;
}
bool IsPlayingAudio(content::WebContents* contents) {

Powered by Google App Engine
This is Rietveld 408576698