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

Side by Side Diff: Source/core/html/HTMLAnchorElement.cpp

Issue 15238002: Disallow tabsToLinks setting to prevent tabbing to anchor with tabIndex. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Actually add new test Created 7 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 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2000 Simon Hausmann <hausmann@kde.org> 4 * (C) 2000 Simon Hausmann <hausmann@kde.org>
5 * Copyright (C) 2003, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv ed. 5 * Copyright (C) 2003, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv ed.
6 * (C) 2006 Graham Dennis (graham.dennis@gmail.com) 6 * (C) 2006 Graham Dennis (graham.dennis@gmail.com)
7 * 7 *
8 * This library is free software; you can redistribute it and/or 8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Library General Public 9 * modify it under the terms of the GNU Library General Public
10 * License as published by the Free Software Foundation; either 10 * License as published by the Free Software Foundation; either
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 // Links are focusable by default, but only allow links with tabindex or con tenteditable to be mouse focusable. 156 // Links are focusable by default, but only allow links with tabindex or con tenteditable to be mouse focusable.
157 // https://bugs.webkit.org/show_bug.cgi?id=26856 157 // https://bugs.webkit.org/show_bug.cgi?id=26856
158 if (isLink()) 158 if (isLink())
159 return HTMLElement::supportsFocus(); 159 return HTMLElement::supportsFocus();
160 160
161 return HTMLElement::isMouseFocusable(); 161 return HTMLElement::isMouseFocusable();
162 } 162 }
163 163
164 bool HTMLAnchorElement::isKeyboardFocusable() const 164 bool HTMLAnchorElement::isKeyboardFocusable() const
165 { 165 {
166 if (!isLink())
167 return HTMLElement::isKeyboardFocusable();
168
169 if (!isFocusable()) 166 if (!isFocusable())
170 return false; 167 return false;
171 168
169 // If the tab index is set explicitly, ignore the tabsToLinks
170 // setting and empty bounding box check.
171 if (Element::supportsFocus())
172 return HTMLElement::isKeyboardFocusable();
173
172 Page* page = document().page(); 174 Page* page = document().page();
173 if (!page) 175 if (!page)
174 return false; 176 return false;
175 177
176 if (!page->chrome().client().tabsToLinks()) 178 if (!page->chrome().client().tabsToLinks())
177 return false; 179 return false;
178 180
179 if (isInCanvasSubtree()) 181 if (isInCanvasSubtree())
180 return true; 182 return true;
181 183
(...skipping 668 matching lines...) Expand 10 before | Expand all | Expand 10 after
850 852
851 // The precision of current MouseOver trigger is too low to actually trigger preconnects. 853 // The precision of current MouseOver trigger is too low to actually trigger preconnects.
852 if (motivation == WebKit::WebPreconnectMotivationLinkMouseOver) 854 if (motivation == WebKit::WebPreconnectMotivationLinkMouseOver)
853 return; 855 return;
854 856
855 preconnectToURL(url, motivation); 857 preconnectToURL(url, motivation);
856 m_hasIssuedPreconnect = true; 858 m_hasIssuedPreconnect = true;
857 } 859 }
858 860
859 } 861 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698