Changeset 169024 in webkit


Ignore:
Timestamp:
May 18, 2014 4:25:17 PM (10 years ago)
Author:
commit-queue@webkit.org
Message:

Input ::selection pseudo class does not work leading to hidden selection
https://bugs.webkit.org/show_bug.cgi?id=38943

Source/WebCore:

Patch by Svetlana Redchenko <redchenko@yandex-team.ru> on 2014-05-18
Reviewed by Darin Adler.

Test: fast/selectors/input-with-selection-pseudo-element.html

When text is selected inside input element, it should change the
color and background color according to the ::selection pseudo element.

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::selectionBackgroundColor):
(WebCore::RenderObject::selectionColor):
(WebCore::RenderObject::selectionPseudoStyle):

  • rendering/RenderObject.h:

LayoutTests:

Patch by Svetlana Redchenko <redchenko@yandex-team.ru> on 2014-05-18
Reviewed by Darin Adler.

  • fast/selectors/input-with-selection-pseudo-element-expected.html: Added.
  • fast/selectors/input-with-selection-pseudo-element.html: Added.
Location:
trunk
Files:
2 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r169019 r169024  
     12014-05-18  Svetlana Redchenko  <redchenko@yandex-team.ru>
     2
     3        Input ::selection pseudo class does not work leading to hidden selection
     4        https://bugs.webkit.org/show_bug.cgi?id=38943
     5       
     6        Reviewed by Darin Adler.
     7
     8        * fast/selectors/input-with-selection-pseudo-element-expected.html: Added.
     9        * fast/selectors/input-with-selection-pseudo-element.html: Added.
     10
    1112014-05-18  Maciej Stachowiak  <mjs@apple.com>
    212
  • trunk/Source/WebCore/ChangeLog

    r169023 r169024  
     12014-05-18  Svetlana Redchenko  <redchenko@yandex-team.ru>
     2
     3        Input ::selection pseudo class does not work leading to hidden selection
     4        https://bugs.webkit.org/show_bug.cgi?id=38943
     5
     6        Reviewed by Darin Adler.
     7
     8        Test: fast/selectors/input-with-selection-pseudo-element.html
     9
     10        When text is selected inside input element, it should change the
     11        color and background color according to the ::selection pseudo element.
     12
     13        * rendering/RenderObject.cpp:
     14        (WebCore::RenderObject::selectionBackgroundColor):
     15        (WebCore::RenderObject::selectionColor):
     16        (WebCore::RenderObject::selectionPseudoStyle):
     17        * rendering/RenderObject.h:
     18
    1192014-05-18  Sam Weinig  <sam@webkit.org>
    220
  • trunk/Source/WebCore/rendering/RenderObject.cpp

    r168971 r169024  
    6363#include "SVGRenderSupport.h"
    6464#include "Settings.h"
     65#include "ShadowRoot.h"
    6566#include "StyleResolver.h"
    6667#include "TransformState.h"
     
    15001501            color = style().visitedDependentColor(CSSPropertyColor).blendWithWhite();
    15011502        else {
    1502             RefPtr<RenderStyle> pseudoStyle = getUncachedPseudoStyle(PseudoStyleRequest(SELECTION));
     1503            RefPtr<RenderStyle> pseudoStyle = selectionPseudoStyle();
    15031504            if (pseudoStyle && pseudoStyle->visitedDependentColor(CSSPropertyBackgroundColor).isValid())
    15041505                color = pseudoStyle->visitedDependentColor(CSSPropertyBackgroundColor).blendWithWhite();
     
    15201521        return color;
    15211522
    1522     if (RefPtr<RenderStyle> pseudoStyle = getUncachedPseudoStyle(PseudoStyleRequest(SELECTION))) {
     1523    if (RefPtr<RenderStyle> pseudoStyle = selectionPseudoStyle()) {
    15231524        color = pseudoStyle->visitedDependentColor(colorProperty);
    15241525        if (!color.isValid())
     
    15281529
    15291530    return color;
     1531}
     1532
     1533PassRefPtr<RenderStyle> RenderObject::selectionPseudoStyle() const
     1534{
     1535    if (isAnonymous())
     1536        return nullptr;
     1537
     1538    if (ShadowRoot* root = m_node.containingShadowRoot()) {
     1539        if (root->type() == ShadowRoot::UserAgentShadowRoot) {
     1540            if (Element* shadowHost = m_node.shadowHost())
     1541                return shadowHost->renderer()->getUncachedPseudoStyle(PseudoStyleRequest(SELECTION));
     1542        }
     1543    }
     1544
     1545    return getUncachedPseudoStyle(PseudoStyleRequest(SELECTION));
    15301546}
    15311547
  • trunk/Source/WebCore/rendering/RenderObject.h

    r168971 r169024  
    898898
    899899    Color selectionColor(int colorProperty) const;
     900    PassRefPtr<RenderStyle> selectionPseudoStyle() const;
    900901
    901902    Node* generatingPseudoHostElement() const;
Note: See TracChangeset for help on using the changeset viewer.