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

Unified Diff: chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc

Issue 2581023002: Add tab status to accessibility labels (Closed)
Patch Set: Add tab index check. Fixes ChromeVox crash. Created 4 years 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/views/tabs/browser_tab_strip_controller.cc
diff --git a/chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc b/chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc
index 21c34bebee5fc5843b5a1554f7cea70cd6f25836..c7315c6a72d9379e9142b88f0a52d3d9107375a6 100644
--- a/chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc
+++ b/chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc
@@ -34,6 +34,9 @@
#include "components/omnibox/browser/autocomplete_match.h"
#include "components/prefs/pref_service.h"
#include "content/public/browser/browser_thread.h"
+#include "content/public/browser/navigation_controller.h"
+#include "content/public/browser/navigation_entry.h"
+#include "content/public/browser/navigation_handle.h"
#include "content/public/browser/notification_service.h"
#include "content/public/browser/plugin_service.h"
#include "content/public/browser/user_metrics.h"
@@ -54,8 +57,17 @@ namespace {
TabRendererData::NetworkState TabContentsNetworkState(
WebContents* contents) {
- if (!contents || !contents->IsLoadingToDifferentDocument())
+ if (!contents)
return TabRendererData::NETWORK_STATE_NONE;
+
+ if (!contents->IsLoadingToDifferentDocument()) {
+ content::NavigationEntry* entry =
+ contents->GetController().GetLastCommittedEntry();
+ if (entry && (entry->GetPageType() == content::PAGE_TYPE_ERROR))
+ return TabRendererData::NETWORK_STATE_ERROR;
+ return TabRendererData::NETWORK_STATE_NONE;
+ }
+
if (contents->IsWaitingForResponse())
return TabRendererData::NETWORK_STATE_WAITING;
return TabRendererData::NETWORK_STATE_LOADING;
@@ -180,10 +192,12 @@ class BrowserTabStripController::TabContextMenuContents
// BrowserTabStripController, public:
BrowserTabStripController::BrowserTabStripController(Browser* browser,
- TabStripModel* model)
+ TabStripModel* model,
+ BrowserView* browser_view)
: model_(model),
tabstrip_(NULL),
browser_(browser),
+ browser_view_(browser_view),
hover_tab_selector_(model),
weak_ptr_factory_(this) {
model_->AddObserver(this);
@@ -389,14 +403,13 @@ void BrowserTabStripController::StackedLayoutMaybeChanged() {
}
void BrowserTabStripController::OnStartedDraggingTabs() {
- BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser_);
- if (browser_view && !immersive_reveal_lock_.get()) {
+ if (browser_view_ && !immersive_reveal_lock_.get()) {
sky 2017/01/03 23:11:41 browser_view_ should never be null, right?
edwardjung 2017/01/05 16:59:45 Done.
// The top-of-window views should be revealed while the user is dragging
// tabs in immersive fullscreen. The top-of-window views may not be already
// revealed if the user is attempting to attach a tab to a tabstrip
// belonging to an immersive fullscreen window.
immersive_reveal_lock_.reset(
- browser_view->immersive_mode_controller()->GetRevealedLock(
+ browser_view_->immersive_mode_controller()->GetRevealedLock(
ImmersiveModeController::ANIMATE_REVEAL_NO));
}
}
@@ -416,8 +429,13 @@ void BrowserTabStripController::CheckFileSupported(const GURL& url) {
}
SkColor BrowserTabStripController::GetToolbarTopSeparatorColor() const {
- return BrowserView::GetBrowserViewForBrowser(browser_)->frame()
- ->GetFrameView()->GetToolbarTopSeparatorColor();
+ return browser_view_->frame()->GetFrameView()->GetToolbarTopSeparatorColor();
+}
+
+base::string16 BrowserTabStripController::GetAccessibleTabName(
+ const Tab* tab) const {
+ return browser_view_->GetAccessibleTabLabel(
+ false /* include_app_name */, tabstrip_->GetModelIndexOfTab(tab));
}
////////////////////////////////////////////////////////////////////////////////

Powered by Google App Engine
This is Rietveld 408576698