Changeset 169199 in webkit


Ignore:
Timestamp:
May 22, 2014, 6:05:20 AM (11 years ago)
Author:
Antti Koivisto
Message:

Text markers don't paint on simple lines
https://bugs.webkit.org/show_bug.cgi?id=133177

Reviewed by Anders Carlsson.

Source/WebCore:

Marker painting code does not yet support simple lines.

Tests: fast/text/mark-matches-rendering-simple-lines.html

fast/text/mark-matches-rendering.html

  • dom/DocumentMarkerController.cpp:

(WebCore::DocumentMarkerController::addMarker):

Force text blocks with markers to use line boxes.

  • testing/Internals.cpp:

(WebCore::Internals::setMarkedTextMatchesAreHighlighted):

Expose this so we can make reftests for marker rendering.

  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

  • fast/text/mark-matches-rendering-expected.html: Added.
  • fast/text/mark-matches-rendering-simple-lines-expected.html: Added.
  • fast/text/mark-matches-rendering-simple-lines.html: Added.
  • fast/text/mark-matches-rendering.html: Added.
Location:
trunk
Files:
4 added
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r169197 r169199  
     12014-05-22  Antti Koivisto  <antti@apple.com>
     2
     3        Text markers don't paint on simple lines
     4        https://bugs.webkit.org/show_bug.cgi?id=133177
     5
     6        Reviewed by Anders Carlsson.
     7
     8        * fast/text/mark-matches-rendering-expected.html: Added.
     9        * fast/text/mark-matches-rendering-simple-lines-expected.html: Added.
     10        * fast/text/mark-matches-rendering-simple-lines.html: Added.
     11        * fast/text/mark-matches-rendering.html: Added.
     12
    1132014-05-22  Javier Fernandez  <jfernandez@igalia.com>
    214
  • trunk/Source/WebCore/ChangeLog

    r169195 r169199  
     12014-05-22  Antti Koivisto  <antti@apple.com>
     2
     3        Text markers don't paint on simple lines
     4        https://bugs.webkit.org/show_bug.cgi?id=133177
     5
     6        Reviewed by Anders Carlsson.
     7       
     8        Marker painting code does not yet support simple lines.
     9
     10        Tests: fast/text/mark-matches-rendering-simple-lines.html
     11               fast/text/mark-matches-rendering.html
     12
     13        * dom/DocumentMarkerController.cpp:
     14        (WebCore::DocumentMarkerController::addMarker):
     15       
     16            Force text blocks with markers to use line boxes.
     17
     18        * testing/Internals.cpp:
     19        (WebCore::Internals::setMarkedTextMatchesAreHighlighted):
     20       
     21            Expose this so we can make reftests for marker rendering.
     22
     23        * testing/Internals.h:
     24        * testing/Internals.idl:
     25
    1262014-05-22  Manuel Rego Casasnovas  <rego@igalia.com>
    227
  • trunk/Source/WebCore/dom/DocumentMarkerController.cpp

    r164420 r169199  
    3030#include "NodeTraversal.h"
    3131#include "Range.h"
    32 #include "RenderObject.h"
     32#include "RenderBlockFlow.h"
     33#include "RenderText.h"
    3334#include "RenderedDocumentMarker.h"
    3435#include "TextIterator.h"
     
    166167    if (newMarker.endOffset() == newMarker.startOffset())
    167168        return;
     169
     170    if (auto* renderer = node->renderer()) {
     171        // FIXME: Factor the marker painting code out of InlineTextBox and teach simple line layout to use it.
     172        if (renderer->isText())
     173            toRenderText(*renderer).ensureLineBoxes();
     174        else if (renderer->isRenderBlockFlow())
     175            toRenderBlockFlow(*renderer).ensureLineBoxes();
     176    }
    168177
    169178    m_possiblyExistingMarkerTypes.add(newMarker.type());
  • trunk/Source/WebCore/testing/Internals.cpp

    r168843 r169199  
    802802}
    803803
     804void Internals::setMarkedTextMatchesAreHighlighted(bool flag, ExceptionCode& ec)
     805{
     806    Document* document = contextDocument();
     807    if (!document || !document->frame()) {
     808        ec = INVALID_ACCESS_ERR;
     809        return;
     810    }
     811    document->frame()->editor().setMarkedTextMatchesAreHighlighted(flag);
     812}
     813
    804814void Internals::setScrollViewPosition(long x, long y, ExceptionCode& ec)
    805815{
  • trunk/Source/WebCore/testing/Internals.h

    r168843 r169199  
    131131    String markerDescriptionForNode(Node*, const String& markerType, unsigned index, ExceptionCode&);
    132132    void addTextMatchMarker(const Range*, bool isActive);
     133    void setMarkedTextMatchesAreHighlighted(bool, ExceptionCode&);
    133134
    134135    void setScrollViewPosition(long x, long y, ExceptionCode&);
  • trunk/Source/WebCore/testing/Internals.idl

    r168843 r169199  
    8282    [RaisesException] DOMString markerDescriptionForNode(Node node, DOMString markerType, unsigned long index);
    8383    void addTextMatchMarker(Range range, boolean isActive);
     84    [RaisesException] void setMarkedTextMatchesAreHighlighted(boolean flag);
    8485
    8586    [RaisesException] void setScrollViewPosition(long x, long y);
Note: See TracChangeset for help on using the changeset viewer.