| 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 69c298a008e9a07d7ba1ddfb160fdb40e06fb3c4..11b5b091ee30a2fbaf16a923242b8dc7b7d7dea2 100644
|
| --- a/chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm
|
| +++ b/chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm
|
| @@ -34,7 +34,7 @@
|
| #import "chrome/browser/ui/cocoa/new_tab_button.h"
|
| #import "chrome/browser/ui/cocoa/tab_contents/favicon_util_mac.h"
|
| #import "chrome/browser/ui/cocoa/tab_contents/tab_contents_controller.h"
|
| -#import "chrome/browser/ui/cocoa/tabs/media_indicator_view.h"
|
| +#import "chrome/browser/ui/cocoa/tabs/media_indicator_button.h"
|
| #import "chrome/browser/ui/cocoa/tabs/tab_controller.h"
|
| #import "chrome/browser/ui/cocoa/tabs/tab_strip_drag_controller.h"
|
| #import "chrome/browser/ui/cocoa/tabs/tab_strip_model_observer_bridge.h"
|
| @@ -824,6 +824,16 @@ NSImage* Overlay(NSImage* ground, NSImage* overlay, CGFloat alpha) {
|
| }
|
| }
|
|
|
| +// Called when the user clicks the tab audio indicator to mute the tab.
|
| +- (void)toggleMute:(id)sender {
|
| + DCHECK([sender isKindOfClass:[TabView class]]);
|
| + NSInteger index = [self modelIndexForTabView:sender];
|
| + if (!tabStripModel_->ContainsIndex(index))
|
| + return;
|
| + WebContents* contents = tabStripModel_->GetWebContentsAt(index);
|
| + chrome::SetTabAudioMuted(contents, !chrome::IsTabAudioMuted(contents));
|
| +}
|
| +
|
| // Called when the user closes a tab. Asks the model to close the tab. |sender|
|
| // is the TabView that is potentially going away.
|
| - (void)closeTab:(id)sender {
|
| @@ -1616,20 +1626,8 @@ NSImage* Overlay(NSImage* ground, NSImage* overlay, CGFloat alpha) {
|
| if (newHasIcon) {
|
| if (newState == kTabDone) {
|
| [tabController setIconImage:[self iconImageForContents:contents]];
|
| - const TabMediaState mediaState =
|
| - chrome::GetTabMediaStateForContents(contents);
|
| - // Create MediaIndicatorView upon first use.
|
| - if (mediaState != TAB_MEDIA_STATE_NONE &&
|
| - ![tabController mediaIndicatorView]) {
|
| - MediaIndicatorView* const mediaIndicatorView =
|
| - [[[MediaIndicatorView alloc] init] autorelease];
|
| - [tabController setMediaIndicatorView:mediaIndicatorView];
|
| - }
|
| - [[tabController mediaIndicatorView] updateIndicator:mediaState];
|
| } else if (newState == kTabCrashed) {
|
| [tabController setIconImage:sadFaviconImage withToastAnimation:YES];
|
| - [[tabController mediaIndicatorView]
|
| - updateIndicator:TAB_MEDIA_STATE_NONE];
|
| } else {
|
| [tabController setIconImage:throbberImage];
|
| }
|
| @@ -1637,6 +1635,10 @@ NSImage* Overlay(NSImage* ground, NSImage* overlay, CGFloat alpha) {
|
| [tabController setIconImage:nil];
|
| }
|
| }
|
| +
|
| + [tabController setMediaState:chrome::GetTabMediaStateForContents(contents)];
|
| +
|
| + [tabController updateVisibility];
|
| }
|
|
|
| // Called when a notification is received from the model that the given tab
|
|
|