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

Side by Side Diff: chrome/browser/ui/views/tabs/tab.h

Issue 591963002: Tab audio mute control (views UI), behind a switch (off by default). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed mpearson's comments; added a few CloseTab UMA's. Created 6 years, 3 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_UI_VIEWS_TABS_TAB_H_ 5 #ifndef CHROME_BROWSER_UI_VIEWS_TABS_TAB_H_
6 #define CHROME_BROWSER_UI_VIEWS_TABS_TAB_H_ 6 #define CHROME_BROWSER_UI_VIEWS_TABS_TAB_H_
7 7
8 #include <list> 8 #include <list>
9 #include <string> 9 #include <string>
10 10
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 private: 140 private:
141 friend class TabTest; 141 friend class TabTest;
142 FRIEND_TEST_ALL_PREFIXES(TabTest, CloseButtonLayout); 142 FRIEND_TEST_ALL_PREFIXES(TabTest, CloseButtonLayout);
143 143
144 friend class TabStripTest; 144 friend class TabStripTest;
145 FRIEND_TEST_ALL_PREFIXES(TabStripTest, TabHitTestMaskWhenStacked); 145 FRIEND_TEST_ALL_PREFIXES(TabStripTest, TabHitTestMaskWhenStacked);
146 FRIEND_TEST_ALL_PREFIXES(TabStripTest, ClippedTabCloseButton); 146 FRIEND_TEST_ALL_PREFIXES(TabStripTest, ClippedTabCloseButton);
147 147
148 // The animation object used to swap the favicon with the sad tab icon. 148 // The animation object used to swap the favicon with the sad tab icon.
149 class FaviconCrashAnimation; 149 class FaviconCrashAnimation;
150 class MediaIndicatorButton;
150 class TabCloseButton; 151 class TabCloseButton;
151 152
152 // Contains a cached image and the values used to generate it. 153 // Contains a cached image and the values used to generate it.
153 struct ImageCacheEntry { 154 struct ImageCacheEntry {
154 ImageCacheEntry(); 155 ImageCacheEntry();
155 ~ImageCacheEntry(); 156 ~ImageCacheEntry();
156 157
157 // ID of the resource used. 158 // ID of the resource used.
158 int resource_id; 159 int resource_id;
159 160
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 void PaintImmersiveTab(gfx::Canvas* canvas); 219 void PaintImmersiveTab(gfx::Canvas* canvas);
219 220
220 // Paint various portions of the Tab 221 // Paint various portions of the Tab
221 void PaintTabBackground(gfx::Canvas* canvas); 222 void PaintTabBackground(gfx::Canvas* canvas);
222 void PaintInactiveTabBackgroundWithTitleChange(gfx::Canvas* canvas); 223 void PaintInactiveTabBackgroundWithTitleChange(gfx::Canvas* canvas);
223 void PaintInactiveTabBackground(gfx::Canvas* canvas); 224 void PaintInactiveTabBackground(gfx::Canvas* canvas);
224 void PaintInactiveTabBackgroundUsingResourceId(gfx::Canvas* canvas, 225 void PaintInactiveTabBackgroundUsingResourceId(gfx::Canvas* canvas,
225 int tab_id); 226 int tab_id);
226 void PaintActiveTabBackground(gfx::Canvas* canvas); 227 void PaintActiveTabBackground(gfx::Canvas* canvas);
227 228
228 // Paints the favicon and media indicator icon, mirrored for RTL if needed. 229 // Paints the favicon, mirrored for RTL if needed.
229 void PaintIcon(gfx::Canvas* canvas); 230 void PaintIcon(gfx::Canvas* canvas);
230 void PaintMediaIndicator(gfx::Canvas* canvas);
231 231
232 // Invoked if data_.network_state changes, or the network_state is not none. 232 // Invoked if data_.network_state changes, or the network_state is not none.
233 void AdvanceLoadingAnimation(TabRendererData::NetworkState old_state, 233 void AdvanceLoadingAnimation(TabRendererData::NetworkState old_state,
234 TabRendererData::NetworkState state); 234 TabRendererData::NetworkState state);
235 235
236 // Returns the number of favicon-size elements that can fit in the tab's 236 // Returns the number of favicon-size elements that can fit in the tab's
237 // current size. 237 // current size.
238 int IconCapacity() const; 238 int IconCapacity() const;
239 239
240 // Returns whether the Tab should display a favicon. 240 // Returns whether the Tab should display a favicon.
(...skipping 16 matching lines...) Expand all
257 257
258 void DisplayCrashedFavicon(); 258 void DisplayCrashedFavicon();
259 void ResetCrashedFavicon(); 259 void ResetCrashedFavicon();
260 260
261 void StopCrashAnimation(); 261 void StopCrashAnimation();
262 void StartCrashAnimation(); 262 void StartCrashAnimation();
263 263
264 // Returns true if the crash animation is currently running. 264 // Returns true if the crash animation is currently running.
265 bool IsPerformingCrashAnimation() const; 265 bool IsPerformingCrashAnimation() const;
266 266
267 // Starts the media indicator fade-in/out animation. There's no stop method
268 // because this is not a continuous animation.
269 void StartMediaIndicatorAnimation();
270
271 // Schedules repaint task for icon. 267 // Schedules repaint task for icon.
272 void ScheduleIconPaint(); 268 void ScheduleIconPaint();
273 269
274 // Returns the rectangle for the light bar in immersive mode. 270 // Returns the rectangle for the light bar in immersive mode.
275 gfx::Rect GetImmersiveBarRect() const; 271 gfx::Rect GetImmersiveBarRect() const;
276 272
277 // Gets the tab id and frame id. 273 // Gets the tab id and frame id.
278 void GetTabIdAndFrameId(views::Widget* widget, 274 void GetTabIdAndFrameId(views::Widget* widget,
279 int* tab_id, 275 int* tab_id,
280 int* frame_id) const; 276 int* frame_id) const;
281 277
278 // Returns |media_indicator_button_|, creating it on-demand.
279 MediaIndicatorButton* LazyGetMediaIndicatorButton();
sky 2014/09/23 22:58:18 Nuke the 'Lazy'. That is, make it GetMediaIndicato
miu 2014/09/24 22:34:16 Done.
280
282 // Performs a one-time initialization of static resources such as tab images. 281 // Performs a one-time initialization of static resources such as tab images.
283 static void InitTabResources(); 282 static void InitTabResources();
284 283
285 // Returns the minimum possible size of a single unselected Tab, not 284 // Returns the minimum possible size of a single unselected Tab, not
286 // including considering touch mode. 285 // including considering touch mode.
287 static gfx::Size GetBasicMinimumUnselectedSize(); 286 static gfx::Size GetBasicMinimumUnselectedSize();
288 287
289 // Loads the images to be used for the tab background. 288 // Loads the images to be used for the tab background.
290 static void LoadTabImages(); 289 static void LoadTabImages();
291 290
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
328 bool should_display_crashed_favicon_; 327 bool should_display_crashed_favicon_;
329 328
330 // Whole-tab throbbing "pulse" animation. 329 // Whole-tab throbbing "pulse" animation.
331 scoped_ptr<gfx::ThrobAnimation> pulse_animation_; 330 scoped_ptr<gfx::ThrobAnimation> pulse_animation_;
332 331
333 scoped_ptr<gfx::MultiAnimation> mini_title_change_animation_; 332 scoped_ptr<gfx::MultiAnimation> mini_title_change_animation_;
334 333
335 // Crash icon animation (in place of favicon). 334 // Crash icon animation (in place of favicon).
336 scoped_ptr<gfx::LinearAnimation> crash_icon_animation_; 335 scoped_ptr<gfx::LinearAnimation> crash_icon_animation_;
337 336
338 // Media indicator fade-in/out animation (i.e., only on show/hide, not a
339 // continuous animation).
340 scoped_ptr<gfx::Animation> media_indicator_animation_;
341 TabMediaState animating_media_state_;
342
343 scoped_refptr<gfx::AnimationContainer> animation_container_; 337 scoped_refptr<gfx::AnimationContainer> animation_container_;
344 338
345 views::ImageButton* close_button_; 339 views::ImageButton* close_button_;
340 MediaIndicatorButton* media_indicator_button_; // NULL until first use.
346 views::Label* title_; 341 views::Label* title_;
347 342
348 bool tab_activated_with_last_tap_down_; 343 bool tab_activated_with_last_tap_down_;
349 344
350 views::GlowHoverController hover_controller_; 345 views::GlowHoverController hover_controller_;
351 346
352 // The bounds of various sections of the display. 347 // The bounds of various sections of the display.
353 gfx::Rect favicon_bounds_; 348 gfx::Rect favicon_bounds_;
354 gfx::Rect media_indicator_bounds_;
355 349
356 // The offset used to paint the inactive background image. 350 // The offset used to paint the inactive background image.
357 gfx::Point background_offset_; 351 gfx::Point background_offset_;
358 352
359 struct TabImage { 353 struct TabImage {
360 gfx::ImageSkia* image_l; 354 gfx::ImageSkia* image_l;
361 gfx::ImageSkia* image_c; 355 gfx::ImageSkia* image_c;
362 gfx::ImageSkia* image_r; 356 gfx::ImageSkia* image_r;
363 int l_width; 357 int l_width;
364 int r_width; 358 int r_width;
(...skipping 18 matching lines...) Expand all
383 SkColor close_button_color_; 377 SkColor close_button_color_;
384 378
385 // As the majority of the tabs are inactive, and painting tabs is slowish, 379 // As the majority of the tabs are inactive, and painting tabs is slowish,
386 // we cache a handful of the inactive tab backgrounds here. 380 // we cache a handful of the inactive tab backgrounds here.
387 static ImageCache* image_cache_; 381 static ImageCache* image_cache_;
388 382
389 DISALLOW_COPY_AND_ASSIGN(Tab); 383 DISALLOW_COPY_AND_ASSIGN(Tab);
390 }; 384 };
391 385
392 #endif // CHROME_BROWSER_UI_VIEWS_TABS_TAB_H_ 386 #endif // CHROME_BROWSER_UI_VIEWS_TABS_TAB_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698