Index: chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm |
diff --git a/chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm b/chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm |
index a163bfa7f4dee017de623924ffc0c3ca30deb0e1..816aa1b3af1614ab5ad8f5d578b2acf0613a5c64 100644 |
--- a/chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm |
+++ b/chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm |
@@ -45,6 +45,7 @@ |
#include "chrome/browser/ui/tabs/tab_menu_model.h" |
#include "chrome/browser/ui/tabs/tab_strip_model.h" |
#include "chrome/browser/ui/tabs/tab_strip_model_delegate.h" |
+#include "chrome/browser/ui/tabs/tab_utils.h" |
#include "chrome/common/chrome_switches.h" |
#include "chrome/grit/generated_resources.h" |
#include "components/metrics/proto/omnibox_event.pb.h" |
@@ -251,9 +252,6 @@ NSImage* Overlay(NSImage* ground, NSImage* overlay, CGFloat alpha) { |
- (void)setNewTabButtonHoverState:(BOOL)showHover; |
- (void)themeDidChangeNotification:(NSNotification*)notification; |
- (void)setNewTabImages; |
-- (BOOL)isAnyOtherTab:(content::WebContents*)selected |
- withState:(TabMediaState)state; |
- |
@end |
// A simple view class that contains the traffic light buttons. This class |
@@ -1280,7 +1278,7 @@ NSImage* Overlay(NSImage* ground, NSImage* overlay, CGFloat alpha) { |
[tab setTitle:base::SysUTF16ToNSString(title)]; |
const base::string16& toolTip = chrome::AssembleTabTooltipText( |
- title, [self mediaStateForContents:contents]); |
+ title, chrome::GetTabMediaStateForContents(contents)); |
[tab setToolTip:base::SysUTF16ToNSString(toolTip)]; |
} |
@@ -1633,10 +1631,7 @@ NSImage* Overlay(NSImage* ground, NSImage* overlay, CGFloat alpha) { |
} |
} |
- TabMediaState mediaState = [self mediaStateForContents:contents]; |
- |
- [self updateWindowMediaState:mediaState on:contents]; |
- [tabController setMediaState:mediaState]; |
+ [tabController setMediaState:chrome::GetTabMediaStateForContents(contents)]; |
[tabController updateVisibility]; |
} |
@@ -2301,57 +2296,6 @@ NSImage* Overlay(NSImage* ground, NSImage* overlay, CGFloat alpha) { |
[customWindowControls_ setMouseInside:NO]; |
} |
-// Gets the tab and the media state to check whether the window |
-// media state should be updated or not. If the tab media state is |
-// AUDIO_PLAYING, the window media state should be set to AUDIO_PLAYING. |
-// If the tab media state is AUDIO_MUTING, this method would check if the |
-// window has no other tab with state AUDIO_PLAYING, then the window |
-// media state will be set to AUDIO_MUTING. If the tab media state is NONE, |
-// this method checks if the window has no playing or muting tab, then window |
-// media state will be set as NONE. |
-- (void)updateWindowMediaState:(TabMediaState)mediaState |
- on:(content::WebContents*)selected { |
- NSWindow* window = [tabStripView_ window]; |
- BrowserWindowController* windowController = |
- [BrowserWindowController browserWindowControllerForWindow:window]; |
- if (mediaState == TAB_MEDIA_STATE_NONE) { |
- if (![self isAnyOtherTab:selected |
- withState:TAB_MEDIA_STATE_AUDIO_PLAYING] && |
- ![self isAnyOtherTab:selected withState:TAB_MEDIA_STATE_AUDIO_MUTING]) { |
- [windowController setMediaState:TAB_MEDIA_STATE_NONE]; |
- } else if ([self isAnyOtherTab:selected |
- withState:TAB_MEDIA_STATE_AUDIO_MUTING]) { |
- [windowController setMediaState:TAB_MEDIA_STATE_AUDIO_MUTING]; |
- } |
- } else if (mediaState == TAB_MEDIA_STATE_AUDIO_MUTING) { |
- if (![self isAnyOtherTab:selected withState:TAB_MEDIA_STATE_AUDIO_PLAYING]) |
- [windowController setMediaState:TAB_MEDIA_STATE_AUDIO_MUTING]; |
- } else { |
- [windowController setMediaState:mediaState]; |
- } |
-} |
- |
-// Checks if tabs (excluding selected) has media state equals to the second |
-// parameter. It returns YES when it finds the first tab with the criterion. |
-- (BOOL)isAnyOtherTab:(content::WebContents*)selected |
- withState:(TabMediaState)state { |
- const int existingTabCount = tabStripModel_->count(); |
- for (int i = 0; i < existingTabCount; ++i) { |
- content::WebContents* currentContents = tabStripModel_->GetWebContentsAt(i); |
- if (selected == currentContents) |
- continue; |
- TabMediaState currentMediaStateForContents = |
- [self mediaStateForContents:currentContents]; |
- if (currentMediaStateForContents == state) |
- return YES; |
- } |
- return NO; |
-} |
- |
-- (TabMediaState)mediaStateForContents:(content::WebContents*)contents { |
- return chrome::GetTabMediaStateForContents(contents); |
-} |
- |
- (void)themeDidChangeNotification:(NSNotification*)notification { |
[self setNewTabImages]; |
} |