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

Unified Diff: third_party/WebKit/Source/core/css/parser/CSSSelectorParser.cpp

Issue 2628923006: Deprecate all -internal-media-controls-* currently expose to web contents. (Closed)
Patch Set: fix rebase Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/css/parser/CSSSelectorParser.cpp
diff --git a/third_party/WebKit/Source/core/css/parser/CSSSelectorParser.cpp b/third_party/WebKit/Source/core/css/parser/CSSSelectorParser.cpp
index 37b6f8f3de33d5a2695c83a2bab09fbf2a5380f8..221797dff6d4a53bbf842a89442dedd7eca8807f 100644
--- a/third_party/WebKit/Source/core/css/parser/CSSSelectorParser.cpp
+++ b/third_party/WebKit/Source/core/css/parser/CSSSelectorParser.cpp
@@ -7,6 +7,7 @@
#include "core/css/CSSSelectorList.h"
#include "core/css/StyleSheetContents.h"
#include "core/css/parser/CSSParserContext.h"
+#include "core/frame/Deprecation.h"
#include "core/frame/UseCounter.h"
#include "platform/RuntimeEnabledFeatures.h"
#include "wtf/PtrUtil.h"
@@ -14,84 +15,7 @@
namespace blink {
-static void recordSelectorStats(const CSSParserContext* context,
- const CSSSelectorList& selectorList) {
- if (!context->isUseCounterRecordingEnabled())
- return;
-
- for (const CSSSelector* selector = selectorList.first(); selector;
- selector = CSSSelectorList::next(*selector)) {
- for (const CSSSelector* current = selector; current;
- current = current->tagHistory()) {
- UseCounter::Feature feature = UseCounter::NumberOfFeatures;
- switch (current->getPseudoType()) {
- case CSSSelector::PseudoAny:
- feature = UseCounter::CSSSelectorPseudoAny;
- break;
- case CSSSelector::PseudoUnresolved:
- feature = UseCounter::CSSSelectorPseudoUnresolved;
- break;
- case CSSSelector::PseudoDefined:
- feature = UseCounter::CSSSelectorPseudoDefined;
- break;
- case CSSSelector::PseudoSlotted:
- feature = UseCounter::CSSSelectorPseudoSlotted;
- break;
- case CSSSelector::PseudoContent:
- feature = UseCounter::CSSSelectorPseudoContent;
- break;
- case CSSSelector::PseudoHost:
- feature = UseCounter::CSSSelectorPseudoHost;
- break;
- case CSSSelector::PseudoHostContext:
- feature = UseCounter::CSSSelectorPseudoHostContext;
- break;
- case CSSSelector::PseudoFullScreenAncestor:
- feature = UseCounter::CSSSelectorPseudoFullScreenAncestor;
- break;
- case CSSSelector::PseudoFullScreen:
- feature = UseCounter::CSSSelectorPseudoFullScreen;
- break;
- case CSSSelector::PseudoListBox:
- if (context->mode() != UASheetMode)
- feature = UseCounter::CSSSelectorInternalPseudoListBox;
- break;
- case CSSSelector::PseudoWebKitCustomElement:
- if (context->mode() != UASheetMode) {
- if (current->value() == "-internal-media-controls-cast-button")
- feature = UseCounter::CSSSelectorInternalMediaControlsCastButton;
- else if (current->value() ==
- "-internal-media-controls-overlay-cast-button")
- feature =
- UseCounter::CSSSelectorInternalMediaControlsOverlayCastButton;
- }
- break;
- case CSSSelector::PseudoSpatialNavigationFocus:
- if (context->mode() != UASheetMode)
- feature =
- UseCounter::CSSSelectorInternalPseudoSpatialNavigationFocus;
- break;
- case CSSSelector::PseudoReadOnly:
- if (context->mode() != UASheetMode)
- feature = UseCounter::CSSSelectorPseudoReadOnly;
- break;
- case CSSSelector::PseudoReadWrite:
- if (context->mode() != UASheetMode)
- feature = UseCounter::CSSSelectorPseudoReadWrite;
- break;
- default:
- break;
- }
- if (feature != UseCounter::NumberOfFeatures)
- context->useCounter()->count(feature);
- if (current->relation() == CSSSelector::IndirectAdjacent)
- context->useCounter()->count(UseCounter::CSSSelectorIndirectAdjacent);
- if (current->selectorList())
- recordSelectorStats(context, *current->selectorList());
- }
- }
-}
-
+// static
CSSSelectorList CSSSelectorParser::parseSelector(
CSSParserTokenRange range,
const CSSParserContext* context,
@@ -102,7 +26,7 @@ CSSSelectorList CSSSelectorParser::parseSelector(
if (!range.atEnd())
return CSSSelectorList();
- recordSelectorStats(context, result);
+ parser.recordUsageAndDeprecations(result);
return result;
}
@@ -880,4 +804,113 @@ CSSSelectorParser::splitCompoundAtImplicitShadowCrossingCombinator(
return secondCompound;
}
+void CSSSelectorParser::recordUsageAndDeprecations(
+ const CSSSelectorList& selectorList) {
+ if (!m_context->useCounter())
+ return;
+
+ for (const CSSSelector* selector = selectorList.first(); selector;
+ selector = CSSSelectorList::next(*selector)) {
+ for (const CSSSelector* current = selector; current;
+ current = current->tagHistory()) {
+ UseCounter::Feature feature = UseCounter::NumberOfFeatures;
+ switch (current->getPseudoType()) {
+ case CSSSelector::PseudoAny:
+ feature = UseCounter::CSSSelectorPseudoAny;
+ break;
+ case CSSSelector::PseudoUnresolved:
+ feature = UseCounter::CSSSelectorPseudoUnresolved;
+ break;
+ case CSSSelector::PseudoDefined:
+ feature = UseCounter::CSSSelectorPseudoDefined;
+ break;
+ case CSSSelector::PseudoSlotted:
+ feature = UseCounter::CSSSelectorPseudoSlotted;
+ break;
+ case CSSSelector::PseudoContent:
+ feature = UseCounter::CSSSelectorPseudoContent;
+ break;
+ case CSSSelector::PseudoHost:
+ feature = UseCounter::CSSSelectorPseudoHost;
+ break;
+ case CSSSelector::PseudoHostContext:
+ feature = UseCounter::CSSSelectorPseudoHostContext;
+ break;
+ case CSSSelector::PseudoFullScreenAncestor:
+ feature = UseCounter::CSSSelectorPseudoFullScreenAncestor;
+ break;
+ case CSSSelector::PseudoFullScreen:
+ feature = UseCounter::CSSSelectorPseudoFullScreen;
+ break;
+ case CSSSelector::PseudoListBox:
+ if (m_context->mode() != UASheetMode)
+ feature = UseCounter::CSSSelectorInternalPseudoListBox;
+ break;
+ case CSSSelector::PseudoWebKitCustomElement:
+ if (m_context->mode() != UASheetMode) {
+ if (current->value() == "-internal-media-controls-cast-button") {
+ feature = UseCounter::CSSSelectorInternalMediaControlsCastButton;
+ } else if (current->value() ==
+ "-internal-media-controls-overlay-cast-button") {
+ feature =
+ UseCounter::CSSSelectorInternalMediaControlsOverlayCastButton;
+ } else if (current->value() ==
+ "-internal-media-controls-text-track-list") {
+ feature =
+ UseCounter::CSSSelectorInternalMediaControlsTextTrackList;
+ } else if (current->value() ==
+ "-internal-media-controls-text-track-list-item") {
+ feature =
+ UseCounter::CSSSelectorInternalMediaControlsTextTrackListItem;
+ } else if (current->value() ==
+ "-internal-media-controls-text-track-list-item-input") {
+ feature = UseCounter::
+ CSSSelectorInternalMediaControlsTextTrackListItemInput;
+ } else if (current->value() ==
+ "-internal-media-controls-text-track-list-kind-"
+ "captions") {
+ feature = UseCounter::
+ CSSSelectorInternalMediaControlsTextTrackListKindCaptions;
+ } else if (current->value() ==
+ "-internal-media-controls-text-track-list-kind-"
+ "subtitles") {
+ feature = UseCounter::
+ CSSSelectorInternalMediaControlsTextTrackListKindSubtitles;
+ }
+ }
+ break;
+ case CSSSelector::PseudoSpatialNavigationFocus:
+ if (m_context->mode() != UASheetMode) {
+ feature =
+ UseCounter::CSSSelectorInternalPseudoSpatialNavigationFocus;
+ }
+ break;
+ case CSSSelector::PseudoReadOnly:
+ if (m_context->mode() != UASheetMode)
+ feature = UseCounter::CSSSelectorPseudoReadOnly;
+ break;
+ case CSSSelector::PseudoReadWrite:
+ if (m_context->mode() != UASheetMode)
+ feature = UseCounter::CSSSelectorPseudoReadWrite;
+ break;
+ default:
+ break;
+ }
+ if (feature != UseCounter::NumberOfFeatures) {
+ if (!Deprecation::deprecationMessage(feature).isEmpty() &&
+ m_styleSheet->anyOwnerDocument()) {
+ Deprecation::countDeprecation(*m_styleSheet->anyOwnerDocument(),
+ feature);
+ } else {
+ m_context->useCounter()->count(feature);
+ }
+ }
+ if (current->relation() == CSSSelector::IndirectAdjacent)
+ m_context->useCounter()->count(UseCounter::CSSSelectorIndirectAdjacent);
+ if (current->selectorList())
+ recordUsageAndDeprecations(*current->selectorList());
+ }
+ }
+}
+
} // namespace blink
« no previous file with comments | « third_party/WebKit/Source/core/css/parser/CSSSelectorParser.h ('k') | third_party/WebKit/Source/core/frame/Deprecation.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698