| OLD | NEW |
| 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 #import "chrome/browser/ui/cocoa/tabs/tab_strip_controller.h" | 5 #import "chrome/browser/ui/cocoa/tabs/tab_strip_controller.h" |
| 6 | 6 |
| 7 #import <QuartzCore/QuartzCore.h> | 7 #import <QuartzCore/QuartzCore.h> |
| 8 | 8 |
| 9 #include <cmath> | 9 #include <cmath> |
| 10 #include <limits> | 10 #include <limits> |
| (...skipping 22 matching lines...) Expand all Loading... |
| 33 #import "chrome/browser/ui/cocoa/image_button_cell.h" | 33 #import "chrome/browser/ui/cocoa/image_button_cell.h" |
| 34 #import "chrome/browser/ui/cocoa/new_tab_button.h" | 34 #import "chrome/browser/ui/cocoa/new_tab_button.h" |
| 35 #import "chrome/browser/ui/cocoa/tab_contents/favicon_util_mac.h" | 35 #import "chrome/browser/ui/cocoa/tab_contents/favicon_util_mac.h" |
| 36 #import "chrome/browser/ui/cocoa/tab_contents/tab_contents_controller.h" | 36 #import "chrome/browser/ui/cocoa/tab_contents/tab_contents_controller.h" |
| 37 #import "chrome/browser/ui/cocoa/tabs/alert_indicator_button_cocoa.h" | 37 #import "chrome/browser/ui/cocoa/tabs/alert_indicator_button_cocoa.h" |
| 38 #import "chrome/browser/ui/cocoa/tabs/tab_controller.h" | 38 #import "chrome/browser/ui/cocoa/tabs/tab_controller.h" |
| 39 #import "chrome/browser/ui/cocoa/tabs/tab_strip_drag_controller.h" | 39 #import "chrome/browser/ui/cocoa/tabs/tab_strip_drag_controller.h" |
| 40 #import "chrome/browser/ui/cocoa/tabs/tab_strip_model_observer_bridge.h" | 40 #import "chrome/browser/ui/cocoa/tabs/tab_strip_model_observer_bridge.h" |
| 41 #import "chrome/browser/ui/cocoa/tabs/tab_strip_view.h" | 41 #import "chrome/browser/ui/cocoa/tabs/tab_strip_view.h" |
| 42 #import "chrome/browser/ui/cocoa/tabs/tab_view.h" | 42 #import "chrome/browser/ui/cocoa/tabs/tab_view.h" |
| 43 #import "chrome/browser/ui/cocoa/themed_window.h" |
| 43 #include "chrome/browser/ui/find_bar/find_bar.h" | 44 #include "chrome/browser/ui/find_bar/find_bar.h" |
| 44 #include "chrome/browser/ui/find_bar/find_bar_controller.h" | 45 #include "chrome/browser/ui/find_bar/find_bar_controller.h" |
| 45 #include "chrome/browser/ui/find_bar/find_tab_helper.h" | 46 #include "chrome/browser/ui/find_bar/find_tab_helper.h" |
| 46 #include "chrome/browser/ui/tabs/tab_menu_model.h" | 47 #include "chrome/browser/ui/tabs/tab_menu_model.h" |
| 47 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 48 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
| 48 #include "chrome/browser/ui/tabs/tab_strip_model_delegate.h" | 49 #include "chrome/browser/ui/tabs/tab_strip_model_delegate.h" |
| 49 #include "chrome/common/chrome_switches.h" | 50 #include "chrome/common/chrome_switches.h" |
| 50 #include "chrome/grit/generated_resources.h" | 51 #include "chrome/grit/generated_resources.h" |
| 51 #include "components/metrics/proto/omnibox_event.pb.h" | 52 #include "components/metrics/proto/omnibox_event.pb.h" |
| 52 #include "components/omnibox/browser/autocomplete_classifier.h" | 53 #include "components/omnibox/browser/autocomplete_classifier.h" |
| (...skipping 1471 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1524 // Updates the current loading state, replacing the icon view with a favicon, | 1525 // Updates the current loading state, replacing the icon view with a favicon, |
| 1525 // a throbber, the default icon, or nothing at all. | 1526 // a throbber, the default icon, or nothing at all. |
| 1526 - (void)updateIconsForContents:(content::WebContents*)contents | 1527 - (void)updateIconsForContents:(content::WebContents*)contents |
| 1527 atIndex:(NSInteger)modelIndex { | 1528 atIndex:(NSInteger)modelIndex { |
| 1528 if (!contents) | 1529 if (!contents) |
| 1529 return; | 1530 return; |
| 1530 | 1531 |
| 1531 static NSImage* throbberWaitingImage = | 1532 static NSImage* throbberWaitingImage = |
| 1532 ResourceBundle::GetSharedInstance().GetNativeImageNamed( | 1533 ResourceBundle::GetSharedInstance().GetNativeImageNamed( |
| 1533 IDR_THROBBER_WAITING).CopyNSImage(); | 1534 IDR_THROBBER_WAITING).CopyNSImage(); |
| 1535 static NSImage* throbberWaitingIncognitoImage = |
| 1536 ResourceBundle::GetSharedInstance().GetNativeImageNamed( |
| 1537 IDR_THROBBER_WAITING_INCOGNITO).CopyNSImage(); |
| 1534 static NSImage* throbberLoadingImage = | 1538 static NSImage* throbberLoadingImage = |
| 1535 ResourceBundle::GetSharedInstance().GetNativeImageNamed( | 1539 ResourceBundle::GetSharedInstance().GetNativeImageNamed( |
| 1536 IDR_THROBBER).CopyNSImage(); | 1540 IDR_THROBBER).CopyNSImage(); |
| 1541 static NSImage* throbberLoadingIncognitoImage = |
| 1542 ResourceBundle::GetSharedInstance().GetNativeImageNamed( |
| 1543 IDR_THROBBER_INCOGNITO).CopyNSImage(); |
| 1537 static NSImage* sadFaviconImage = | 1544 static NSImage* sadFaviconImage = |
| 1538 ResourceBundle::GetSharedInstance() | 1545 ResourceBundle::GetSharedInstance() |
| 1539 .GetNativeImageNamed(IDR_CRASH_SAD_FAVICON) | 1546 .GetNativeImageNamed(IDR_CRASH_SAD_FAVICON) |
| 1540 .CopyNSImage(); | 1547 .CopyNSImage(); |
| 1541 | 1548 |
| 1542 // Take closing tabs into account. | 1549 // Take closing tabs into account. |
| 1543 NSInteger index = [self indexFromModelIndex:modelIndex]; | 1550 NSInteger index = [self indexFromModelIndex:modelIndex]; |
| 1544 TabController* tabController = [tabArray_ objectAtIndex:index]; | 1551 TabController* tabController = [tabArray_ objectAtIndex:index]; |
| 1545 | 1552 |
| 1546 bool oldHasIcon = [tabController iconView] != nil; | 1553 bool oldHasIcon = [tabController iconView] != nil; |
| 1547 bool newHasIcon = | 1554 bool newHasIcon = |
| 1548 favicon::ShouldDisplayFavicon(contents) || | 1555 favicon::ShouldDisplayFavicon(contents) || |
| 1549 tabStripModel_->IsTabPinned(modelIndex); // Always show icon if pinned. | 1556 tabStripModel_->IsTabPinned(modelIndex); // Always show icon if pinned. |
| 1550 | 1557 |
| 1551 TabLoadingState oldState = [tabController loadingState]; | 1558 TabLoadingState oldState = [tabController loadingState]; |
| 1552 TabLoadingState newState = kTabDone; | 1559 TabLoadingState newState = kTabDone; |
| 1553 NSImage* throbberImage = nil; | 1560 NSImage* throbberImage = nil; |
| 1554 if (contents->IsCrashed()) { | 1561 if (contents->IsCrashed()) { |
| 1555 newState = kTabCrashed; | 1562 newState = kTabCrashed; |
| 1556 newHasIcon = true; | 1563 newHasIcon = true; |
| 1557 } else if (contents->IsWaitingForResponse()) { | 1564 } else if (contents->IsWaitingForResponse()) { |
| 1558 newState = kTabWaiting; | 1565 newState = kTabWaiting; |
| 1559 throbberImage = throbberWaitingImage; | 1566 if (ui::MaterialDesignController::IsModeMaterial() && |
| 1567 [[[tabController view] window] inIncognitoMode]) { |
| 1568 throbberImage = throbberWaitingIncognitoImage; |
| 1569 } else { |
| 1570 throbberImage = throbberWaitingImage; |
| 1571 } |
| 1560 } else if (contents->IsLoadingToDifferentDocument()) { | 1572 } else if (contents->IsLoadingToDifferentDocument()) { |
| 1561 newState = kTabLoading; | 1573 newState = kTabLoading; |
| 1562 throbberImage = throbberLoadingImage; | 1574 if (ui::MaterialDesignController::IsModeMaterial() && |
| 1575 [[[tabController view] window] inIncognitoMode]) { |
| 1576 throbberImage = throbberLoadingIncognitoImage; |
| 1577 } else { |
| 1578 throbberImage = throbberLoadingImage; |
| 1579 } |
| 1563 } | 1580 } |
| 1564 | 1581 |
| 1565 if (oldState != newState) | 1582 if (oldState != newState) |
| 1566 [tabController setLoadingState:newState]; | 1583 [tabController setLoadingState:newState]; |
| 1567 | 1584 |
| 1568 // While loading, this function is called repeatedly with the same state. | 1585 // While loading, this function is called repeatedly with the same state. |
| 1569 // To avoid expensive unnecessary view manipulation, only make changes when | 1586 // To avoid expensive unnecessary view manipulation, only make changes when |
| 1570 // the state is actually changing. When loading is complete (kTabDone), | 1587 // the state is actually changing. When loading is complete (kTabDone), |
| 1571 // every call to this function is significant. | 1588 // every call to this function is significant. |
| 1572 if (newState == kTabDone || oldState != newState || | 1589 if (newState == kTabDone || oldState != newState || |
| (...skipping 736 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2309 | 2326 |
| 2310 - (void)themeDidChangeNotification:(NSNotification*)notification { | 2327 - (void)themeDidChangeNotification:(NSNotification*)notification { |
| 2311 [newTabButton_ setImages]; | 2328 [newTabButton_ setImages]; |
| 2312 } | 2329 } |
| 2313 | 2330 |
| 2314 - (void)setVisualEffectsDisabledForFullscreen:(BOOL)fullscreen { | 2331 - (void)setVisualEffectsDisabledForFullscreen:(BOOL)fullscreen { |
| 2315 [tabStripView_ setVisualEffectsDisabledForFullscreen:fullscreen]; | 2332 [tabStripView_ setVisualEffectsDisabledForFullscreen:fullscreen]; |
| 2316 } | 2333 } |
| 2317 | 2334 |
| 2318 @end | 2335 @end |
| OLD | NEW |