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

Side by Side Diff: Source/core/css/CSSSelector.cpp

Issue 210713002: Implement ::shadow pseudo element and replace /shadow/ with ::shadow. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fixed patch conflict Created 6 years, 9 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 | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999-2003 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999-2003 Lars Knoll (knoll@kde.org)
3 * 1999 Waldo Bastian (bastian@kde.org) 3 * 1999 Waldo Bastian (bastian@kde.org)
4 * 2001 Andreas Schlapbach (schlpbch@iam.unibe.ch) 4 * 2001 Andreas Schlapbach (schlpbch@iam.unibe.ch)
5 * 2001-2003 Dirk Mueller (mueller@kde.org) 5 * 2001-2003 Dirk Mueller (mueller@kde.org)
6 * Copyright (C) 2002, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv ed. 6 * Copyright (C) 2002, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv ed.
7 * Copyright (C) 2008 David Smith (catfish.man@gmail.com) 7 * Copyright (C) 2008 David Smith (catfish.man@gmail.com)
8 * Copyright (C) 2010 Google Inc. All rights reserved. 8 * Copyright (C) 2010 Google Inc. All rights reserved.
9 * 9 *
10 * This library is free software; you can redistribute it and/or 10 * This library is free software; you can redistribute it and/or
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after
248 case PseudoUserAgentCustomElement: 248 case PseudoUserAgentCustomElement:
249 case PseudoWebKitCustomElement: 249 case PseudoWebKitCustomElement:
250 case PseudoCue: 250 case PseudoCue:
251 case PseudoFutureCue: 251 case PseudoFutureCue:
252 case PseudoPastCue: 252 case PseudoPastCue:
253 case PseudoDistributed: 253 case PseudoDistributed:
254 case PseudoUnresolved: 254 case PseudoUnresolved:
255 case PseudoContent: 255 case PseudoContent:
256 case PseudoHost: 256 case PseudoHost:
257 case PseudoAncestor: 257 case PseudoAncestor:
258 case PseudoShadow:
258 case PseudoFullScreen: 259 case PseudoFullScreen:
259 case PseudoFullScreenDocument: 260 case PseudoFullScreenDocument:
260 case PseudoFullScreenAncestor: 261 case PseudoFullScreenAncestor:
261 return NOPSEUDO; 262 return NOPSEUDO;
262 case PseudoNotParsed: 263 case PseudoNotParsed:
263 ASSERT_NOT_REACHED(); 264 ASSERT_NOT_REACHED();
264 return NOPSEUDO; 265 return NOPSEUDO;
265 } 266 }
266 267
267 ASSERT_NOT_REACHED(); 268 ASSERT_NOT_REACHED();
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
351 {"-webkit-distributed(", CSSSelector::PseudoDistributed, 0}, 352 {"-webkit-distributed(", CSSSelector::PseudoDistributed, 0},
352 {"in-range", CSSSelector::PseudoInRange, 0}, 353 {"in-range", CSSSelector::PseudoInRange, 0},
353 {"out-of-range", CSSSelector::PseudoOutOfRange, 0}, 354 {"out-of-range", CSSSelector::PseudoOutOfRange, 0},
354 {"scope", CSSSelector::PseudoScope, 0}, 355 {"scope", CSSSelector::PseudoScope, 0},
355 {"unresolved", CSSSelector::PseudoUnresolved, 0}, 356 {"unresolved", CSSSelector::PseudoUnresolved, 0},
356 {"host", CSSSelector::PseudoHost, CSSSel ector::RequiresShadowDOM}, 357 {"host", CSSSelector::PseudoHost, CSSSel ector::RequiresShadowDOM},
357 {"host(", CSSSelector::PseudoHost, CSSSel ector::RequiresShadowDOM}, 358 {"host(", CSSSelector::PseudoHost, CSSSel ector::RequiresShadowDOM},
358 {"ancestor", CSSSelector::PseudoAncestor, CSSSel ector::RequiresShadowDOM}, 359 {"ancestor", CSSSelector::PseudoAncestor, CSSSel ector::RequiresShadowDOM},
359 {"ancestor(", CSSSelector::PseudoAncestor, CSSSel ector::RequiresShadowDOM}, 360 {"ancestor(", CSSSelector::PseudoAncestor, CSSSel ector::RequiresShadowDOM},
360 {"content", CSSSelector::PseudoContent, CSSSel ector::RequiresShadowDOM}, 361 {"content", CSSSelector::PseudoContent, CSSSel ector::RequiresShadowDOM},
362 {"shadow", CSSSelector::PseudoShadow, CSSSel ector::RequiresShadowDOM},
361 }; 363 };
362 364
363 static HashMap<StringImpl*, CSSSelector::PseudoType>* nameToPseudoTypeMap() 365 static HashMap<StringImpl*, CSSSelector::PseudoType>* nameToPseudoTypeMap()
364 { 366 {
365 static HashMap<StringImpl*, CSSSelector::PseudoType>* nameToPseudoType = 0; 367 static HashMap<StringImpl*, CSSSelector::PseudoType>* nameToPseudoType = 0;
366 if (!nameToPseudoType) { 368 if (!nameToPseudoType) {
367 nameToPseudoType = new HashMap<StringImpl*, CSSSelector::PseudoType>; 369 nameToPseudoType = new HashMap<StringImpl*, CSSSelector::PseudoType>;
368 370
369 size_t pseudoCount = WTF_ARRAY_LENGTH(pseudoTypeMap); 371 size_t pseudoCount = WTF_ARRAY_LENGTH(pseudoTypeMap);
370 for (size_t i = 0; i < pseudoCount; i++) { 372 for (size_t i = 0; i < pseudoCount; i++) {
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
456 case PseudoScrollbar: 458 case PseudoScrollbar:
457 case PseudoScrollbarCorner: 459 case PseudoScrollbarCorner:
458 case PseudoScrollbarButton: 460 case PseudoScrollbarButton:
459 case PseudoScrollbarThumb: 461 case PseudoScrollbarThumb:
460 case PseudoScrollbarTrack: 462 case PseudoScrollbarTrack:
461 case PseudoScrollbarTrackPiece: 463 case PseudoScrollbarTrackPiece:
462 case PseudoSelection: 464 case PseudoSelection:
463 case PseudoUserAgentCustomElement: 465 case PseudoUserAgentCustomElement:
464 case PseudoWebKitCustomElement: 466 case PseudoWebKitCustomElement:
465 case PseudoContent: 467 case PseudoContent:
468 case PseudoShadow:
466 element = true; 469 element = true;
467 break; 470 break;
468 case PseudoUnknown: 471 case PseudoUnknown:
469 case PseudoEmpty: 472 case PseudoEmpty:
470 case PseudoFirstChild: 473 case PseudoFirstChild:
471 case PseudoFirstOfType: 474 case PseudoFirstOfType:
472 case PseudoLastChild: 475 case PseudoLastChild:
473 case PseudoLastOfType: 476 case PseudoLastOfType:
474 case PseudoOnlyChild: 477 case PseudoOnlyChild:
475 case PseudoOnlyOfType: 478 case PseudoOnlyOfType:
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after
696 if (const CSSSelector* tagHistory = cs->tagHistory()) { 699 if (const CSSSelector* tagHistory = cs->tagHistory()) {
697 switch (cs->relation()) { 700 switch (cs->relation()) {
698 case CSSSelector::Descendant: 701 case CSSSelector::Descendant:
699 if (cs->relationIsAffectedByPseudoContent() && tagHistory->pseudoTyp e() != CSSSelector::PseudoContent) 702 if (cs->relationIsAffectedByPseudoContent() && tagHistory->pseudoTyp e() != CSSSelector::PseudoContent)
700 return tagHistory->selectorText("::-webkit-distributed(" + str.t oString() + rightSide + ")"); 703 return tagHistory->selectorText("::-webkit-distributed(" + str.t oString() + rightSide + ")");
701 return tagHistory->selectorText(" " + str.toString() + rightSide); 704 return tagHistory->selectorText(" " + str.toString() + rightSide);
702 case CSSSelector::Child: 705 case CSSSelector::Child:
703 if (cs->relationIsAffectedByPseudoContent() && tagHistory->pseudoTyp e() != CSSSelector::PseudoContent) 706 if (cs->relationIsAffectedByPseudoContent() && tagHistory->pseudoTyp e() != CSSSelector::PseudoContent)
704 return tagHistory->selectorText("::-webkit-distributed(> " + str .toString() + rightSide + ")"); 707 return tagHistory->selectorText("::-webkit-distributed(> " + str .toString() + rightSide + ")");
705 return tagHistory->selectorText(" > " + str.toString() + rightSide); 708 return tagHistory->selectorText(" > " + str.toString() + rightSide);
706 case CSSSelector::Shadow:
707 return tagHistory->selectorText(" /shadow/ " + str.toString() + righ tSide);
708 case CSSSelector::ShadowDeep: 709 case CSSSelector::ShadowDeep:
709 return tagHistory->selectorText(" /shadow-deep/ " + str.toString() + rightSide); 710 return tagHistory->selectorText(" /shadow-deep/ " + str.toString() + rightSide);
710 case CSSSelector::DirectAdjacent: 711 case CSSSelector::DirectAdjacent:
711 return tagHistory->selectorText(" + " + str.toString() + rightSide); 712 return tagHistory->selectorText(" + " + str.toString() + rightSide);
712 case CSSSelector::IndirectAdjacent: 713 case CSSSelector::IndirectAdjacent:
713 return tagHistory->selectorText(" ~ " + str.toString() + rightSide); 714 return tagHistory->selectorText(" ~ " + str.toString() + rightSide);
714 case CSSSelector::SubSelector: 715 case CSSSelector::SubSelector:
715 ASSERT_NOT_REACHED(); 716 ASSERT_NOT_REACHED();
716 case CSSSelector::ShadowPseudo: 717 case CSSSelector::ShadowPseudo:
717 return tagHistory->selectorText(str.toString() + rightSide); 718 return tagHistory->selectorText(str.toString() + rightSide);
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
888 return false; 889 return false;
889 return (count - m_b) % m_a == 0; 890 return (count - m_b) % m_a == 0;
890 } else { 891 } else {
891 if (count > m_b) 892 if (count > m_b)
892 return false; 893 return false;
893 return (m_b - count) % (-m_a) == 0; 894 return (m_b - count) % (-m_a) == 0;
894 } 895 }
895 } 896 }
896 897
897 } // namespace WebCore 898 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698