Changeset 121866 in webkit


Ignore:
Timestamp:
Jul 4, 2012 10:43:12 AM (12 years ago)
Author:
commit-queue@webkit.org
Message:

Text Autosizing: Add basic framework
https://bugs.webkit.org/show_bug.cgi?id=88655

This adds a highly simplified foundation that subsequent Text Autosizing patches
can build upon. I've refactored this code (since the earlier combined diff
uploaded to http://webkit.org/b/84186) to touch as few files as possible.

Patch by John Mellor <johnme@chromium.org> on 2012-07-04
Reviewed by Adam Barth.

No new tests. I plan to add a test framework as my next Text Autosizing patch.

  • WebCore.gypi:
  • dom/Document.cpp:

(WebCore::Document::Document):

  • dom/Document.h:

(WebCore):
(Document):
(WebCore::Document::textAutosizer):

  • page/FrameView.cpp:

(WebCore::FrameView::layout):

  • rendering/TextAutosizer.cpp: Added.

(WebCore):
(WebCore::TextAutosizer::TextAutosizer):
(WebCore::TextAutosizer::~TextAutosizer):
(WebCore::TextAutosizer::create):
(WebCore::TextAutosizer::boostSubtree):
(WebCore::TextAutosizer::boostBlock):
(WebCore::TextAutosizer::boostText):
(WebCore::TextAutosizer::treatAsInline):
(WebCore::TextAutosizer::traverseNext):
(WebCore::TextAutosizer::cloneRenderStyleWithState):

  • rendering/TextAutosizer.h: Added.

(WebCore):
(TextAutosizer):

Location:
trunk/Source/WebCore
Files:
2 added
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r121865 r121866  
     12012-07-04  John Mellor  <johnme@chromium.org>
     2
     3        Text Autosizing: Add basic framework
     4        https://bugs.webkit.org/show_bug.cgi?id=88655
     5
     6        This adds a highly simplified foundation that subsequent Text Autosizing patches
     7        can build upon. I've refactored this code (since the earlier combined diff
     8        uploaded to http://webkit.org/b/84186) to touch as few files as possible.
     9
     10        Reviewed by Adam Barth.
     11
     12        No new tests. I plan to add a test framework as my next Text Autosizing patch.
     13
     14        * WebCore.gypi:
     15        * dom/Document.cpp:
     16        (WebCore::Document::Document):
     17        * dom/Document.h:
     18        (WebCore):
     19        (Document):
     20        (WebCore::Document::textAutosizer):
     21        * page/FrameView.cpp:
     22        (WebCore::FrameView::layout):
     23        * rendering/TextAutosizer.cpp: Added.
     24        (WebCore):
     25        (WebCore::TextAutosizer::TextAutosizer):
     26        (WebCore::TextAutosizer::~TextAutosizer):
     27        (WebCore::TextAutosizer::create):
     28        (WebCore::TextAutosizer::boostSubtree):
     29        (WebCore::TextAutosizer::boostBlock):
     30        (WebCore::TextAutosizer::boostText):
     31        (WebCore::TextAutosizer::treatAsInline):
     32        (WebCore::TextAutosizer::traverseNext):
     33        (WebCore::TextAutosizer::cloneRenderStyleWithState):
     34        * rendering/TextAutosizer.h: Added.
     35        (WebCore):
     36        (TextAutosizer):
     37
    1382012-07-04  Andrey Kosyakov  <caseq@chromium.org>
    239
  • trunk/Source/WebCore/WebCore.gypi

    r121850 r121866  
    46314631            'rendering/FlowThreadController.cpp',
    46324632            'rendering/FlowThreadController.h',
     4633            'rendering/TextAutosizer.cpp',
     4634            'rendering/TextAutosizer.h',
    46334635            'rendering/HitTestingTransformState.cpp',
    46344636            'rendering/HitTestingTransformState.h',
  • trunk/Source/WebCore/dom/Document.cpp

    r121603 r121866  
    217217#endif
    218218
     219#if ENABLE(TEXT_AUTOSIZING)
     220#include "TextAutosizer.h"
     221#endif
     222
    219223using namespace std;
    220224using namespace WTF;
     
    516520#if ENABLE(LINK_PRERENDER)
    517521    m_prerenderer = Prerenderer::create(this);
     522#endif
     523#if ENABLE(TEXT_AUTOSIZING)
     524    m_textAutosizer = TextAutosizer::create(this);
    518525#endif
    519526    m_visuallyOrdered = false;
  • trunk/Source/WebCore/dom/Document.h

    r121603 r121866  
    174174#endif
    175175
     176#if ENABLE(TEXT_AUTOSIZING)
     177class TextAutosizer;
     178#endif
     179
    176180typedef int ExceptionCode;
    177181
     
    11301134#endif
    11311135
     1136#if ENABLE(TEXT_AUTOSIZING)
     1137    TextAutosizer* textAutosizer() { return m_textAutosizer.get(); }
     1138#endif
     1139
    11321140    void adjustFloatQuadsForScrollAndAbsoluteZoomAndFrameScale(Vector<FloatQuad>&, RenderObject*);
    11331141    void adjustFloatRectForScrollAndAbsoluteZoomAndFrameScale(FloatRect&, RenderObject*);
     
    14951503#endif
    14961504
     1505#if ENABLE(TEXT_AUTOSIZING)
     1506    OwnPtr<TextAutosizer> m_textAutosizer;
     1507#endif
     1508
    14971509    bool m_scheduledTasksAreSuspended;
    14981510   
  • trunk/Source/WebCore/page/FrameView.cpp

    r121708 r121866  
    8888#endif
    8989
     90#if ENABLE(TEXT_AUTOSIZING)
     91#include "TextAutosizer.h"
     92#endif
     93
    9094namespace WebCore {
    9195
     
    11121116            forceLayoutParentViewIfNeeded();
    11131117            root->layout();
     1118#if ENABLE(TEXT_AUTOSIZING)
     1119            bool boosted = document->textAutosizer()->boostSubtree(root);
     1120            if (boosted && root->needsLayout())
     1121                root->layout();
     1122#endif
    11141123            endDeferredRepaints();
    11151124            m_inLayout = false;
Note: See TracChangeset for help on using the changeset viewer.