1. 12 May, 2011 1 commit
    • tonyg@chromium.org's avatar
      2011-05-10 Tony Gentilcore <tonyg@chromium.org> · 4b0a55f4
      tonyg@chromium.org authored
              Reviewed by Darin Adler.
      
              Perform some forward declarations suggested by include-what-you-use
              https://bugs.webkit.org/show_bug.cgi?id=60545
      
              * accessibility/AccessibilityObject.cpp:
              * accessibility/AccessibilityRenderObject.cpp:
              * accessibility/mac/AccessibilityObjectWrapper.mm:
              * dom/DocumentMarkerController.cpp:
              * dom/Position.cpp:
              * dom/PositionIterator.cpp:
              * dom/Range.cpp:
              * editing/ApplyBlockElementCommand.cpp:
              * editing/ApplyStyleCommand.cpp:
              * editing/Editor.cpp:
              * editing/EditorCommand.cpp:
              * editing/FrameSelection.cpp:
              * editing/HTMLInterchange.cpp:
              * editing/IndentOutdentCommand.cpp:
              * editing/ReplaceSelectionCommand.cpp:
              * editing/SpellChecker.h:
              * editing/SpellingCorrectionCommand.cpp:
              * editing/SpellingCorrectionController.h:
              * editing/TextCheckingHelper.cpp:
              * editing/TextIterator.h:
              * editing/htmlediting.h:
              * editing/markup.cpp:
              * editing/visible_units.cpp:
              * editing/visible_units.h:
              * fileapi/DOMFileSystem.cpp:
              * fileapi/DirectoryReaderSync.cpp:
              * fileapi/DirectoryReaderSync.h:
              * fileapi/FileEntry.h:
              * fileapi/FileWriter.h:
              * fileapi/FileWriterBase.h:
              * fileapi/FileWriterSync.h:
              * history/CachedFrame.cpp:
              * history/CachedPage.cpp:
              * history/HistoryItem.cpp:
              * history/HistoryItem.h:
              * history/PageCache.h:
              * loader/HistoryController.h:
              * loader/PingLoader.h:
              * loader/ResourceLoader.h:
              * loader/appcache/DOMApplicationCache.h:
              * loader/cache/CachedCSSStyleSheet.h:
              * loader/cache/CachedFont.cpp:
              * loader/cache/CachedFont.h:
              * loader/cache/CachedResourceRequest.cpp:
              * loader/cache/CachedResourceRequest.h:
              * loader/cache/MemoryCache.h:
              * notifications/Notification.cpp:
              * notifications/Notification.h:
              * notifications/NotificationCenter.cpp:
              * notifications/NotificationCenter.h:
              * page/Chrome.cpp:
              * page/Chrome.h:
              * page/DOMSelection.cpp:
              * page/DOMTimer.h:
              * page/DOMWindow.cpp:
              * page/EventHandler.cpp:
              * page/FocusController.h:
              * page/Geolocation.cpp:
              * page/Geolocation.h:
              * page/History.cpp:
              * rendering/RenderListBox.cpp:
              * workers/WorkerContext.cpp:
      2011-05-10  Tony Gentilcore  <tonyg@chromium.org>
      
              Reviewed by Darin Adler.
      
              Perform some forward declarations suggested by include-what-you-use
              https://bugs.webkit.org/show_bug.cgi?id=60545
      
              * src/WebHistoryItem.cpp:
              * src/WebNotification.cpp:
              * src/WebTextCheckingCompletionImpl.cpp:
              * src/mac/WebSubstringUtil.mm:
      2011-05-10  Tony Gentilcore  <tonyg@chromium.org>
      
              Reviewed by Darin Adler.
      
              Perform some forward declarations suggested by include-what-you-use
              https://bugs.webkit.org/show_bug.cgi?id=60545
      
              * Plugins/Hosted/WebHostedNetscapePluginView.mm:
              * WebView/WebFrame.mm:
      2011-05-10  Tony Gentilcore  <tonyg@chromium.org>
      
              Reviewed by Darin Adler.
      
              Perform some forward declarations suggested by include-what-you-use
              https://bugs.webkit.org/show_bug.cgi?id=60545
      
              * WebProcess/WebPage/mac/WebPageMac.mm:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@86325 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4b0a55f4
  2. 11 Apr, 2011 1 commit
    • mario@webkit.org's avatar
      2011-04-11 Mario Sanchez Prada <msanchez@igalia.com> · 9f0aee10
      mario@webkit.org authored
              Reviewed by Chris Fleizach.
      
              [Gtk] Implement support for Embedded Objects
              https://bugs.webkit.org/show_bug.cgi?id=52148
      
              Expose special OBJECT character for replaced elements, implementing
              AtkText and AtkHyperlink when required.
      
              * accessibility/AccessibilityRenderObject.cpp:
              (WebCore::textIteratorBehaviorForTextRange): New helper function,
              to return the right behavior, depending on the platform, so it
              ensures that object replacement characters get emitted for GTK.
              (WebCore::AccessibilityRenderObject::textUnderElement): Use the
              new helper function textIteratorBehaviorForTextRange.
              (WebCore::AccessibilityRenderObject::stringValue): Ditto.
              (WebCore::AccessibilityRenderObject::indexForVisiblePosition):
              Consider replaced elements when calculating range length in GTK.
      
              * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
              (textForRenderer): Ouput the 'object replacement character' for
              replaced objects.
              (getSelectionOffsetsForObject): Consider replaced elements when
              calculating range length in GTK.
              (webkitAccessibleHypertextGetLink): Remove wrong extra check that
              were causing only links to be considered.
              (webkitAccessibleHypertextGetNLinks): Replace wrong 'isLink()'
              check with the right one, by checking that the right ATK interface
              is being implemented by the AtkObject.
              (getInterfaceMaskFromObject): Implement the Hyperlink interface
              both for links and replaced objects.
              (objectAndOffsetUnignored): Consider replaced elements when
              calculating range length in GTK.
      
              * accessibility/gtk/WebKitAccessibleHyperlink.cpp:
              (getRangeLengthForObject): Ensure spaces are used for replaced
              elements when calling to TextIterator::rangeLength().
      
              * editing/TextIterator.h: New value in the TextIteratorBehavior
              enumeration (TextIteratorEmitsObjectReplacementCharacters) and new
              private variable to consider that new option internally.
              * editing/TextIterator.cpp:
              (WebCore::TextIterator::TextIterator): Initialize the new private
              attribute m_emitsObjectReplacementCharacters in constructors.
              (WebCore::TextIterator::handleReplacedElement): Emit the 'object
              replacement character' when m_emitsObjectReplacementCharacters.
      2011-04-11  Mario Sanchez Prada  <msanchez@igalia.com>
      
              Reviewed by Chris Fleizach.
      
              [Gtk] Implement support for Embedded Objects
              https://bugs.webkit.org/show_bug.cgi?id=52148
      
              New accessibility unit test for embedded objects.
      
              * tests/testatk.c:
              (testWebkitAtkEmbeddedObjects): New unit test.
              (main): Added the new unit test.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@83493 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9f0aee10
  3. 06 Apr, 2011 1 commit
    • commit-queue@webkit.org's avatar
      2011-04-06 Robert Sesek <rsesek@chromium.org> · 5def9a28
      commit-queue@webkit.org authored
              Reviewed by Alexey Proskuryakov.
      
              Move code duplicated between the WebKit/mac and WebKit2 down to WebCore because Chromium will need it too
              https://bugs.webkit.org/show_bug.cgi?id=54969
      
              No change in behavior; no new tests.
      
              * editing/TextIterator.cpp:
              (WebCore::TextIterator::locationAndLengthFromRange): New method from duplicated code in WebKits
              * editing/TextIterator.h:
              * page/Frame.cpp:
              (WebCore::Frame::rangeForPoint): New method from duplicated code in WebKits
      2011-04-06  Robert Sesek  <rsesek@chromium.org>
      
              Reviewed by Alexey Proskuryakov.
      
              Move code duplicated between the WebKit/mac and WebKit2 down to WebCore because Chromium will need it too
              https://bugs.webkit.org/show_bug.cgi?id=54969
      
              * WebView/WebFrame.mm:
              (-[WebFrame _convertToNSRange:]): Moved duplicated code to WebCore
              (-[WebFrame _characterRangeAtPoint:]): Moved duplicated code to WebCore
      2011-04-06  Robert Sesek  <rsesek@chromium.org>
      
              Reviewed by Alexey Proskuryakov.
      
              Move code duplicated between the WebKit/mac and WebKit2 down to WebCore because Chromium will need it too
              https://bugs.webkit.org/show_bug.cgi?id=54969
      
              * WebProcess/WebCoreSupport/WebEditorClient.cpp:
              (WebKit::WebEditorClient::respondToChangedSelection): Moved duplicated code to WebCore
              * WebProcess/WebPage/mac/WebPageMac.mm: Moved duplicated code to WebCore
              (WebKit::WebPage::getMarkedRange):
              (WebKit::WebPage::getSelectedRange):
              (WebKit::WebPage::characterIndexForPoint):
              (WebKit::WebPage::performDictionaryLookupAtLocation):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@83081 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5def9a28
  4. 24 Mar, 2011 1 commit
  5. 23 Feb, 2011 1 commit
    • kalman@chromium.org's avatar
      2011-02-23 Benjamin Kalman <kalman@chromium.org> · 1c67393c
      kalman@chromium.org authored
              Reviewed by Ojan Vafai.
      
              Moving or selecting backwards by words jumps to start of contenteditable region if contenteditable=false span is encountered
              https://bugs.webkit.org/show_bug.cgi?id=51001
      
              Add regression test.
      
              * editing/selection/extend-backward-by-word-over-non-editable-expected.txt: Added.
              * editing/selection/extend-backward-by-word-over-non-editable.html: Added.
      2011-02-23  Benjamin Kalman  <kalman@chromium.org>
      
              Reviewed by Ojan Vafai.
      
              Moving or selecting backwards by words jumps to start of contenteditable region if contenteditable=false span is encountered
              https://bugs.webkit.org/show_bug.cgi?id=51001
      
              Test: editing/selection/extend-backward-by-word-over-non-editable.html
      
              Revert some previous changes (the TextIteratorEndsAtEditingBoundary text iteration behaviour) which caused this
              bug in the first place, and fix SimplifiedBackwardsTextIterator's iteration range check as an alternative fix.
      
              The original bug was that double-clicking on an inline editable span at the start of a paragraph would clear the
              selection (webkit.org/b/36360).  This was caused by upstream/downstream VisbiblePosition complications.  To fix,
              refuse to iterate beyond the start node (rather than refusing to iterate across editable boundaries, which
              causes this bug).
      
              To see why this is correct, and to make it clearer that is indeed what is happening, the text iterator code has
              been slightly restructured to express the invariant that the iterator will never advance past the start node.
      
              * editing/TextIterator.cpp:
              (WebCore::TextIterator::TextIterator): Remove references to TextIterationEndsAtEditing boundary.
              (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator): Remove m_pastStartNode as the
              mechanism for iteration range checking, and use a flag m_havePassedStartNode instead.
              (WebCore::SimplifiedBackwardsTextIterator::advance): Clean up, use advanceRespectingRange and
              m_havePassedStartNode for iteration range checking rather than m_pastStartNode.
              (WebCore::SimplifiedBackwardsTextIterator::advanceRespectingRange): The new way of modifying m_node
              which updates m_havePassedStartNode and refuses to continue when it becomes true.
              * editing/TextIterator.h: Remove TextIteratorEndsAtEditingBoundary, update for new/removed prototypes and
              member variables.
              * editing/visible_units.cpp:
              (WebCore::previousBoundary): Remove references to TextIteratorEndsAtEditingBoundary.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@79429 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1c67393c
  6. 08 Jan, 2011 1 commit
  7. 29 Nov, 2010 1 commit
    • mitz@apple.com's avatar
      JavaScriptCore: WTF support for <rdar://problem/8650085> adding word-prefix... · 7258a696
      mitz@apple.com authored
      JavaScriptCore: WTF support for <rdar://problem/8650085> adding word-prefix search options to the text search API.
      https://bugs.webkit.org/show_bug.cgi?id=50038
      
      Reviewed by Darin Adler.
      
      * wtf/unicode/UnicodeMacrosFromICU.h: Copied additional macros from icu/unicode/utf16.h.
      
      WebCore: WebCore part of <rdar://problem/8650085> adding word-prefix search options to the text search API.
      https://bugs.webkit.org/show_bug.cgi?id=50038
      
      Reviewed by Darin Adler.
      
      Test: editing/text-iterator/findString.html
      
      * GNUmakefile.am: Added FindOptions.h.
      * WebCore.exp.in: Export the new methods that take FindOptions.
      * WebCore.gypi: Added FindOptions.h.
      * WebCore.pro: Added FindOptions.h and TextBoundaries.{cpp,h}.
      * WebCore.vcproj/WebCore.vcproj: Added FindOptions.h.
      * WebCore.xcodeproj/project.pbxproj: Added FindOptions.h and TextBoundaries.cpp.
      * editing/Editor.cpp:
      (WebCore::Editor::firstVisibleRange): Changed to use FindOptions.
      (WebCore::Editor::lastVisibleRange): Ditto.
      (WebCore::Editor::nextVisibleRange): Ditto.
      (WebCore::Editor::findString): Ditto.
      (WebCore::Editor::countMatchesForText): Ditto.
      * editing/Editor.h: Added a version of findString() that takes FindOptions. Changed
      countMatchesForText() to take FindOptions. Made nextVisibleRange() private and changed it
      and firstVisibleRange() and lastVisibleRange() to take FindOptions.
      * editing/FindOptions.h: Added.
      * editing/TextIterator.cpp:
      Augmented SearchBuffer with an optional prefix, which is not searched, but provides context
      for determining word boundaries.
      (WebCore::isSeparator): Added. Identifies a class of characters used to determine where
      “words” are embedded in a word.
      (WebCore::SearchBuffer::SearchBuffer): Changed to take FindOptions. Added initialization of
      m_options, m_prefixLength and m_needsMoreContext.
      (WebCore::SearchBuffer::append): Adjust m_prefixLength as part of the prefix gets pushed out
      of the buffer.
      (WebCore::SearchBuffer::needsMoreContext): Added.
      (WebCore::SearchBuffer::prependContext): Added.
      (WebCore::SearchBuffer::isWordStartMatch): Added.
      (WebCore::SearchBuffer::search): Changed to account for the context prefix. When searching
      only for word prefix matches, maintains enough context before a tentative match when moving
      it to the beginning of the buffer. Reject matches that are not at word starts if requested.
      Adjust m_prefixLength when pushing characters out of the buffer.
      (WebCore::findPlainText): Changed to work with FindOptions. Feed the search buffer with context
      if and as long as it requires more of it.
      * editing/TextIterator.h: Added a version of findPlainText() that takes FindOptions.
      * editing/visible_units.cpp: Moved {end,start}Of{First,Last}WordBoundary to TextBoundaries.cpp.
      * page/Page.cpp:
      (WebCore::Page::findString): Changed to work with FindOptions.
      (WebCore::Page::markAllMatchesForText): Ditto.
      * page/Page.h: Added FindOptions-based findString() and markAllMatchesForText().
      * platform/text/TextBoundaries.cpp:
      (WebCore::endOfFirstWordBoundaryContext): Moved here from visible_units.cpp.
      (WebCore::startOfLastWordBoundaryContext): Ditto.
      * platform/text/TextBoundaries.h:
      
      WebKit/mac: WebKit Mac part of <rdar://problem/8650085> adding word-prefix search options to the text search API.
      https://bugs.webkit.org/show_bug.cgi?id=50038
      Based on a patch from Darin Adler.
      
      Reviewed by Darin Adler.
      
      * WebView/WebDocumentInternal.h: Removed -markAllMatchesForText:caseSensitive:limit: and
      replaced -countMatchesForText:caseSensitive:limit:markMatches: with a WebFindOptions-based
      method. Declared a WebDocumentOptionsSearching protocol with a new -findString:options:
      method. Made WebHTMLView conform to the new protocol.
      * WebView/WebHTMLView.mm:
      (coreOptions): Added. Converts WebFindOptions to WebCore FindOptions.
      (-[WebHTMLView searchFor:direction:caseSensitive:wrap:startInSelection:]): Changed to use
      -findString:options:.
      (-[WebHTMLView countMatchesForText:options:limit:markMatches:]): Changed to use WebFindOptions.
      (-[WebHTMLView findString:options:]): Added. Calls through to WebCore::Editor::findString().
      * WebView/WebPDFView.mm:
      (-[WebPDFView countMatchesForText:options:limit:markMatches:]): Changed to use WebFindOptions.
      * WebView/WebView.mm:
      (-[WebView markAllMatchesForText:caseSensitive:highlight:limit:]): Now calls through to
      -countMatchesForText:options:highlight:limit:markMatches.
      (-[WebView countMatchesForText:caseSensitive:highlight:limit:markMatches:]): Ditto.
      (-[WebView searchFor:direction:caseSensitive:wrap:startInSelection:]): Now calls through to
      -findString:options:.
      (incrementFrame): Changed to use WebFindOptions.
      (findString): Added this helper method that performs the search using the best supported
      method for the document view.
      (-[WebView findString:options:]): Changed -searchFor::::: into this.
      (-[WebView canMarkAllTextMatches]):
      (-[WebView countMatchesForText:options:highlight:limit:markMatches:]): Updated to use
      WebFindOptions.
      (-[WebView unmarkAllTextMatches]): Updated for change to incrementFrame.
      (-[WebView rectsForTextMatches]): Ditto.
      * WebView/WebViewPrivate.h: Added WebFindOptions, -findString:options:, and WebFindOptions version
      of countMatchesForText:.
      
      WebKit2: WebKit2 part of <rdar://problem/8650085> adding word-prefix search options to the text search API.
      https://bugs.webkit.org/show_bug.cgi?id=50038
      Based on a patch from Darin Adler.
      
      Reviewed by Darin Adler.
      
      * Shared/WebFindOptions.h: Renamed FindOptions.h to this to account for WebCore’s new private
      FindOptions.h. Added and reordered FindOptions and rolled FindDirection into FindOptions.
      * UIProcess/API/C/WKAPICast.h: Removed toFindDirection().
      (WebKit::toFindOptions): Updated for new values.
      * UIProcess/API/C/WKPage.cpp:
      (WKPageFindString): Removed separate WKFindDirection.
      (WKPageCountStringMatches): Replaces caseInsensitive boolean with WKFindOptions.
      * UIProcess/API/C/WKPage.h: Removed WKFindDirection and updated WKFindOptions.
      * UIProcess/WebPageProxy.cpp:
      (WebKit::WebPageProxy::findString): Removed separate FindDirection.
      (WebKit::WebPageProxy::countStringMatches): Replaced caseInsensitive boolean with FindOptions.
      * UIProcess/WebPageProxy.h:
      * WebKit2.xcodeproj/project.pbxproj: Updated for the header rename.
      * WebProcess/WebPage/FindController.cpp:
      (WebKit::core): Added. Converts WebKit2 FindOptions to WebCore FindOptions.
      (WebKit::FindController::countStringMatches): Changed to use FindOptions.
      (WebKit::FindController::findString): Ditto.
      * WebProcess/WebPage/FindController.h:
      * WebProcess/WebPage/WebPage.cpp:
      (WebKit::WebPage::findString): Ditto.
      (WebKit::WebPage::countStringMatches): Ditto.
      * WebProcess/WebPage/WebPage.h:
      * WebProcess/WebPage/WebPage.messages.in: Ditto.
      
      WebKitTools: DumpRenderTree changes for testing the text search API.
      https://bugs.webkit.org/show_bug.cgi?id=50038
      
      Reviewed by Darin Adler.
      
      * DumpRenderTree/LayoutTestController.cpp:
      (findStringCallback):
      (LayoutTestController::staticFunctions):
      * DumpRenderTree/LayoutTestController.h:
      * DumpRenderTree/mac/LayoutTestControllerMac.mm:
      (LayoutTestController::findString):
      * MiniBrowser/mac/BrowserWindowController.m:
      (-[BrowserWindowController find:]):
      
      LayoutTests: Added text search tests, in particular testing word-prefix search.
      https://bugs.webkit.org/show_bug.cgi?id=50038
      
      Reviewed by Darin Adler.
      
      * editing/text-iterator/findString-expected.txt: Added.
      * editing/text-iterator/findString.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@72887 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7258a696
  8. 08 Oct, 2010 1 commit
    • commit-queue@webkit.org's avatar
      2010-10-08 James Robinson <jamesr@chromium.org> · 7538c25f
      commit-queue@webkit.org authored
              Reviewed by Adam Barth.
      
              Avoid inlining large and/or virtual functions in widely included header files
              https://bugs.webkit.org/show_bug.cgi?id=47230
      
              Functions with very large bodies should not be included in widely included header files.
              This results in the function's code ending up included in hundreds of object files that
              the linker has to discard, at a cost of linker memory use, link time, and disk space. This
              is a particular problem in the Chromium windows build where MSVC often exhausts its 32-bit
              virtual address space and completely fails to link.
      
              This patch moves function definitions from the .h to the corresponding .cpp when the function
              is large and not a candidate for inlining either because it is virtual or because its size is
              above any reasonable compiler's threshhold for inlining.  The most common case by far in this
              patch is changing a class' implicitly defined destructor to an explicitly declared d'tor in
              the header and an explicitly defined d'tor in the .cpp.  This is important since many of our
              container and utility classes (especially Vector, String, and HashSet) have quite large
              destructors.
      
              This patch removes 22.4MB of object file size in a debug 64 bit compile.
      
              * css/CSSBorderImageValue.cpp:
              (WebCore::CSSBorderImageValue::~CSSBorderImageValue):
              * css/CSSBorderImageValue.h:
              * css/CSSFontFaceSrcValue.cpp:
              (WebCore::CSSFontFaceSrcValue::~CSSFontFaceSrcValue):
              * css/CSSFontFaceSrcValue.h:
              * css/CSSFunctionValue.h:
              * dom/BeforeTextInsertedEvent.cpp:
              (WebCore::BeforeTextInsertedEvent::~BeforeTextInsertedEvent):
              * dom/BeforeTextInsertedEvent.h:
              * dom/BeforeUnloadEvent.cpp:
              (WebCore::BeforeUnloadEvent::~BeforeUnloadEvent):
              * dom/BeforeUnloadEvent.h:
              * dom/ClassNodeList.h:
              * dom/ClipboardEvent.cpp:
              (WebCore::ClipboardEvent::~ClipboardEvent):
              * dom/ClipboardEvent.h:
              * dom/CustomEvent.cpp:
              (WebCore::CustomEvent::~CustomEvent):
              * dom/CustomEvent.h:
              * dom/Element.cpp:
              * dom/Element.h:
              * dom/EventTarget.cpp:
              (WebCore::EventTargetData::EventTargetData):
              * dom/EventTarget.h:
              * dom/InputElement.cpp:
              (WebCore::InputElementData::~InputElementData):
              * dom/InputElement.h:
              * dom/MutationEvent.cpp:
              (WebCore::MutationEvent::~MutationEvent):
              * dom/MutationEvent.h:
              * dom/Node.cpp:
              (WebCore::Node::refEventTarget):
              (WebCore::Node::derefEventTarget):
              * dom/Node.h:
              * dom/OptionElement.cpp:
              (WebCore::OptionElementData::~OptionElementData):
              * dom/OptionElement.h:
              * dom/PopStateEvent.cpp:
              (WebCore::PopStateEvent::~PopStateEvent):
              * dom/PopStateEvent.h:
              * dom/QualifiedName.cpp:
              (WebCore::QualifiedName::~QualifiedName):
              * dom/QualifiedName.h:
              * dom/SelectElement.cpp:
              (WebCore::SelectElementData::~SelectElementData):
              * dom/SelectElement.h:
              * dom/StaticHashSetNodeList.cpp:
              (WebCore::StaticHashSetNodeList::StaticHashSetNodeList):
              (WebCore::StaticHashSetNodeList::~StaticHashSetNodeList):
              * dom/StaticHashSetNodeList.h:
              * dom/StyleElement.cpp:
              (WebCore::StyleElement::~StyleElement):
              * dom/StyleElement.h:
              * dom/TouchEvent.cpp:
              (WebCore::TouchEvent::TouchEvent):
              (WebCore::TouchEvent::~TouchEvent):
              * dom/TouchEvent.h:
              * editing/CompositeEditCommand.cpp:
              (WebCore::CompositeEditCommand::~CompositeEditCommand):
              * editing/CompositeEditCommand.h:
              * editing/TextIterator.cpp:
              (WebCore::BitStack::~BitStack):
              (WebCore::TextIterator::~TextIterator):
              (WebCore::WordAwareIterator::~WordAwareIterator):
              * editing/TextIterator.h:
              * inspector/InspectorValues.cpp:
              (WebCore::InspectorObject::~InspectorObject):
              (WebCore::InspectorObject::InspectorObject):
              (WebCore::InspectorArray::~InspectorArray):
              (WebCore::InspectorArray::InspectorArray):
              * inspector/InspectorValues.h:
              * loader/CachedResource.cpp:
              (WebCore::CachedResource::registerHandle):
              (WebCore::CachedResource::unregisterHandle):
              * loader/CachedResource.h:
              * platform/network/HTTPHeaderMap.cpp:
              (WebCore::HTTPHeaderMap::HTTPHeaderMap):
              (WebCore::HTTPHeaderMap::~HTTPHeaderMap):
              (WebCore::HTTPHeaderMap::get):
              (WebCore::HTTPHeaderMap::add):
              * platform/network/HTTPHeaderMap.h:
              * rendering/RenderApplet.cpp:
              (WebCore::RenderApplet::~RenderApplet):
              * rendering/RenderApplet.h:
              * rendering/RenderButton.cpp:
              (WebCore::RenderButton::~RenderButton):
              * rendering/RenderButton.h:
              * rendering/RenderCounter.cpp:
              (WebCore::RenderCounter::~RenderCounter):
              * rendering/RenderCounter.h:
              * rendering/RenderFieldset.h:
              * rendering/RenderForeignObject.cpp:
              (WebCore::RenderForeignObject::~RenderForeignObject):
              * rendering/RenderForeignObject.h:
              * rendering/RenderFrame.h:
              * rendering/RenderFrameBase.h:
              * rendering/RenderHTMLCanvas.h:
              * rendering/RenderIFrame.h:
              * rendering/RenderInline.h:
              * rendering/RenderListItem.h:
              * rendering/RenderMarquee.cpp:
              (WebCore::RenderMarquee::~RenderMarquee):
              * rendering/RenderMarquee.h:
              * rendering/RenderPath.cpp:
              (WebCore::RenderPath::~RenderPath):
              * rendering/RenderPath.h:
              * rendering/RenderSVGBlock.h:
              * rendering/RenderSVGContainer.cpp:
              (WebCore::RenderSVGContainer::~RenderSVGContainer):
              * rendering/RenderSVGContainer.h:
              * rendering/RenderSVGHiddenContainer.h:
              * rendering/RenderSVGInline.h:
              * rendering/RenderSVGInlineText.cpp:
              (WebCore::RenderSVGInlineText::~RenderSVGInlineText):
              * rendering/RenderSVGInlineText.h:
              * rendering/RenderSVGModelObject.h:
              * rendering/RenderSVGResourceFilterPrimitive.h:
              * rendering/RenderSVGRoot.cpp:
              (WebCore::RenderSVGRoot::~RenderSVGRoot):
              * rendering/RenderSVGRoot.h:
              * rendering/RenderSVGTSpan.h:
              * rendering/RenderSVGText.h:
              * rendering/RenderSVGTextPath.h:
              * rendering/RenderSVGTransformableContainer.h:
              * rendering/RenderSVGViewportContainer.h:
              * rendering/RenderTable.cpp:
              (WebCore::RenderTable::~RenderTable):
              * rendering/RenderTable.h:
              * rendering/RenderTableCell.h:
              * rendering/RenderTableCol.h:
              * rendering/RenderTableRow.h:
              * rendering/RenderTextFragment.cpp:
              (WebCore::RenderTextFragment::~RenderTextFragment):
              * rendering/RenderTextFragment.h:
              * rendering/RenderWordBreak.h:
              * svg/SVGStyledElement.cpp:
              (WebCore::SVGStyledElement::~SVGStyledElement):
              * svg/SVGStyledElement.h:
              * svg/SVGStyledTransformableElement.cpp:
              (WebCore::SVGStyledTransformableElement::~SVGStyledTransformableElement):
              * svg/SVGStyledTransformableElement.h:
              * xml/XPathParser.cpp:
              (WebCore::XPath::Parser::~Parser):
              * xml/XPathParser.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@69437 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7538c25f
  9. 10 Sep, 2010 1 commit
    • cfleizach@apple.com's avatar
      WebCore: Use String::fromUTF8 instead of UTF8Encoding().decode · 01ee2ed9
      cfleizach@apple.com authored
      in the libxml XMLDocumentParser
      https://bugs.webkit.org/show_bug.cgi?id=45488
      
      Patch by Patrick Gansterer <paroga@paroga.com> on 2010-09-10
      Reviewed by Darin Adler.
      
      * dom/XMLDocumentParserLibxml2.cpp:
      (WebCore::toString):
      
      LayoutTests: Land new expected results for some tests on Windows
      
      Patch by Adam Roben <aroben@apple.com> on 2010-09-10
      Rubber-stamped in advance by Simon Fraser.
      
      * platform/win/fast/text/hyphenate-first-word-actual.txt: Added.
      * platform/win/fast/text/hyphenate-locale-actual.txt: Added.
      Windows doesn't support hyphenation.
      
      * platform/win/html5lib/runner-actual.txt: Added.
      We don't implement <keygen> on Windows, so we pass some tests that
      expect <keygen> to have no child elements (on Mac, the child elements
      are real DOM elements, rather than living in the shadow DOM tree like
      HTML5 mandates, so the tests fail).
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@67219 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      01ee2ed9
  10. 10 Aug, 2010 1 commit
  11. 09 Aug, 2010 1 commit
    • morrita@google.com's avatar
      2010-05-20 MORITA Hajime <morrita@google.com> · 1632a1f6
      morrita@google.com authored
              Reviewed by Ojan Vafai.
      
              <http://webkit.org/b/36360>
              Double clicking page's first editable inline element cannot select a word.
              <http://webkit.org/b/36359>
              Double clicking page's last editable inline element causes assertion failure.
      
              * editing/selection/doubleclick-inline-first-last-contenteditable-expected.txt: Added.
              * editing/selection/doubleclick-inline-first-last-contenteditable.html: Added.
              * editing/selection/script-tests/doubleclick-inline-first-last-contenteditable.js: Added.
      2010-05-27  MORITA Hajime  <morrita@google.com>
      
              Reviewed by Ojan Vafai.
      
              <http://webkit.org/b/36359>
              Double clicking page's last editable inline element causes assertion failure.
              <http://webkit.org/b/36360>
              Double clicking page's first editable inline element cannot select a word.
      
              nextBoundary() and previousBoundary() assumed that editable
              boundaries are on block-level elements, But it can appear on
              inline-level elements. So we start boundary look-up from the given
              node, instead of the containingBlock of the given node.
              Also, added TextIteratorEndsAtEditingBoundary to
              BackwardsCharacterIterator, otherwise, the VisiblePosition
              returned by BackwardsCharacterIterator might cross an editing
              boundary.
      
              Test: editing/selection/doubleclick-inline-first-last-contenteditable.html
      
              * dom/Position.cpp:
              (WebCore::Position::parentEditingBoundary): Added.
              * dom/Position.h:
              * editing/TextIterator.cpp:
              (WebCore::TextIterator::TextIterator):
              (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
              (WebCore::SimplifiedBackwardsTextIterator::advance):
              (WebCore::SimplifiedBackwardsTextIterator::crossesEditingBoundary): Added.
              (WebCore::SimplifiedBackwardsTextIterator::setCurrentNode): Added.
              (WebCore::SimplifiedBackwardsTextIterator::clearCurrentNode): Added.
              (WebCore::BackwardsCharacterIterator::BackwardsCharacterIterator):
              * editing/TextIterator.h:
              (WebCore::):
              * editing/visible_units.cpp:
              (WebCore::previousBoundary):
              (WebCore::nextBoundary):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@64974 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1632a1f6
  12. 22 Apr, 2010 1 commit
  13. 21 Apr, 2010 1 commit
    • hamaji@chromium.org's avatar
      2010-04-21 Shinichiro Hamaji <hamaji@chromium.org> · ec1ca748
      hamaji@chromium.org authored
              Reviewed by Darin Adler.
      
              Call sites of TextIterator constructor are difficult to read
              https://bugs.webkit.org/show_bug.cgi?id=37909
      
              Now we use enum parameters instead of boolean parameters and
              boolean version of constructors are eliminated.
      
              This change also changes the names of boolean members so they are
              now third person singular.
      
              No new tests because this is just a refactoring.
      
              * WebCore.base.exp:
              * editing/TextIterator.cpp:
              (WebCore::TextIterator::TextIterator):
              (WebCore::TextIterator::advance):
              (WebCore::TextIterator::handleReplacedElement):
              (WebCore::TextIterator::shouldRepresentNodeOffsetZero):
              (WebCore::TextIterator::shouldEmitSpaceBeforeAndAfterNode):
              (WebCore::TextIterator::handleNonTextNode):
              (WebCore::TextIterator::exitNode):
              (WebCore::TextIterator::emitCharacter):
              (WebCore::TextIterator::emitText):
              (WebCore::CharacterIterator::CharacterIterator):
              (WebCore::TextIterator::rangeLength):
              (WebCore::TextIterator::rangeFromLocationAndLength):
              (WebCore::findPlainText):
              * editing/TextIterator.h:
              (WebCore::):
              * editing/VisibleSelection.cpp:
              (WebCore::VisibleSelection::appendTrailingWhitespace):
              * editing/visible_units.cpp:
              (WebCore::nextBoundary):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@58040 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ec1ca748
  14. 20 Apr, 2010 1 commit
    • hamaji@chromium.org's avatar
      2010-04-20 Shinichiro Hamaji <hamaji@chromium.org> · 359e1319
      hamaji@chromium.org authored
              Reviewed by Darin Adler and Alexey Proskuryakov.
      
              A backslash in EUC-JP becomes to a yen sign when it is copied
              https://bugs.webkit.org/show_bug.cgi?id=36419
      
              * editing/execCommand/transpose-backslash-with-euc-expected.txt: Added.
              * editing/execCommand/transpose-backslash-with-euc.html: Added.
              * editing/pasteboard/copy-backslash-with-euc-expected.txt: Added.
              * editing/pasteboard/copy-backslash-with-euc.html: Added.
              * editing/pasteboard/resources/copy-backslash-euc.html: Added.
      2010-04-20  Shinichiro Hamaji  <hamaji@chromium.org>
      
              Reviewed by Darin Adler and Alexey Proskuryakov.
      
              A backslash in EUC-JP becomes to a yen sign when it is copied
              https://bugs.webkit.org/show_bug.cgi?id=36419
      
              Tests: editing/execCommand/transpose-backslash-with-euc.html
                     editing/pasteboard/copy-backslash-with-euc.html
      
              * editing/Editor.cpp: Remove an unnecessary displayStringModifiedByEncoding calls.
              (WebCore::Editor::addToKillRing):
              * editing/TextIterator.cpp: TextIterator can use RenderText::textWithoutTranscoding and now plainText() uses this version
              (WebCore::TextIterator::TextIterator):
              (WebCore::TextIterator::init):
              (WebCore::TextIterator::emitText):
              (WebCore::plainTextToMallocAllocatedBuffer):
              * editing/TextIterator.h:
              (WebCore::):
              * platform/mac/PasteboardMac.mm: Remove an unnecessary displayStringModifiedByEncoding call.
              (WebCore::Pasteboard::writeSelection):
              * platform/text/TextEncoding.h: Make backslashAsCurrencySymbol public.
              * rendering/RenderText.cpp: Add RenderText::textWithoutTranscoding
              (WebCore::RenderText::RenderText):
              (WebCore::RenderText::updateNeedsTranscoding):
              (WebCore::RenderText::styleDidChange):
              (WebCore::isInlineFlowOrEmptyText):
              (WebCore::RenderText::previousCharacter):
              (WebCore::RenderText::setTextInternal):
              (WebCore::RenderText::textWithoutTranscoding):
              (WebCore::RenderText::transformText):
              * rendering/RenderText.h:
              * rendering/RenderTextControl.cpp: Remove an unnecessary displayStringModifiedByEncoding call.
              (WebCore::RenderTextControl::setInnerTextValue):
              (WebCore::RenderTextControl::finishText):
              * rendering/RenderTextFragment.cpp:
              (WebCore::RenderTextFragment::previousCharacter):
              * rendering/RenderTextFragment.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@57940 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      359e1319
  15. 14 Jun, 2009 1 commit
    • darin@apple.com's avatar
      WebCore: · 883e14cf
      darin@apple.com authored
      2009-06-14  Darin Adler  <darin@apple.com>
      
              Reviewed by Dan Bernstein.
      
              Bug 26364: Search can find text that's hidden by overflow:hidden
              https://bugs.webkit.org/show_bug.cgi?id=26364
              <rdar://problem/6952081>
      
              Test: fast/text/find-hidden-text.html
      
              * editing/TextIterator.cpp:
              (WebCore::BitStack::BitStack): Added.
              (WebCore::BitStack::push): Added.
              (WebCore::BitStack::pop): Added.
              (WebCore::BitStack::top): Added.
              (WebCore::BitStack::size): Added.
              (WebCore::parentOrShadowParent): Added. Helper function for walking up
              the parent node chain, crossing shadow tree boundaries.
              (WebCore::depthCrossingShadowBoundaries): Added for use in assertions.
              Counts the depth of a node using the parentOrShadowParent function.
              (WebCore::fullyClipsContents): Added. Returns true for an element that
              fully clips its contents, currently defined as a box that has zero width
              or height and hides overflow. We can add other cases here later.
              (WebCore::ignoresContainerClip): Added. Returns true for an element that
              ignores its container clip, currently defined as an element with absolute
              or fixed positioning.
              (WebCore::pushFullyClippedState): Added. Pushes a bit on the stack indicating
              if the node in question fully clips its contents.
              (WebCore::setUpFullyClippedStack): Added. Pushes a bit for each ancestor of
              a node. Used when creating an iterator.
              (WebCore::TextIterator::TextIterator): Removed code to initialize
              m_inShadowContent. Call setUpFullyClippedStack.
              (WebCore::TextIterator::advance): Use parentOrShadowParent. Call pop when moving
              up to a parent node, and also one extra time when moving to a sibling node.
              Call pushFullyClippedState when moving to a child node, or when moving to a
              sibling node after the aforementioned call to pop.
              (WebCore::TextIterator::handleTextNode): Return early if the node is fully clipped.
              (WebCore::TextIterator::handleReplacedElement): Ditto.
              (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
              Call setUpFullyClippedStack.
              (WebCore::SimplifiedBackwardsTextIterator::advance): Same changes as
              TextIterator::advance above.
      
              * editing/TextIterator.h: Added BitStack class and added m_fullyClippedStack to both
              TextIterator and SimplifiedBackwardsTextIterator. Removed unneeded m_inShadowContent.
      
      LayoutTests:
      
      2009-06-14  Darin Adler  <darin@apple.com>
      
              Reviewed by Dan Bernstein.
      
              Bug 26364: Search can find text that's hidden by overflow:hidden
              https://bugs.webkit.org/show_bug.cgi?id=26364
              <rdar://problem/6952081>
      
              * fast/text/find-hidden-text-expected.txt: Added.
              * fast/text/find-hidden-text.html: Added.
      
              * fast/block/float/crash-replaced-display-block-expected.txt: Removed a space.
              * fast/dom/Range/acid3-surround-contents-expected.txt: Removed a blank line.
              * fast/dom/object-embed-plugin-scripting-expected.txt: Removed four spaces.
              * fast/parser/badentity-expected.txt: Removed a blank line.
              * http/tests/security/local-video-poster-from-remote-expected.txt: Removed a blank line.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@44674 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      883e14cf
  16. 11 Mar, 2009 1 commit
    • mitz@apple.com's avatar
      JavaScriptCore: · b1706741
      mitz@apple.com authored
              Reviewed by Darin Adler.
      
              - WTF support for fixing <rdar://problem/3919124> Thai text selection
                in Safari is incorrect
      
              * wtf/unicode/icu/UnicodeIcu.h:
              (WTF::Unicode::hasLineBreakingPropertyComplexContext): Added. Returns
              whether the character has Unicode line breaking property value SA
              ("Complex Context").
              * wtf/unicode/qt4/UnicodeQt4.h:
              (WTF::Unicode::hasLineBreakingPropertyComplexContext): Added an
              implementation that always returns false.
      
      WebCore:
      
              Reviewed by Darin Adler.
      
              - WebCore part of fixing <rdar://problem/3919124> Thai text selection
                in Safari is incorrect
      
              Test: platform/mac/editing/selection/word-thai.html
      
              Tested on Mac, but should work on all ICU platforms (or more precisely
              on all platforms that implement
              WTF::Unicode::hasLineBreakingPropertyComplexContext() correctly).
      
              * editing/TextIterator.cpp:
              (WebCore::BackwardsCharacterIterator::BackwardsCharacterIterator):
              Added.
              (WebCore::BackwardsCharacterIterator::range): Added.
              (WebCore::BackwardsCharacterIterator::advance): Added.
      
              * editing/TextIterator.h: Added BackwardsCharacterIterator with the
              minimal functionality required for this patch.
              (WebCore::BackwardsCharacterIterator::atEnd): Added.
      
              * editing/visible_units.cpp:
              (WebCore::firstNonComplexContextLineBreak): Added this helper function
              that returns the index of the first character in the string whose
              Unicode line breaking property value is not SA ("Complex Context"), or
              the length of the string if there is no such character.
              (WebCore::lastNonComplexContextLineBreak): Added this helper function
              that returns the index of the last character in the string whose
              Unicode line breaking property value is not SA ("Complex Context"), or
              -1 if there is no such character.
              (WebCore::previousBoundary): Changed the signature of the search
              function to include an offset parameter. Renamed the 'exception' local
              variable to 'ec' and changed its type to ExceptionCode. Extend the
              string forwards until the first character with Unicode line breaking
              property value other than SA. This gives the boundary search function
              enough context in the forward direction. Changed to use a
              BackwardsCharacterIterator for translating the backwards offset into
              a position.
              (WebCore::nextBoundary): Changed the signature of the search
              function to include an offset parameter. Extend the string backwards
              until the first character with Unicode line breaking property value
              other than SA. This gives the boundary search function enough context in
              the backwards direction. Restricted the workaround for <rdar://5192593>
              only to the line break case, because it was causing an extra character
              to be selected following a word that ended with a combining mark.
              (WebCore::startWordBoundary): Added an offset parameter. Check that
              going backwards from the given offset, there is a character with Unicode
              line breaking property value other than SA, and otherwise return 0 to
              request more context.
              (WebCore::endWordBoundary): Similar, but in reverse.
              (WebCore::previousWordPositionBoundary): Similar.
              (WebCore::nextWordPositionBoundary): Similar.
              (WebCore::startSentenceBoundary): Updated for the new search function
              signature.
              (WebCore::endSentenceBoundary): Ditto.
              (WebCore::previousSentencePositionBoundary): Ditto.
              (WebCore::nextSentencePositionBoundary): Ditto.
      
      LayoutTests:
      
              Reviewed by Darin Adler.
      
              - test for <rdar://problem/3919124> Thai text selection in Safari is
                incorrect
      
              * platform/mac/editing/selection/word-thai-expected.txt: Added.
              * platform/mac/editing/selection/word-thai.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@41607 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b1706741
  17. 17 Jan, 2009 1 commit
    • hyatt@apple.com's avatar
      WebCore: · cbe8fced
      hyatt@apple.com authored
      2009-01-17  David Hyatt  <hyatt@apple.com>
      
              Change how backslashAsCurrencySymbol() works.  Instead of forcing call sites to do the direct
              replacement themselves, the exact transformation is instead done by the encoding (indirectly through
              a method on Document).
      
              These changes allow the fast case (where no replacement is needed) checks to be completely inlined for
              a slight speedup, and also allow encodings to do future alterations to displayed string content without
              having to patch call sites again.
      
              Reviewed by Oliver Hunt
      
              * WebCore.base.exp:
              * dom/Document.cpp:
              * dom/Document.h:
              (WebCore::Document::displayStringModifiedByEncoding):
              (WebCore::Document::displayBufferModifiedByEncoding):
              * editing/Editor.cpp:
              (WebCore::Editor::addToKillRing):
              * editing/TextIterator.cpp:
              (WebCore::plainTextToMallocAllocatedBuffer):
              (WebCore::plainText):
              * editing/TextIterator.h:
              * html/HTMLOptGroupElement.cpp:
              (WebCore::HTMLOptGroupElement::groupLabelText):
              * html/HTMLOptionElement.cpp:
              (WebCore::HTMLOptionElement::text):
              * loader/DocumentLoader.cpp:
              (WebCore::canonicalizedTitle):
              * page/Chrome.cpp:
              (WebCore::displayString):
              (WebCore::Chrome::runJavaScriptAlert):
              (WebCore::Chrome::runJavaScriptConfirm):
              (WebCore::Chrome::runJavaScriptPrompt):
              (WebCore::Chrome::setStatusbarText):
              * page/Frame.cpp:
              (WebCore::Frame::shouldClose):
              * page/Frame.h:
              * platform/mac/PasteboardMac.mm:
              (WebCore::Pasteboard::writeSelection):
              * platform/text/TextCodecICU.cpp:
              (WebCore::TextCodecICU::encode):
              * platform/text/TextEncoding.cpp:
              (WebCore::TextEncoding::TextEncoding):
              * platform/text/TextEncoding.h:
              (WebCore::TextEncoding::displayString):
              (WebCore::TextEncoding::displayBuffer):
              * rendering/HitTestResult.cpp:
              (WebCore::displayString):
              * rendering/RenderImage.cpp:
              (WebCore::RenderImage::paintReplaced):
              * rendering/RenderObject.cpp:
              * rendering/RenderObject.h:
              * rendering/RenderText.cpp:
              (WebCore::RenderText::RenderText):
              (WebCore::RenderText::setTextInternal):
              * rendering/RenderTextControl.cpp:
              (WebCore::RenderTextControl::setInnerTextValue):
              (WebCore::RenderTextControl::finishText):
      
      WebKit/mac:
      
      2009-01-17  David Hyatt  <hyatt@apple.com>
      
              Eliminate dependencies on "backslashAsCurrencySymbol()" from WebKit, and make sure these alterations
              are done in WebCore instead.
      
              Reviewed by Oliver Hunt
      
              * WebView/WebFrame.mm:
              (-[WebFrame _selectedString]):
              (-[WebFrame _stringForRange:]):
      
      WebKit/win:
      
      2009-01-17  David Hyatt  <hyatt@apple.com>
      
              Eliminate dependencies on backslashAsCurrencySymbol from WebKit.
      
              Reviewed by Oliver Hunt
      
              * WebFrame.cpp:
              (WebFrame::selectedString):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@40017 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      cbe8fced
  18. 15 Oct, 2008 1 commit
    • bdakin@apple.com's avatar
      WebCore: · cf22dbac
      bdakin@apple.com authored
      2008-10-14  Maxime Britto  <britto@apple.com>
      
              Reviewed by Darin Adler, tweaked and landed by Beth.
      
              * WebCore.base.exp: Exposes two functions to be able to create a 
              selection from a point on the screen. Also exposes the new 
              TextIterator::currentNode function.
              * WebCore/editing/TextIterator.cpp:
              (TextIterator::currentNode) : New function that returns the current 
              text node or NULL if there is no text node.
      
      WebKit:
      
      2008-10-14  Maxime Britto  <britto@apple.com>
      
              Reviewed by Darin Adler.
      
              * WebKit.xcodeproj/project.pbxproj: Added two files for the 
              WebTextIterator, and made the WebTextIterator.h private
      
      WebKit/mac:
      
      2008-10-14  Maxime Britto  <britto@apple.com>
      
              Reviewed by Darin Adler.
      
              Added SPI to use WebCore's TextIterator with WebKit.
      
              * WebView/WebTextIterator.h: Added.
              * WebView/WebTextIterator.mm: Added.
              (-[WebTextIteratorPrivate dealloc]):
              (-[WebTextIterator dealloc]):
              (-[WebTextIterator initWithRange:]): Creates a TextIterator 
              instance
              (-[WebTextIterator advance]): Asks the iterator to advance() .
              (-[WebTextIterator currentNode]): Returns the current DOMNode from 
              the iterator
              (-[WebTextIterator currentText]): Returns the current text from the 
              iterator
              (-[WebTextIterator atEnd]): Indicated whether the iterator has 
              reached the end of the range.
              * WebView/WebView.h:
              * WebView/WebView.mm:
              (-[WebView textIteratorForRect:]): Returns a WebTextIterator with 
              the DOMRange contained in the rectangle given as a parameter.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37611 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      cf22dbac
  19. 26 Jun, 2008 1 commit
    • mitz@apple.com's avatar
      WebCore: · c13cd254
      mitz@apple.com authored
              Reviewed by Darin Adler.
      
              - fix <rdar://problem/3099526> Find command doesn't search form input controls (textareas and text fields)
                http://bugs.webkit.org/show_bug.cgi?id=7023
      
              Test: editing/selection/find-in-text-control.html
      
              * WebCore.base.exp: Updated the TextIterator constructor signature.
      
              * editing/TextIterator.cpp:
              (WebCore::TextIterator::TextIterator): Added an enterTextControls
              boolean parameter that determines whether the iterator should visit text
              inside text areas and text fields. Added code to initialize the
              m_inShadowContent member variable based on whether the range is in
              shadow content.
              (WebCore::TextIterator::advance): Added code to step out of shadow
              content.
              (WebCore::TextIterator::handleReplacedElement): Added code to enter
              text controls if desired.
              (WebCore::CharacterIterator::CharacterIterator): Added an
              enterTextControls boolean parameter that determines whether the iterator
              should visit text inside text areas and text fields. This is passed to
              the TextIterator constructor.
              (WebCore::findPlainText): Changed to use a CharacterIterator that
              visits text controls.
      
              * editing/TextIterator.h: Added member variables to track whether the
              current node is in a shadow tree and whether the iterator should visit
              text controls.
      
              * page/Frame.cpp:
              (WebCore::Frame::findString): Changed to find inside text controls.
              (WebCore::Frame::markAllMatchesForText): Ditto.
      
              * rendering/RenderTextControl.cpp:
              (WebCore::RenderTextControl::innerTextElement): Added.
              * rendering/RenderTextControl.h: Added innerTextElement(), a private
              accessor method that is accessible to TextIterator through class
              friendship.
      
      LayoutTests:
      
              Reviewed by Darin Adler.
      
              - test for <rdar://problem/3099526> Find command doesn't search form input controls (textareas and text fields)
                http://bugs.webkit.org/show_bug.cgi?id=7023
      
              * editing/selection/find-in-text-control-expected.txt: Added.
              * editing/selection/find-in-text-control.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34822 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c13cd254
  20. 24 Jun, 2008 1 commit
    • justin.garcia@apple.com's avatar
      WebCore: · 87099ef1
      justin.garcia@apple.com authored
      2008-06-24  Justin Garcia  <justin.garcia@apple.com>
      
              Reviewed by John.
      
              <rdar://problem/6026335> REGRESSION: Caret disappears after deleting a particular selection involving a ToDo
              
              * editing/CompositeEditCommand.cpp:
              (WebCore::CompositeEditCommand::moveParagraphs): If asked to preserveStyle, we
              apply styles from the moved paragraph to the destination with applyStyle, which
              does selection preservation when it needs to apply block styles.  Selection preservation 
              uses relatively untested code in TextIterator to count VisiblePositions which fails in 
              this particular test case because it doesn't handle changes in editability properly.  
              We can avoid this bug by not applying block styles from moved paragraphs.  This is 
              something that should be done anyway, since the moved paragraph should assume the 
              block styles of the destination.
              * editing/EditCommand.cpp:
              (WebCore::EditCommand::styleAtPosition): Added a FIXME about how it is misleading for
              this function to also include the typing style.
              * editing/TextIterator.h: Added a FIXME about how the code path used for selection preservation
              is buggy and should be phased out when we rewrite moveParagraphs.
      
      LayoutTests:
      
      2008-06-24  Justin Garcia  <justin.garcia@apple.com>
      
              Reviewed by John.
      
              <rdar://problem/6026335> REGRESSION: Caret disappears after deleting a particular selection involving a ToDo
      
              * editing/deleting/6026335-expected.txt: Added.
              * editing/deleting/6026335.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34780 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      87099ef1
  21. 20 Feb, 2008 1 commit
    • weinig@apple.com's avatar
      Reviewed, tweaked and landed by Sam. · 1f88aabc
      weinig@apple.com authored
              - make HTMLInterchange return a String instead of a DeprecatedString
      
              * editing/TextIterator.cpp:
              (WebCore::CharacterIterator::string): Build up the String using a
              Vector.
              (WebCore::WordAwareIterator::advance): Switch to using Vector functions.
              (WebCore::WordAwareIterator::length): Ditto.
              (WebCore::WordAwareIterator::characters): Ditto.
              * editing/TextIterator.h: Use a Vector<UChar> for the buffer instead
              of DeprecatedString.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@30447 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1f88aabc
  22. 06 Nov, 2007 1 commit
    • ap's avatar
      Reviewed by Darin. · 7a07131a
      ap authored
              http://bugs.webkit.org/show_bug.cgi?id=15847
              Some editing cleanup
      
              No change in functionality.
      
      WebCore:
              * editing/TextIterator.cpp:
              (WebCore::plainText):
              * editing/TextIterator.h:
              Made WebCore::plainText() return String instead of DeprecatedString.
      
              * bridge/mac/WebCoreAXObject.mm:
              (-[WebCoreAXObject textUnderElement]):
              (-[WebCoreAXObject value]):
              (-[WebCoreAXObject doAXBoundsForTextMarkerRange:]):
              (-[WebCoreAXObject doAXNextSentenceEndTextMarkerForTextMarker:]):
              (-[WebCoreAXObject doAXPreviousSentenceStartTextMarkerForTextMarker:]):
              Updated for the above change. There is no need to explicitly convert to NSString now.
      
              * editing/EditCommand.cpp:
              (WebCore::EditCommand::EditCommand): m_startingSelection and m_endingSelection are actually
              initialized in constructor body, so the work done in initializer list was wasted.
      
              (WebCore::EditCommand::apply): Moved some stars.
              (WebCore::EditCommand::unapply): Ditto.
              (WebCore::EditCommand::reapply): Ditto.
              (WebCore::EditCommand::setStartingSelection): The loop exit condition was evaluated twice,
              removed one of the checks.
      
              * editing/SelectionController.cpp:
              (WebCore::SelectionController::toString): plainText() result type now matches what we need here.
      
              * page/mac/WebCoreFrameBridge.h:
              * page/mac/WebCoreFrameBridge.mm:
              Removed unused -[WebCoreFrameBridge deleteKeyPressedWithSmartDelete:granularity:] and
              -[WebCoreFrameBridge forwardDeleteKeyPressedWithSmartDelete:granularity:].
      
      WebKit:
              * WebView/WebHTMLView.mm:
              (-[WebHTMLView deleteToEndOfLine:]):
              (-[WebHTMLView deleteToEndOfParagraph:]):
              WebCore had a duplicate of the same logic already. We are passing a boundary value to
              a function that expects granularity, this may need to be straightened out in the future.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@27477 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7a07131a
  23. 17 Oct, 2007 1 commit
    • justing's avatar
      WebCore: · c2feaf85
      justing authored
              Reviewed by Harrison.
              
              <rdar://problem/5481523> 
              GoogleDocs: Safari hangs when indenting a particular table twice
              
              Fixed by fixing problems with the selection preservation done by IndentOutdentCommand.
              It is now more difficult to create selections that cause hangs.  Those are covered by:
              <rdar://problem/5543472>
      
              * editing/IndentOutdentCommand.cpp:
              (WebCore::indexForVisiblePosition): Compute indices from the first VisiblePosition
              in the document, instead of the first Position.
              Use rangeCompliantEquivalents when creating the Range that we pass to rangeLength.
              Tell TextIterator::rangeLength that we're doing selection preservation, so that it
              will emit characters between all VisiblePositions.
              (WebCore::IndentOutdentCommand::indentRegion): Fixed a bug where the range and location
              passed to rangeFromLocationAndLength were reversed.
              Tell rangeFromLocationAndLength that we're doing doing selection preservation, as
              above.
              * editing/TextIterator.cpp:
              (WebCore::CharacterIterator::CharacterIterator): 
              (WebCore::TextIterator::rangeLength): Rename emitSpacesForReplacedElements
              to forSelectionPreservation, to match the name of the boolean inside TextIterator and
              to match its meaning after r25522.
              (WebCore::TextIterator::rangeFromLocationAndLength): Ditto.
      
      LayoutTests:
      
              Reviewed by Harrison.
      
              <rdar://problem/5481523> 
              GoogleDocs: Safari hangs when indenting a particular table twice
      
              * editing/execCommand/5481523.html: Added.
              * platform/mac/editing/execCommand/5481523-expected.checksum: Added.
              * platform/mac/editing/execCommand/5481523-expected.png: Added.
              * platform/mac/editing/execCommand/5481523-expected.txt: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@26700 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c2feaf85
  24. 12 Sep, 2007 1 commit
    • justing's avatar
      WebCore: · e1934676
      justing authored
              Reviewed by Tristan.
      
              <rdar://problem/5469868> 
              GoogleDocs: A hang occurs when applying list styling to a selection in a <table>
              
              When list insertion moves selected paragraphs into list items, it relies on 
              the selection preservation code inside moveParagraphs to iterate over the 
              selected paragraphs.  If a selection is ever restored incorrectly (before
              the original, or inside the original) list insertion will go into an infinite loop.
              
              In this hang, a table was selected and the selection preservation code incorrectly
              restored a selection, placing it inside the table.
              
              The bug was that a TextIterator, when being used for selection preservation, must
              emit a character between every VisiblePosition in the Range used to create the
              iterator.
              
              * editing/TextIterator.cpp:
              (WebCore::TextIterator::TextIterator): Renamed the boolean that we use for 
              selection preservation.  It used to be m_emitForReplacedElements because
              we believed that replaced elements were the only case where TextIterators
              should have emitted differently when used for selection preservation.
              (WebCore::TextIterator::handleReplacedElement): Ditto.
              (WebCore::TextIterator::shouldRepresentNodeOffsetZero): Represent the 
              position before block tables, but only if we are emitting for selection 
              preservation.
              (WebCore::TextIterator::shouldEmitSpaceBeforeAndAfterNode): We should emit 
              a space before and after block tables if we are emitting for selection 
              preservation (because we have VisiblePositions before and after them).
              (WebCore::TextIterator::handleNonTextNode): Use a renamed variable.
              * editing/TextIterator.h: Made shouldEmitSpaceBeforeAndAfterNode a member
              function, because whether or not we emit spaces before and after a block
              table depends we're emitting for selection preservation.
      
      LayoutTests:
      
              Reviewed by Tristan.
      
              Demonstrates bug:
              * editing/execCommand/5469868-expected.txt: Added.
              * editing/execCommand/5469868.html: Added.
              
              Fixed (and moved expected results to platform/mac):
              * editing/style/table-selection-expected.checksum: Removed.
              * editing/style/table-selection-expected.png: Removed.
              * editing/style/table-selection-expected.txt: Removed.
              * platform/mac/editing/style: Added.
              * platform/mac/editing/style/table-selection-expected.checksum: Added.
              * platform/mac/editing/style/table-selection-expected.png: Added.
              * platform/mac/editing/style/table-selection-expected.txt: Added.
              
              Fixed:
              * platform/mac/editing/execCommand/5432254-2-expected.checksum:
              * platform/mac/editing/execCommand/5432254-2-expected.png:
              * platform/mac/editing/execCommand/5432254-2-expected.txt:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@25522 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e1934676
  25. 02 Aug, 2007 1 commit
    • antti's avatar
      Reviewed by Darin. · 9be94542
      antti authored
              <rdar://problem/5355951>
              plainText() fragments TCMalloc heap badly on large pages
              
              also likely fixes some cases of
              <rdar://problem/5335382>
              CrashTracer: [REGRESSION] 73 crashes in Safari at com.apple.WebCore: WebCore::DeprecatedStringData::increaseUnicodeSize + 52
              
              If you load http://dscoder.com/test.txt with WebKit build with TCMalloc and system malloc you see that
              Safari RPRVT with TCMalloc is 118.8MB
              Safari RPRVT with system malloc is 69.7MB
              
              Difference is almost entirely caused by heap fragmentation from a full document plainText() call (for indexing purposes).
              
              The patch helps in two ways:
              - construct plainText string in pieces to avoid O(n^2) reallocs
              - allocate buffers using system malloc so they can be returned back to OS and don't fragment and grow TCMalloc heap
          
              This shrinks http://dscoder.com/test.txt RPRVT to 79.0MB and makes full document plainText() take 50ms instead of 500ms.
              The benefits are not limited to extreme cases, web pages above ~200kB can show substantial improvement in RPRVT.
      
              * editing/TextIterator.cpp:
              (WebCore::plainTextToMallocAllocatedBuffer):
              (WebCore::plainText):
              * editing/TextIterator.h:
              * page/mac/WebCoreFrameBridge.mm:
              (-[WebCoreFrameBridge selectedString]):
              (-[WebCoreFrameBridge stringForRange:]):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@24832 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9be94542
  26. 30 May, 2007 1 commit
    • justing's avatar
      Reviewed by Darin. · 058a3672
      justing authored
       
              http://bugs.webkit.org/show_bug.cgi?id=13915
              REGRESSION(r21687): editing/inserting/paragraph-separator-* failing pixel test (misspelling markers)
      
              After r21687, SimplifiedBackwardsTextIterator was no longer 
              emitting a '\n' as it left the first block of a range ending 
              at [block, 0]. So, foo<div>^<br></div> looked like foo^ to
              spell checking (foo wasn't marked as misspelled).
      
              After r21687, SBTI stopped emitting '\n's in the above case 
              because 1) we stopped incorrectly emitting '\n's for nodes as 
              we entered them and 2) we were and still are incorrectly calling 
              code that should only be called when entering nodes as we leave 
              them and 3) we don't call exitNode(), which is responsible 
              for emitting the '\n' in the above testcase, when we should.
      
              Before and after r21687, we'd call exitNode() for a node as 
              we traversed in reverse pre-order from its first descendant 
              out to its sibling or one of its ancestors' siblings.  We 
              weren't calling it a) after we'd enter a node that could 
              have children but had none and b) when leaving a container 
              that contained the end of the range used to create the iterator.
      
              * editing/TextIterator.cpp:
              (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
              (WebCore::SimplifiedBackwardsTextIterator::advance): Call exitNode() as we
              leave a childless container node and a node where the range ended.
              * editing/TextIterator.h: Track the end of the range used to create
              the SimplifiedBackwardsTextIterator.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@21908 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      058a3672
  27. 10 Apr, 2007 1 commit
    • justing's avatar
      LayoutTests: · e90e5237
      justing authored
              Reviewed by harrison
              
              <rdar://problem/4932260> 
              Invalid attributed string for attachment range obtained via AXPreviousWordStartTextMarkerForTextMarker
      
              Forgot to check these in in my previous checkin:
              * editing/pasteboard/drag-image-to-contenteditable-in-iframe-expected.checksum: Added.
              * editing/pasteboard/drag-image-to-contenteditable-in-iframe-expected.png: Added.
              
              Tests for a bug where replaced elements would act
              as sentence boundaries:
              * editing/selection/4932260-1-expected.checksum: Added.
              * editing/selection/4932260-1-expected.png: Added.
              * editing/selection/4932260-1-expected.txt: Added.
              * editing/selection/4932260-1.html: Added.
              
              Tests to see that replaced elements do not act as word
              boundaries when moving forward through the document:
              * editing/selection/4932260-2-expected.checksum: Added.
              * editing/selection/4932260-2-expected.png: Added.
              * editing/selection/4932260-2-expected.txt: Added.
              * editing/selection/4932260-2.html: Added.
              
              Ditto but tests moving backward:
              * editing/selection/4932260-3-expected.checksum: Added.
              * editing/selection/4932260-3-expected.png: Added.
              * editing/selection/4932260-3-expected.txt: Added.
              * editing/selection/4932260-3.html: Added.
              
              No way to test accessibility APIs atm, and had trouble
              making a test for selection creation with double-click 
              and drag.
      
      WebCore:
      
              Reviewed by harrison
              
              <rdar://problem/4932260> 
              Invalid attributed string for attachment range obtained via AXPreviousWordStartTextMarkerForTextMarker
              
              By default, text iterators don't emit anything for replaced 
              elements.  Boundary finding code works around this but has 
              bugs: replaced elements act as sentence boundaries and the 
              above bug, where previousBoundary moves past the start of a 
              word if there is a replaced element just before it. This 
              patch fixes these issues by treating replaced elements as 
              punctuation for boundary finding.
      
              * editing/TextIterator.cpp:
              (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
              Set m_pastStartNode, the node after (in a reverse pre-order traversal) the 
              last one that should be processed.
              (WebCore::SimplifiedBackwardsTextIterator::advance):
              Stop at m_pastStartNode.
              Iterate over nodes in reverse pre-order (TextIterator traverses in 
              pre-orer). This makes knowing when to emit characters after nodes vs. when
              to emit characters before nodes easier.
              Remove the special case for entering a new block, emitting characters 
              after nodes can now be handled generally, in handleNonTextNode(), because
              of the way we traverse.
              Set m_handledChildren to false every iteration since we now do traverse in 
              reverse pre-order.
              (WebCore::SimplifiedBackwardsTextIterator::handleReplacedElement):
              Emit a comma for replaced elements.  We only use this kind of iterator 
              for finding boundaries, so we can do this unconditionally.
              (WebCore::SimplifiedBackwardsTextIterator::handleNonTextNode):
              Don't use emitNewline, instead specify where the newline should be positioned.
              A node is handled before its children, so characters emitted here should 
              be positioned after the node, not before it.
              (WebCore::SimplifiedBackwardsTextIterator::exitNode): 
              Don't use emitNewline, instead specify where the newline should be positioned.
              (WebCore::CharacterIterator::CharacterIterator): 
              Create a TextIterator that emits content for replaced elements, if requested.
              * editing/TextIterator.h:
              * editing/visible_units.cpp:
              (WebCore::previousBoundary): 
              Removed replaced element handling code.
              If the start of the chunk that contained the boundary was in a non-text
              node, then the boundary is not necessarily in that node.  Particularly
              because it is only the end of the chunk that is guaranteed to be a valid
              position in those cases.  We must iterate backwards by character from 
              the end of the chunk to find the boundary.
              (WebCore::nextBoundary): Removed replaced element handling code.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20839 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e90e5237
  28. 23 Mar, 2007 1 commit
    • justing's avatar
      LayoutTests: · 3fffaa6b
      justing authored
              Reviewed by darin
      
              Fixed (was missing a newline):
              * editing/execCommand/4917055-expected.txt:
              Tests setting a caet before the image and changing its alignment:
              * editing/execCommand/5080333-1-expected.checksum: Added.
              * editing/execCommand/5080333-1-expected.png: Added.
              * editing/execCommand/5080333-1-expected.txt: Added.
              * editing/execCommand/5080333-1.html: Added.
              Tests selecting the image and changing its alignment:
              * editing/execCommand/5080333-2-expected.checksum: Added.
              * editing/execCommand/5080333-2-expected.png: Added.
              * editing/execCommand/5080333-2-expected.txt: Added.
              * editing/execCommand/5080333-2.html: Added.
      
      WebCore:
      
              Reviewed by darin
      
              <rdar://problem/5080333> 
              REGRESSION: Selection changes when changing the alignment of an image
              
              Regression occurred when we started using moveParagraphs
              to move content in applyBlockStyle.  moveParagraphs 
              moves by copying, deleting and reinserting content, and
              so must be accompanied by selection preservation code.
              That code uses rangeFromLocationAndLength and rangeLength,
              which use TextIterators, which don't emit anything for images 
              and other replaced elements, causing this bug.
      
              * editing/ApplyStyleCommand.cpp:
              (WebCore::ApplyStyleCommand::applyBlockStyle): Ask rangeLength 
              and rangeFromLocationAndLength to request that their
              TextIterators emit spaces for replaced elements.
              Use rangeCompliantEquivalent()s when creating a Range from
              VisiblePositions, since some VisiblePositions have illegal
              deepEquivalent()s.
              * editing/CompositeEditCommand.cpp:
              (WebCore::CompositeEditCommand::moveParagraphs): Ditto.
              * editing/TextIterator.cpp:
              (WebCore::TextIterator::TextIterator):
              (WebCore::TextIterator::handleReplacedElement): Emit
              a space if requested.
              (WebCore::TextIterator::representNodeOffsetZero): Emit
              ranges before m_node, not around m_lastTextNode.  These
              ranges should represent the part of the document associated
              with the emitted character. 
              (WebCore::TextIterator::rangeLength): Take in the new bool.
              (WebCore::TextIterator::rangeFromLocationAndLength): Ditto.
              Also, don't loop an extra time after finding the end of the
              range when we're looking for zero length ranges.  This appeared
              to be a workaround for the bugs fixed in representNodeOffsetZero
              in this patch.
              * editing/TextIterator.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20449 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3fffaa6b
  29. 13 Mar, 2007 1 commit
    • harrison's avatar
      LayoutTests: · 8b1ae58a
      harrison authored
              Reviewed by Justin.
      
              <rdar://problem/5031181> cntl-k at end of paragraph adds nothing to the kill ring
              <rdar://problem/5031189> REGRESSION: cntl-y yanks only the most recently killed content
      
              * editing/pasteboard/emacs-ctrl-k-y-001-expected.checksum: Added.
              * editing/pasteboard/emacs-ctrl-k-y-001-expected.png: Added.
              * editing/pasteboard/emacs-ctrl-k-y-001-expected.txt: Added.
              * editing/pasteboard/emacs-ctrl-k-y-001.html: Added.
      
      WebCore:
      
              Reviewed by Justin.
      
              <rdar://problem/5031181> cntl-k at end of paragraph adds nothing to the kill ring
              <rdar://problem/5031189> REGRESSION: cntl-y yanks only the most recently killed content
      
              For rdar://5031181, properly extend the selection before the killring handling, and
              make sure plainText of that selection returns a linefeed.
              
              For rdar://5031189, restore Editor::deleteRange() code that continued current killring,
              even though the range deletion implicitly stopped it via changing the selection.
              
              A byproduct of this change is the elimination of RUNDFINDER vs CONTENT TextIterator. The
              only difference between the two was whether to emit a newline when the range started
              with a blockflow element. No callers actually need that any more.
      
              Tests added:
              * editing/pasteboard/emacs-ctrl-k-y-001-expected.checksum: Added.
              * editing/pasteboard/emacs-ctrl-k-y-001-expected.png: Added.
              * editing/pasteboard/emacs-ctrl-k-y-001-expected.txt: Added.
              * editing/pasteboard/emacs-ctrl-k-y-001.html: Added.
      
              * editing/Editor.cpp:
              (WebCore::Editor::deleteRange):
              Clear the "start new kill ring sequence" setting, because it was set to true
              when the selection was updated by deleting the range.
              
              (WebCore::Editor::deleteWithDirection):
              If extending the selection to the end of paragraph resulted in a caret selection,
              extend by character, to handle the case when the selection started as a caret at
              the end of paragraph.
              
              * editing/TextIterator.cpp:
              (WebCore::TextIterator::TextIterator):
              Initialize new member variables for tracking handling of the beginning of the range.
              
              (WebCore::TextIterator::advance):
              Call representNodeOffsetZero on the m_endContainer.
              Move visibility checks into handleTextNode and handleReplacedElement.
              
              (WebCore::TextIterator::handleTextNode):
              (WebCore::TextIterator::handleTextBox):
              Call emitText.
              
              (WebCore::TextIterator::handleReplacedElement):
              Moved visibility check into here.
              
              (WebCore::shouldEmitNewlinesBeforeAndAfterNode):
              
              (WebCore::TextIterator::shouldRepresentNodeOffsetZero):
              (WebCore::TextIterator::representNodeOffsetZero):
              New. Emits proper sequence when encountering offset 0 of a node, including the
              m_endContainer. Started with code from handleNonTextNode.
              
              (WebCore::TextIterator::handleNonTextNode):
              Call representNodeOffsetZero.
              
              (WebCore::TextIterator::exitNode):
              Similar to shouldRepresentNodeOffsetZero, do not emit the newline if the node
              was collapsed, and before any other emitted content.
              
              (WebCore::TextIterator::emitCharacter):
              
              (WebCore::TextIterator::emitText):
              New. Consolidates code used by handleText and handleTextBox.
              
              (WebCore::CharacterIterator::CharacterIterator):
              Removed RUNFINDER.
      
              (WebCore::WordAwareIterator::WordAwareIterator):
              Removed RUNFINDER.
              
              (WebCore::WordAwareIterator::advance):
              Formatting.
      
              (WebCore::TextIterator::rangeLength):
              Formatting.
              
              * editing/TextIterator.h:
              Added member variables for tracking handling of the beginning of the range.
              Eliminated concept of RUNDFINDER vs CONTENT TextIterator.
              
              * editing/visible_units.cpp:
              (WebCore::nextBoundary):
              Eliminated concept of RUNDFINDER vs CONTENT TextIterator.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20166 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8b1ae58a
  30. 01 Dec, 2006 1 commit
    • sullivan's avatar
      Reviewed by Darin · 5a03acf8
      sullivan authored
              
              Move subrange helper function from spellchecking code to TextIterator
      
              * editing/TextIterator.h:
              added TextIterator::subrange
              * editing/TextIterator.cpp:
              (WebCore::CharacterIterator::advance):
              early return if count is <= 0; assert that it's not < 0
              (WebCore::TextIterator::subrange):
              new function, moved from FrameMac.mmm
      
              * bridge/mac/FrameMac.mm:
              moved subrange() function to TextIterator
              (WebCore::FrameMac::advanceToNextMisspelling):
              use TextIterator::subrange
              (WebCore::markAllMisspellingsInRange):
              ditto
              (WebCore::markAllBadGrammarInRange):
              ditto
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@17980 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5a03acf8
  31. 31 Oct, 2006 1 commit
    • justing's avatar
      LayoutTests: · 04f2de8d
      justing authored
              Reviewed by harrison
      
              * editing/execCommand/create-list-1.html: Removed.
              * editing/execCommand/create-list-with-hr-expected.checksum:
              * editing/execCommand/create-list-with-hr-expected.png:
              * editing/execCommand/create-list-with-hr-expected.txt:
              * editing/execCommand/remove-list-1-expected.checksum:
              * editing/execCommand/remove-list-1-expected.png:
              * editing/execCommand/remove-list-1-expected.txt:
              * fast/text/attributed-substring-from-range-001-expected.txt:
      
      WebCore:
      
              Reviewed by harrison
              
              <rdar://problem/4808375>
              REGRESSION: TextIterator slowed down, affecting Find on Page & Copy (etc.) [11460}
              
              Completely back out r17276 because of performance issues.
      
              * editing/TextIterator.cpp:
              (WebCore::TextIterator::TextIterator):
              (WebCore::TextIterator::advance):
              (WebCore::TextIterator::handleTextNode):
              (WebCore::TextIterator::handleTextBox):
              (WebCore::TextIterator::handleReplacedElement):
              (WebCore::TextIterator::handleNonTextNode):
              (WebCore::TextIterator::exitNode):
              (WebCore::TextIterator::emitCharacter):
              (WebCore::TextIterator::range):
              (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
              (WebCore::SimplifiedBackwardsTextIterator::advance):
              (WebCore::SimplifiedBackwardsTextIterator::handleTextNode):
              (WebCore::SimplifiedBackwardsTextIterator::handleReplacedElement):
              (WebCore::SimplifiedBackwardsTextIterator::emitCharacter):
              (WebCore::SimplifiedBackwardsTextIterator::emitNewline):
              (WebCore::SimplifiedBackwardsTextIterator::range):
              (WebCore::CharacterIterator::range):
              (WebCore::TextIterator::rangeFromLocationAndLength):
              * editing/TextIterator.h:
              (WebCore::TextIterator::atEnd):
              (WebCore::SimplifiedBackwardsTextIterator::atEnd):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@17490 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      04f2de8d
  32. 24 Oct, 2006 1 commit
    • justing's avatar
      LayoutTests: · dc376ff5
      justing authored
              Reviewed by darin
      
              <http://bugs.webkit.org/show_bug.cgi?id=10993>
              GMail Editor: Caret doesn't always position itself after list marker
      
              * editing/execCommand/create-list-1-expected.checksum: Added.
              * editing/execCommand/create-list-1-expected.png: Added.
              * editing/execCommand/create-list-1-expected.txt: Added.
              * editing/execCommand/create-list-1.html: Added.
              
              Fixed:
              * editing/execCommand/create-list-with-hr-expected.checksum:
              * editing/execCommand/create-list-with-hr-expected.png:
              * editing/execCommand/create-list-with-hr-expected.txt:
              * editing/execCommand/create-list-with-hr.html:
              * editing/execCommand/remove-list-1-expected.checksum:
              * editing/execCommand/remove-list-1-expected.png:
              * editing/execCommand/remove-list-1-expected.txt:
              * fast/text/attributed-substring-from-range-001-expected.txt:
      
      WebCore:
      
              Reviewed by darin
      
              <http://bugs.webkit.org/show_bug.cgi?id=10993>
              GMail Editor: Caret doesn't always position itself after list marker
              
              List creation uses moveParagraphs to push content into list items.  
              moveParagraphs uses a TextIterator to restore selections after moves.
              Some characters emitted by the TextIterator had bad ranges associated
              with them.  rangeFromLocationAndLength would skip past the range it
              should have used when asked for ranges of length 0.
      
              * editing/TextIterator.cpp:
              (WebCore::TextIterator::TextIterator): No longer need to initialize a
              removed member variable.
              (WebCore::TextIterator::advance): An extra newline is emitted when leaving
              some blocks.  Use the same range for this newline as for the first newline.
              We should remove this code and just emit two '\n's.
              (WebCore::TextIterator::handleTextNode): Setup m_range.
              (WebCore::TextIterator::handleTextBox): Ditto.
              (WebCore::TextIterator::handleReplacedElement): Ditto.
              (WebCore::TextIterator::handleNonTextNode): Ditto.
              (WebCore::TextIterator::exitNode): Use an m_range from the last VisiblePosition
              in the block we're leaving to that VP after that one.
              (WebCore::TextIterator::emitCharacter): This function now takes in the start
              and the end of the range associated with the emited character, and sets up m_range.
              (WebCore::TextIterator::range): Return m_range.  If it is null (we are atEnd), 
              return the end of the range used to create the iterator, as a convenience to
              callers that use call range() on an iterator that is atEnd.
              (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
              Same as the changes made to TextIterator's constructor.
              (WebCore::SimplifiedBackwardsTextIterator::advance): Use a null m_range instead of
              a null m_positionNode to signal that we're finished.
              (WebCore::SimplifiedBackwardsTextIterator::handleTextNode): Ditto.
              (WebCore::SimplifiedBackwardsTextIterator::handleReplacedElement): Similar to changes
              made to TextIterator.
              (WebCore::SimplifiedBackwardsTextIterator::emitCharacter): Ditto.
              (WebCore::SimplifiedBackwardsTextIterator::emitNewline): Simplified.
              (WebCore::SimplifiedBackwardsTextIterator::range): Similar to the changes made to
              TextIterator::range.
              (WebCore::CharacterIterator::range): This function assumed that an iterator's
              range() was safe to modify.
              (WebCore::TextIterator::rangeFromLocationAndLength):
              If the range we're looking for starts in the current chunk, this function assumed
              that if the chunk started in a text node, it would end in the same text node.  This
              is no longer the case.
              If the range we're looking for starts in the middle of the current chunk, I assume
              that the chunk is inside a text node, because those are the only chunks with length
              greater than one at the moment.
              If the range we're looking for is a zero length range that starts/ends at the end of the
              current chunk, we used to return the start of the next chunk, but that's wrong and
              is what caused this bug.
              * editing/TextIterator.h:
              (WebCore::TextIterator::atEnd): The iterator is atEnd when m_range is null.
              (WebCore::SimplifiedBackwardsTextIterator::atEnd):
              * editing/visible_units.cpp:
              (WebCore::previousBoundary): Cleaned up by using a convenience function.
              (WebCore::nextBoundary): Ditto.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@17276 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      dc376ff5
  33. 03 Oct, 2006 1 commit
    • harrison's avatar
      LayoutTests: · 01ad47aa
      harrison authored
              Reviewed by Maciej.
              
              <rdar://problem/4671286> Candidate Window isn't displayed and only first candidate is displayed at typing location.
      
              Updated test so that it actually shows the caret rect for the caret position.
              Before, it was showing the caret rect for the 9th character of the test description.
              
              * fast/text/justified-text-rect-expected.checksum:
              * fast/text/justified-text-rect-expected.png:
              * fast/text/justified-text-rect-expected.txt:
              * fast/text/justified-text-rect.html:
      
      WebCore:
      
              Reviewed by Maciej.
      
              <rdar://problem/4671286> Candidate Window isn't displayed and only first candidate is displayed at typing location.
      
              Updated test:
              * fast/text/justified-text-rect.html
      
              * bridge/mac/WebCoreFrameBridge.mm:
              (-[WebCoreFrameBridge convertToNSRange:]):
              (-[WebCoreFrameBridge convertToDOMRange:]):
              Make the selection's root editable element (or the document itself) be
              the basis for NSRange conversions. This supports "shadow DOM" like
              that for text fields and text areas.
              
              * editing/CompositeEditCommand.cpp:
              (WebCore::CompositeEditCommand::moveParagraphs):
              Pass the document element as the scope.
              
              * editing/TextIterator.cpp:
              (WebCore::TextIterator::rangeFromLocationAndLength):
              Make the first parameter the scope.
              
              * editing/TextIterator.h:
              Make the first parameter of rangeFromLocationAndLength() the scope.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@16737 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      01ad47aa
  34. 09 Jul, 2006 1 commit
    • darin's avatar
      Rubber stamped by Maciej (kinda). · b53ebdcb
      darin authored
              - did the next pass of renaming (used do-webcore-rename script)
                this takes care of most of the remaining KWQ names (almost all)
      
              * WebCore+SVG/DOMList.h:
              * WebCore.vcproj/WebCore/WebCore.vcproj:
              * WebCore.xcodeproj/project.pbxproj:
              * WebCoreSources.bkl:
              * bindings/js/kjs_dom.cpp:
              * bindings/js/kjs_window.cpp:
              * bindings/objc/DOMHTML.mm:
              * bridge/mac/FrameMac.h:
              * bridge/mac/FrameMac.mm:
              * bridge/mac/WebCoreFrameBridge.mm:
              * bridge/mac/WebCoreSettings.h:
              * bridge/mac/WebCoreSettings.mm:
              * bridge/win/FrameWin.cpp:
              * css/CSSPrimitiveValue.cpp:
              * css/CSSValueKeywords.in:
              * css/MediaQueryEvaluator.cpp:
              * css/cssparser.cpp:
              * css/cssstyleselector.cpp:
              * css/cssstyleselector.h:
              * dom/CharacterData.cpp:
              * dom/CharacterData.h:
              * dom/Document.cpp:
              * dom/Element.cpp:
              * dom/Element.h:
              * dom/EventTargetNode.cpp:
              * dom/EventTargetNode.h:
              * dom/Node.cpp:
              * dom/Node.h:
              * dom/Position.cpp:
              * dom/ProcessingInstruction.cpp:
              * dom/QualifiedName.cpp:
              * dom/QualifiedName.h:
              * dom/XMLTokenizer.cpp: Added.
              * dom/xml_tokenizer.cpp: Removed.
              * dom/xml_tokenizer.h: Removed.
              * editing/EditAction.h:
              * editing/HTMLInterchange.cpp:
              * editing/HTMLInterchange.h:
              * editing/Selection.h:
              * editing/SelectionController.h:
              * editing/TextAffinity.h:
              * editing/TextIterator.cpp:
              * editing/TextIterator.h:
              * editing/VisiblePosition.h:
              * editing/htmlediting.cpp:
              * editing/markup.cpp:
              * editing/markup.h:
              * editing/visible_units.cpp:
              * editing/visible_units.h:
              * html/HTMLDocument.cpp:
              * html/HTMLFontElement.cpp:
              * html/HTMLInputElement.cpp:
              * html/HTMLKeygenElement.cpp:
              * html/HTMLSelectElement.h:
              * html/HTMLTextAreaElement.cpp:
              * html/HTMLTextFieldInnerElement.cpp:
              * html/HTMLTokenizer.cpp:
              * html/HTMLTokenizer.h:
              * kcanvas/KCanvasContainer.cpp: Removed.
              * kcanvas/KCanvasContainer.h: Removed.
              * kcanvas/KCanvasCreator.cpp:
              * kcanvas/KCanvasFilters.cpp:
              * kcanvas/KCanvasFilters.h:
              * kcanvas/KCanvasMatrix.cpp:
              * kcanvas/KCanvasMatrix.h:
              * kcanvas/KCanvasPath.cpp:
              * kcanvas/KCanvasPath.h:
              * kcanvas/KCanvasResources.cpp:
              * kcanvas/KCanvasResources.h:
              * kcanvas/KCanvasTreeDebug.cpp:
              * kcanvas/KCanvasTreeDebug.h:
              * kcanvas/RenderForeignObject.cpp:
              * kcanvas/RenderForeignObject.h:
              * kcanvas/RenderPath.cpp:
              * kcanvas/RenderPath.h:
              * kcanvas/RenderSVGContainer.cpp: Added.
              * kcanvas/RenderSVGContainer.h: Added.
              * kcanvas/RenderSVGImage.cpp:
              * kcanvas/RenderSVGImage.h:
              * kcanvas/RenderSVGText.cpp:
              * kcanvas/RenderSVGText.h:
              * kcanvas/device/KRenderingPaintServer.h:
              * kcanvas/device/KRenderingPaintServerGradient.cpp:
              * kcanvas/device/KRenderingPaintServerGradient.h:
              * kcanvas/device/KRenderingPaintServerPattern.cpp:
              * kcanvas/device/KRenderingPaintServerPattern.h:
              * kcanvas/device/KRenderingPaintServerSolid.cpp:
              * kcanvas/device/KRenderingPaintServerSolid.h:
              * kcanvas/device/quartz/KCanvasFilterQuartz.mm:
              * kcanvas/device/quartz/KCanvasItemQuartz.h:
              * kcanvas/device/quartz/KCanvasResourcesQuartz.h:
              * kcanvas/device/quartz/KRenderingDeviceQuartz.mm:
              * kcanvas/device/quartz/KRenderingPaintServerGradientQuartz.mm:
              * kcanvas/device/quartz/KRenderingPaintServerQuartz.mm:
              * ksvg2/css/CSSValueKeywords.in:
              * ksvg2/css/SVGRenderStyleDefs.cpp:
              * ksvg2/misc/KCanvasRenderingStyle.cpp:
              * ksvg2/misc/KSVGTimeScheduler.cpp:
              * ksvg2/svg/SVGAElement.cpp:
              * ksvg2/svg/SVGAnimateTransformElement.cpp:
              * ksvg2/svg/SVGAnimateTransformElement.h:
              * ksvg2/svg/SVGGElement.cpp:
              * ksvg2/svg/SVGHelper.cpp:
              * ksvg2/svg/SVGHelper.h:
              * ksvg2/svg/SVGImageElement.cpp:
              * ksvg2/svg/SVGLinearGradientElement.cpp:
              * ksvg2/svg/SVGMarkerElement.cpp:
              * ksvg2/svg/SVGMaskElement.cpp:
              * ksvg2/svg/SVGMatrix.cpp:
              * ksvg2/svg/SVGMatrix.h:
              * ksvg2/svg/SVGPatternElement.cpp:
              * ksvg2/svg/SVGRadialGradientElement.cpp:
              * ksvg2/svg/SVGSVGElement.cpp:
              * ksvg2/svg/SVGStyledElement.h:
              * ksvg2/svg/SVGStyledTransformableElement.cpp:
              * ksvg2/svg/SVGStyledTransformableElement.h:
              * ksvg2/svg/SVGSwitchElement.cpp:
              * ksvg2/svg/SVGTextElement.cpp:
              * ksvg2/svg/SVGTransformable.h:
              * ksvg2/svg/SVGUseElement.cpp:
              * kwq/AffineTransform.cpp: Added.
              * kwq/AffineTransform.h: Added.
              * kwq/DeprecatedCString.cpp: Added.
              * kwq/DeprecatedCString.h: Added.
              * kwq/DeprecatedPtrQueue.h: Added.
              * kwq/FileButton.h: Added.
              * kwq/FileButton.mm: Added.
              * kwq/FormDataMac.mm: Added.
              * kwq/KWQCString.cpp: Removed.
              * kwq/KWQCString.h: Removed.
              * kwq/KWQComboBox.h: Removed.
              * kwq/KWQComboBox.mm: Removed.
              * kwq/KWQEditCommand.h: Removed.
              * kwq/KWQEditCommand.mm: Removed.
              * kwq/KWQFileButton.h: Removed.
              * kwq/KWQFileButton.mm: Removed.
              * kwq/KWQFormData.h: Removed.
              * kwq/KWQFormData.mm: Removed.
              * kwq/KWQKHTMLSettings.h: Removed.
              * kwq/KWQKIOGlobal.h: Removed.
              * kwq/KWQKSSLKeyGen.h: Removed.
              * kwq/KWQKSSLKeyGen.mm: Removed.
              * kwq/KWQLineEdit.h: Removed.
              * kwq/KWQLineEdit.mm: Removed.
              * kwq/KWQListBox.h: Removed.
              * kwq/KWQListBox.mm: Removed.
              * kwq/KWQLoader.h: Removed.
              * kwq/KWQLoader.mm: Removed.
              * kwq/KWQPageState.h: Removed.
              * kwq/KWQPageState.mm: Removed.
              * kwq/KWQPtrQueue.h: Removed.
              * kwq/KWQResourceLoader.h: Removed.
              * kwq/KWQResourceLoader.mm: Removed.
              * kwq/KWQScrollBar.h: Removed.
              * kwq/KWQScrollBar.mm: Removed.
              * kwq/KWQSlider.h: Removed.
              * kwq/KWQSlider.mm: Removed.
              * kwq/KWQTextEdit.h: Removed.
              * kwq/KWQTextEdit.mm: Removed.
              * kwq/KWQTextStream.cpp: Removed.
              * kwq/KWQTextStream.h: Removed.
              * kwq/KWQWMatrix.cpp: Removed.
              * kwq/KWQWMatrix.h: Removed.
              * kwq/ListBox.h: Added.
              * kwq/ListBox.mm: Added.
              * kwq/LoaderFunctions.h: Added.
              * kwq/LoaderFunctions.mm: Added.
              * kwq/PopUpButton.h: Added.
              * kwq/PopUpButton.mm: Added.
              * kwq/SSLKeyGenerator.h: Added.
              * kwq/SSLKeyGenerator.mm: Added.
              * kwq/Settings.h: Added.
              * kwq/TextBox.h: Added.
              * kwq/TextBox.mm: Added.
              * kwq/TextField.h: Added.
              * kwq/TextField.mm: Added.
              * kwq/TextStream.cpp: Added.
              * kwq/TextStream.h: Added.
              * kwq/WebCoreEditCommand.h: Added.
              * kwq/WebCoreEditCommand.mm: Added.
              * kwq/WebCorePageState.h: Added.
              * kwq/WebCorePageState.mm: Added.
              * kwq/WebCoreResourceLoaderImp.h: Added.
              * kwq/WebCoreResourceLoaderImp.mm: Added.
              * kwq/WebCoreScrollBar.h: Added.
              * kwq/WebCoreScrollBar.mm: Added.
              * kwq/WebCoreSlider.h: Added.
              * kwq/WebCoreSlider.mm: Added.
              * loader/Cache.h:
              * loader/CachedCSSStyleSheet.cpp:
              * loader/CachedImage.cpp:
              * loader/CachedObject.h:
              * loader/CachedObjectClientWalker.h:
              * loader/CachedResource.h:
              * loader/CachedResourceClientWalker.h:
              * loader/CachedScript.h:
              * loader/CachedXBLDocument.h:
              * loader/Decoder.h:
              * loader/DocLoader.cpp:
              * loader/DocLoader.h:
              * loader/FormData.h:
              * loader/ImageDocument.cpp:
              * loader/PluginDocument.cpp:
              * loader/TextDocument.cpp:
              * loader/loader.cpp:
              * loader/loader.h:
              * page/Frame.cpp:
              * page/Frame.h:
              * page/FramePrivate.h:
              * page/Page.cpp:
              * page/Page.h:
              * platform/DeprecatedPtrList.h:
              * platform/DeprecatedPtrListImpl.cpp:
              * platform/DeprecatedPtrListImpl.h:
              * platform/DeprecatedString.cpp:
              * platform/DeprecatedString.h:
              * platform/DeprecatedStringList.cpp:
              * platform/DeprecatedStringList.h:
              * platform/DeprecatedValueList.h:
              * platform/DeprecatedValueListImpl.cpp:
              * platform/DeprecatedValueListImpl.h:
              * platform/FloatSize.h:
              * platform/Font.cpp:
              * platform/KURL.cpp:
              * platform/RegularExpression.cpp:
              * platform/RegularExpression.h:
              * platform/SegmentedString.h:
              * platform/StreamingTextDecoder.cpp:
              * platform/String.cpp:
              * platform/StringImpl.cpp:
              * platform/TextEncoding.cpp:
              * platform/TransferJob.cpp:
              * platform/TransferJob.h:
              * platform/TransferJobInternal.h:
              * platform/gdk/FrameGdk.cpp:
              * platform/gdk/TemporaryLinkStubs.cpp:
              * platform/mac/ClipboardMac.h:
              * platform/mac/ClipboardMac.mm:
              * platform/mac/CursorMac.mm:
              * platform/mac/DeprecatedStringMac.mm: Added.
              * platform/mac/FontCacheMac.mm:
              * platform/mac/FontMac.mm:
              * platform/mac/FoundationExtras.h:
              * platform/mac/ImageMac.mm:
              * platform/mac/KURLMac.mm:
              * platform/mac/MouseEventMac.mm: Removed.
              * platform/mac/QStringListMac.mm: Removed.
              * platform/mac/QStringMac.mm: Removed.
              * platform/mac/TransferJobMac.mm:
              * platform/mac/WebCoreTextArea.h:
              * platform/mac/WebCoreTextArea.mm:
              * platform/mac/WebCoreTextField.h:
              * platform/mac/WebCoreTextField.mm:
              * platform/mac/WidgetMac.mm:
              * platform/win/TemporaryLinkStubs.cpp:
              * rendering/DataRef.h:
              * rendering/DeprecatedRenderSelect.cpp:
              * rendering/DeprecatedRenderSelect.h:
              * rendering/DeprecatedSlider.cpp:
              * rendering/InlineFlowBox.cpp:
              * rendering/RenderApplet.cpp:
              * rendering/RenderBlock.cpp:
              * rendering/RenderBlock.h:
              * rendering/RenderContainer.cpp:
              * rendering/RenderFileButton.cpp:
              * rendering/RenderFlexibleBox.cpp:
              * rendering/RenderFlow.cpp:
              * rendering/RenderFormElement.cpp:
              * rendering/RenderFrameSet.cpp:
              * rendering/RenderFrameSet.h:
              * rendering/RenderImage.cpp:
              * rendering/RenderInline.cpp:
              * rendering/RenderLayer.cpp:
              * rendering/RenderLayer.h:
              * rendering/RenderLineEdit.cpp:
              * rendering/RenderListItem.cpp:
              * rendering/RenderListMarker.cpp:
              * rendering/RenderObject.cpp:
              * rendering/RenderObject.h:
              * rendering/RenderPartObject.cpp:
              * rendering/RenderReplaced.cpp:
              * rendering/RenderStyle.cpp: Added.
              * rendering/RenderStyle.h: Added.
              * rendering/RenderTable.cpp:
              * rendering/RenderTable.h:
              * rendering/RenderTableCell.cpp:
              * rendering/RenderTableCell.h:
              * rendering/RenderTableCol.cpp:
              * rendering/RenderTableCol.h:
              * rendering/RenderTableRow.cpp:
              * rendering/RenderTableSection.cpp:
              * rendering/RenderTableSection.h:
              * rendering/RenderText.cpp:
              * rendering/RenderText.h:
              * rendering/RenderTextArea.cpp:
              * rendering/RenderTextControl.cpp: Added.
              * rendering/RenderTextControl.h: Added.
              * rendering/RenderTextField.cpp: Removed.
              * rendering/RenderTextField.h: Removed.
              * rendering/RenderTheme.cpp:
              * rendering/RenderThemeMac.mm:
              * rendering/RenderTreeAsText.cpp:
              * rendering/RenderTreeAsText.h:
              * rendering/RenderView.cpp:
              * rendering/RenderWidget.cpp:
              * rendering/bidi.cpp:
              * rendering/render_style.cpp: Removed.
              * rendering/render_style.h: Removed.
              * xml/XSLStyleSheet.cpp:
              * xml/XSLTProcessor.cpp:
              * xml/xmlhttprequest.cpp:
              * xpath/impl/XPathParser.cpp:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@15253 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b53ebdcb
  35. 10 May, 2006 1 commit
  36. 09 May, 2006 2 commits
    • darin's avatar
      LayoutTests: · 7ab3109f
      darin authored
              - test for http://bugzilla.opendarwin.org/show_bug.cgi?id=6310
                text-transform: uppercase/lowercase don't handle cases one character becomes two
      
              * fast/css/case-transform.html: Added.
              * fast/css/case-transform-expected.txt: Added.
      
      WebCore:
      
              Rubber stamped by Hyatt.
      
              - http://bugzilla.opendarwin.org/show_bug.cgi?id=8782
                use ICU and UChar more, QChar less
      
              - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6310
                text-transform: uppercase/lowercase don't handle cases one character becomes two
      
              Test: fast/css/case-transform.html
      
              By using ICU more, this fixes some bugs in a few places.
      
              * bindings/js/JSXMLSerializer.cpp:
              * css/css_valueimpl.h:
              * kwq/KWQTextStream.cpp:
              * loader/CachedObject.h:
              * platform/Color.cpp:
              Add includes of DeprecatedString.h as needed, now that StringImpl.h no longer
              includes it.
      
              * bindings/js/kjs_css.cpp: (KJS::cssPropertyName):
              Eliminate use of QChar::latin1() in a case where it's not helpful.
      
              * bindings/js/kjs_proxy.cpp: (WebCore::KJSProxy::evaluate):
              Use characters() function instead of the old unicode() function.
      
              * bindings/js/kjs_window.cpp: (KJS::isSeparator):
              Use UChar instead of QChar.
      
              * bindings/objc/DOMInternal.mm:
              (StringImpl::operator NSString*): Remove typecast that's no longer needed.
              (String::String): Ditto. Also use Vector for local buffer to make code read simpler.
      
              * bridge/mac/FrameMac.mm:
              (WebCore::selectorForKeyEvent): Remove call to unicode() function, no longer needed.
              (WebCore::FrameMac::setTitle): Remove QChar cast, no longer needed.
              (WebCore::FrameMac::setStatusBarText): Ditto.
              (WebCore::FrameMac::advanceToNextMisspelling): Use UChar instead of QChar.
              (WebCore::FrameMac::runJavaScriptAlert): Remove QChar cast, no longer needed.
              (WebCore::FrameMac::runJavaScriptConfirm): Ditto.
              (WebCore::FrameMac::runJavaScriptPrompt): Ditto.
              (WebCore::FrameMac::attributedString): Replaces calls of QChar::direction() with
              calls to u_charDirection and use ICU constants instead of QChar ones.
              (WebCore::FrameMac::markMisspellings): Remove QChar cast, no longer needed. Added a
              QChar cast so we can call isSpace -- slated to be removed later.
              (WebCore::FrameMac::shouldClose): Remove QChar cast, no longer needed.
      
              * bridge/mac/WebCoreFrameBridge.mm:
              (-[WebCoreFrameBridge selectedString]): Remove QChar cast, no longer needed.
              (-[WebCoreFrameBridge stringForRange:]): Ditto.
      
              * css/CSSGrammar.y: Update for field name change from string to characters.
              Use UChar instead of unsigned short. 
      
              * css/css_valueimpl.cpp:
              (WebCore::propertyID): Use UChar instead of unsigned short and get rid of call to
              unicode() function, no longer needed.
              (WebCore::quoteStringIfNeeded): Use strings when building up a resulting string,
              instead of depending on the feature where you can append characters to a string.
      
              * css/csshelper.cpp: (WebCore::parseURL): Remove calls to unicode() function and
              rewrite to obviate the need to call lower() just to check for a few constant
              character values. Also remove a now-unneeded type cast.
      
              * css/cssparser.h: Changed ParseString field to use UChar and to be named characters
              instead of string. Changed many other fields to be UChar instead of unsigned short.
              (WebCore::domString): Update for that.
              (WebCore::atomicString): Ditto.
              * css/cssparser.cpp:
              (WebCore::ParseString::lower): Use u_tolower instead of QChar::lower(). Also change
              name to characters from string.
              (WebCore::CSSParser::setupParser): Use UChar instead of unsigned short.
              (WebCore::CSSParser::lex): Ditto. Also update for characters name change.
              (WebCore::CSSParser::text): Use UChar instead of unsigned short. Also tweak some
              of the code a little bit to handle a couple of overflow cases better and reduce
              type casting.
              (WebCore::deprecatedString): Moved here so we don't have to include DeprecatedString.h
              in the header file.
      
              * css/cssstyleselector.cpp: (WebCore::checkPseudoState): Added a type cast since this
              code now bridges the world between modern code and QChar/DeprecatedString.
      
              * dom/CharacterData.cpp: (WebCore::CharacterData::CharacterData): Changed QChar to UChar.
      
              * dom/Document.h:
              * dom/Document.cpp:
              (WebCore::Document::isValidName): Updated for name change from unicode to characters.
              (WebCore::Document::parseQualifiedName): Ditto.
              (WebCore::Document::backslashAsCurrencySymbol): Changed return type to UChar.
      
              * dom/NamedMappedAttrMap.cpp:
              (WebCore::isClassWhitespace): Changed parameter to UChar from QChar.
              (WebCore::NamedMappedAttrMap::parseClassAttribute): Changed from UChar to QChar and
              from unicode to characters.
      
              * dom/Position.cpp:
              (WebCore::Position::leadingWhitespacePosition): Changed from QChar to UChar.
              (WebCore::Position::trailingWhitespacePosition): Ditto.
      
              * dom/StyledElement.cpp:
              (WebCore::isClassWhitespace): Changed from QChar to UChar.
              (WebCore::StyledElement::addCSSLength): Changed from QChar to UChar, and remove one
              case where latin1() was used and was not helpful.
              (WebCore::StyledElement::addCSSColor): Removed unicode() function call, no longer needed.
      
              * dom/dom2_eventsimpl.cpp: (WebCore::KeyboardEvent::charCode):
              * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::constrainValue):
              Removed unicode() function call, no longer needed.
      
              * dom/xml_tokenizer.h: Removed default parameter for xmlDocPtrForString so we don't have
              to include the DeprecatedString.h header in this file (and since no one uses it).
      
              * editing/HTMLInterchange.cpp: (convertHTMLTextToInterchangeFormat): Added a couple calls
              to the unicode() function to bridge the gap from QChar/DeprecatedString back to modern
              code.
      
              * editing/InsertTextCommand.cpp: Removed unused function.
      
              * editing/TextIterator.h: Changed from QChar to UChar.
              * editing/TextIterator.cpp:
              (WebCore::TextIterator::TextIterator): Initialize m_lastCharacter since it's now a UChar
              (which is just a typedef) rather than a QChar (which was a class with a default value of 0).
              (WebCore::TextIterator::handleTextNode): Updated to use characters() instead of unicode().
              (WebCore::TextIterator::handleTextBox): Removed unicode() call since it's now a UChar instead
              of a QChar.
              (WebCore::TextIterator::emitCharacter): More of the same.
              (WebCore::SimplifiedBackwardsTextIterator::handleTextNode): Ditto.
              (WebCore::SimplifiedBackwardsTextIterator::emitCharacter): Ditto.
              (WebCore::CharacterIterator::string): Ditto.
              (WebCore::WordAwareIterator::advance): Ditto.
              (WebCore::WordAwareIterator::length): Ditto.
              (WebCore::WordAwareIterator::characters): Ditto.
              (WebCore::CircularSearchBuffer::CircularSearchBuffer): Changed to use UChar
              instead of QChar, but also to use foldCase() instead of lower(), because
              we want case folding here, not lowercasing.
              (WebCore::CircularSearchBuffer::append): Ditto, with u_foldCase.
              (WebCore::CircularSearchBuffer::isMatch): Ditto.
              (WebCore::plainText): Added type cast since this bridges the gap from the modern stuff
              to QChar/DeprecatedString.
      
              * editing/VisiblePosition.h: Changed from QChar to UChar.
              * editing/VisiblePosition.cpp: (WebCore::VisiblePosition::characterAfter): Ditto.
      
              * editing/markup.cpp: (WebCore::escapeTextForMarkup): Changed code that used latin1()
              for no good reason to use unicode() instead.
       
              * html/HTMLTokenizer.h: Changed from QChar to UChar.
              * html/HTMLTokenizer.cpp: Changed from QChar to UChar, including removing the
              KHTML_ALLOC_QCHAR_VEC and KHTML_DELETE_QCHAR_VEC macros, which weren't being
              used consistently anyway.
              (WebCore::fixUpChar): More of the same.
              (WebCore::tagMatch): Ditto.
              (WebCore::HTMLTokenizer::reset): Ditto.
              (WebCore::HTMLTokenizer::begin): Ditto. Also corrected anomaly where buffer
              size was not the same as the size value -- this was only true in the initial
              allocation, so I believe there was no value in it.
              (WebCore::HTMLTokenizer::parseSpecial): Ditto. Also removed a use of latin1()
              that was unnnecessary extra work.
              (WebCore::HTMLTokenizer::scriptHandler): More of the same.
              (WebCore::HTMLTokenizer::parseComment): Ditto.
              (WebCore::HTMLTokenizer::parseServer): Ditto.
              (WebCore::HTMLTokenizer::parseProcessingInstruction): Ditto. Another unnecessary
              use of latin1() removed.
              (WebCore::HTMLTokenizer::parseText): Ditto.
              (WebCore::HTMLTokenizer::parseEntity): Ditto. Changed hex-parsing code to handle
              uppercase hex a more-efficient way than calling QChar::lower() on each character.
              Also changed surrogate code logic to fix a couple things -- reject character codes
              > 0x10FFFF as it should and use U16_LEAD and U16_TRAIL instead of writing our
              own versions of these.
              (WebCore::HTMLTokenizer::parseTag): Ditto.
              (WebCore::HTMLTokenizer::write): Ditto.
              (WebCore::HTMLTokenizer::end): Ditto.
              (WebCore::HTMLTokenizer::finish): Ditto.
              (WebCore::HTMLTokenizer::enlargeBuffer): Ditto.
              (WebCore::HTMLTokenizer::enlargeScriptBuffer): Ditto.
              (WebCore::HTMLTokenizer::notifyFinished):
              (WebCore::decodeNamedEntity): Ditto.
      
              * html/html_inlineimpl.cpp: (WebCore::parseFontSizeNumber): Changed from QChar
              to UChar, including using u_isdigit and u_charDigitValue instead of QChar::isNumber
              and QChar::digitValue. Also removed unneeded range checking that's already done
              by WebCore::String.
      
              * kwq/KWQLoader.mm: (KWQIsResponseURLEqualToURL): Rewrote to use Vector and UChar,
              removing all the type casts and making the whole function much shorter.
      
              * kwq/WebCoreAXObject.mm:
              (AXAttributedStringAppendText): Use UChar instead of QChar.
              (-[WebCoreAXObject doAXAttributedStringForTextMarkerRange:]): More of the same.
      
              * loader/Cache.h: Remove unnecessary default parameters, preventing the need to
              include the DeprecatedString.h header in this header. Cleaned up the header
              structure a bit, removing some obsolete and redundant comments and fixing typos.
              * loader/Cache.cpp: Removed unused preload functions.
      
              * page/Frame.h:
              * page/Frame.cpp:
              (WebCore::UserStyleSheetLoader::UserStyleSheetLoader): Added explicit arguments.
              This was the only caller anywhere that took advantage of the default parameter
              values in one of the Cache class request functions.
              (WebCore::Frame::backslashAsCurrencySymbol): Changed QChar to UChar.
      
              * platform/AtomicString.h: Changed QChar to UChar. Removed constructor that makes
              an AtomicString from a single character. Renamed unicode() function to characters().
              Renamed KHTML_ATOMICSTRING_HIDE_GLOBALS to ATOMICSTRING_HIDE_GLOBALS.
              * platform/AtomicString.cpp:
              (WebCore::CStringTranslator::equal): Changed QChar to UChar.
              (WebCore::operator==): Changed unicode() to characters().
              (WebCore::UCharBufferTranslator::hash): More of the same.
              (WebCore::UCharBufferTranslator::equal): Ditto.
              (WebCore::UCharBufferTranslator::translate): Ditto.
              (WebCore::AtomicString::add): Ditto.
              (WebCore::AtomicString::operator Identifier): Ditto.
              (WebCore::AtomicString::operator UString): Ditto.
              (WebCore::AtomicString::AtomicString): Moved here so we don't need DeprecatedString.h
              in the header.
              (WebCore::AtomicString::deprecatedString): Ditto.
      
              * platform/DeprecatedString.h: Removed QChar::Direction enum and all the DirXXX values,
              isDigit, isLetter, isNumber, isLetterOrNumber, isPunct, digitValue, and direction functions.
              (QChar::isSpace): Changed to use u_charDirection instead of QChar::direction.
      
              * platform/Font.h: (WebCore::Font::width): Changed QChar to UChar.
              * platform/Font.cpp: (WebCore::Font::width): Ditto.
      
              * platform/GraphicsContext.h:
              * platform/GraphicsContext.cpp:
              (WebCore::GraphicsContext::drawText): Changed QChar to UChar. Removed horizontalAlignment
              parameter from simplified string drawing entry point, since it's not used.
              (WebCore::GraphicsContext::drawHighlightForText): Changed QChar to UChar.
      
              * platform/PlatformString.h: Changed QChar to UChar. Removed constructor that makes
              a String from a single character. Renamed unicode() function to characters(). Added
              an append function and changed += operator to just call that. Added a foldCase() function.
              Removed the concatenation operators that add individual strings before or after.
              * platform/String.cpp:
              (WebCore::String::String): Changed QChar to UChar.
              (WebCore::String::append): Renamed from operator+= and removed the return value.
              (WebCore::String::operator[]): Changed QChar to UChar.
              (WebCore::String::foldCase): Added.
              (WebCore::String::percentage): More of the same.
              (WebCore::String::characters): Renamed from unicode().
              (WebCore::String::deprecatedString): More of the same.
              (WebCore::String::sprintf): Fixed mistakes in the comments.
              (WebCore::String::isEmpty): Tweaked a bit.
              (WebCore::operator==): More of the same.
              (WebCore::String::operator Identifier): Ditto.
              (WebCore::String::operator UString): Ditto.
      
              * platform/SegmentedString.h: Changed from QChar to UChar. Had to initialize
              data members that are now UChar.
              * platform/SegmentedString.cpp:
              (WebCore::SegmentedString::length): Updated for change from QChar to UChar.
              (WebCore::SegmentedString::append): Ditto.
              (WebCore::SegmentedString::prepend): Ditto.
              (WebCore::SegmentedString::toString): Ditto.
      
              * platform/StringHash.h: Updated to use UChar instead of QChar and for name changes.
              Also changed to use case folding intead of lowercasing for case insensitive hashing.
      
              * platform/StringImpl.h:
              * platform/StringImpl.cpp:
              (WebCore::newUCharVector): Changed to UChar from QChar.
              (WebCore::deleteUCharVector): Ditto.
              (WebCore::StringImpl::StringImpl): Ditto.
              (WebCore::StringImpl::init): Ditto. Also renamed from initWithChar and initWithQChar.
              (WebCore::StringImpl::~StringImpl): Ditto.
              (WebCore::StringImpl::append): Ditto.
              (WebCore::StringImpl::insert): Ditto.
              (WebCore::StringImpl::truncate): Ditto.
              (WebCore::StringImpl::remove): Ditto.
              (WebCore::StringImpl::split): Ditto.
              (WebCore::StringImpl::containsOnlyWhitespace): Ditto. Also added comment because this
              function seems a little broken.
              (WebCore::parseLength): More of the same.
              (WebCore::StringImpl::toCoordsArray): Ditto.
              (WebCore::StringImpl::toLengthArray): Ditto.
              (WebCore::StringImpl::isLower): Ditto.
              (WebCore::StringImpl::lower): Rewrote to use u_strToLower.
              (WebCore::StringImpl::upper): Rewrote to use u_strToUpper.
              (WebCore::StringImpl::foldCase): Added. Uses u_strFoldCase.
              (WebCore::getWordBreakIterator): Changed to use U_FAILURE instead of accepting only
              U_ZERO_ERROR as a success code.
              (WebCore::StringImpl::capitalize): More QChar to UChar changes.
              (WebCore::StringImpl::toInt): Ditto.
              (WebCore::equal): Changed from QChar to UChar and was careful to preserve the old
              semantics where "high ASCII" is treated as U+0080-U+00FF even though I don't know
              if this feature is important.
              (WebCore::equalIgnoringCase): Ditto, but used case folding instead of lowercasing
              by using the u_foldCase and u_memcasecmp functions. Also renamed from
              equalCaseInsensitive for more-consistent naming.
              (WebCore::StringImpl::find): Ditto. Use case folding for the case insensitive branch.
              (WebCore::StringImpl::replace): More of the same.
              (WebCore::StringImpl::computeHash): Ditto.
              (WebCore::StringImpl::ascii): Ditto.
      
              * platform/TextBoundaries.h: Changed from QChar to UChar.
              * platform/mac/TextBoundaries.mm:
              (WebCore::findWordBoundary): Made the change to UChar and removed some type casts.
              (WebCore::findNextWordFromIndex): Ditto.
              (WebCore::findSentenceBoundary): Ditto.
              (WebCore::findNextSentenceFromIndex): Ditto.
      
              * platform/TextEncoding.h:
              * platform/TextEncoding.cpp:
              (WebCore::TextEncoding::backslashAsCurrencySymbol): Changed from QChar to UChar.
              (WebCore::TextEncoding::fromUnicode): More of the same.
              * platform/mac/TextEncodingMac.cpp: (WebCore::TextEncoding::fromUnicode): More
              of the same.
      
              * platform/mac/FontFamilyMac.mm: (WebCore::FontFamily::getNSFamily): Removed a
              now-unneeded type cast.
      
              * platform/mac/FontMac.mm:
              (WebCore::Font::selectionRectForText):
              (WebCore::Font::drawText):
              (WebCore::Font::drawHighlightForText):
              (WebCore::Font::floatWidth):
              (WebCore::Font::checkSelectionPoint):
              Changed QChar to UChar and removed some now-unneeded type casts.
      
              * editing/RebalanceWhitespaceCommand.cpp: (WebCore::isWhitespace):
              * editing/ReplaceSelectionCommand.cpp: (WebCore::ReplaceSelectionCommand::doApply):
              * editing/visible_units.cpp:
              (WebCore::previousBoundary):
              (WebCore::nextBoundary):
              (WebCore::startWordBoundary):
              (WebCore::endWordBoundary):
              (WebCore::previousWordPositionBoundary):
              (WebCore::nextWordPositionBoundary):
              (WebCore::startSentenceBoundary):
              (WebCore::endSentenceBoundary):
              (WebCore::previousSentencePositionBoundary):
              (WebCore::nextSentencePositionBoundary):
              (WebCore::startOfParagraph):
              (WebCore::endOfParagraph):
              * html/HTMLParser.cpp: (WebCore::HTMLParser::handleError):
              * rendering/InlineTextBox.cpp:
              (WebCore::InlineTextBox::selectionRect):
              (WebCore::InlineTextBox::paint):
              (WebCore::InlineTextBox::paintSelection):
              (WebCore::InlineTextBox::paintMarkedTextBackground):
              (WebCore::InlineTextBox::paintTextMatchMarker):
              (WebCore::InlineTextBox::offsetForPosition):
              (WebCore::InlineTextBox::positionForOffset):
              * rendering/RenderBlock.cpp:
              (WebCore::stripTrailingSpace):
              (WebCore::RenderBlock::updateFirstLetter):
              * rendering/RenderFlexibleBox.cpp:
              (WebCore::RenderFlexibleBox::layoutVerticalBox):
              * rendering/RenderObject.h:
              * rendering/RenderObject.cpp:
              (WebCore::RenderObject::backslashAsCurrencySymbol):
              * rendering/RenderTreeAsText.cpp: (quoteAndEscapeNonPrintables):
              * rendering/break_lines.cpp: (WebCore::nextBreakablePosition):
              * rendering/break_lines.h: (WebCore::isBreakable):
              * rendering/render_style.h: (WebCore::RenderStyle::isCollapsibleWhiteSpace):
              * xml/XSLStyleSheet.cpp: (WebCore::XSLStyleSheet::parseString):
              * xml/xmlhttprequest.cpp:
              (WebCore::getMIMEType):
              (WebCore::getCharset):
              Changed QChar to UChar.
      
              * rendering/RenderImage.cpp:
              (WebCore::RenderImage::imageChanged): Changed QChar to UChar.
              (WebCore::RenderImage::paint): Changed callers of drawText to no-longer pass 0
              for the horizontal alignment, since I removed that parameters.
      
              * rendering/RenderText.h: Changed QChar to UChar.
              * rendering/RenderText.cpp:
              (WebCore::characterBreakIterator): Update for name change.
              (WebCore::RenderText::RenderText): Ditto.
              (WebCore::RenderText::allAscii): Remove uneeded unicode() and allow the value
              U+007F to count as ASCII.
              (WebCore::RenderText::cacheWidths): Changed QChar to UChar.
              (WebCore::RenderText::widthFromCache): Changed code that deals with direction to
              use the ICU direction calls.
              (WebCore::RenderText::trimmedMinMaxWidth): Changed QChar to UChar.
              (WebCore::RenderText::calcMinMaxWidth): Ditto.
              (WebCore::RenderText::containsOnlyWhitespace): Ditto.
              (WebCore::RenderText::setText): Ditto.
              (WebCore::RenderText::width): Ditto.
      
              * rendering/RenderTextField.cpp:
              (WebCore::RenderTextField::updateFromElement): Removed unneeded QChar cast.
              (WebCore::RenderTextField::calcMinMaxWidth): Changed from QChar to UChar.
      
              * rendering/bidi.h:
              * rendering/bidi.cpp:
              (WebCore::BidiIterator::BidiIterator):
              (WebCore::BidiState::BidiState):
              (WebCore::BidiContext::BidiContext):
              (WebCore::bidiNext):
              (WebCore::bidiFirst):
              (WebCore::BidiIterator::current):
              (WebCore::BidiIterator::direction):
              (WebCore::addRun):
              (WebCore::checkMidpoints):
              (WebCore::appendRun):
              (WebCore::embed):
              (WebCore::RenderBlock::tabWidth):
              (WebCore::RenderBlock::computeHorizontalPositionsForLine):
              (WebCore::RenderBlock::bidiReorderLine):
              (WebCore::RenderBlock::layoutInlineChildren):
              (WebCore::skipNonBreakingSpace):
              (WebCore::RenderBlock::skipWhitespace):
              (WebCore::RenderBlock::findNextLineBreak):
              (WebCore::RenderBlock::checkLinesForTextOverflow):
              Changed from QChar to UChar and all direction from QChar constants to the
              ones from ICU.
      
              * rendering/render_form.cpp:
              (WebCore::RenderLineEdit::updateFromElement):
              (WebCore::RenderSelect::updateFromElement):
              (WebCore::RenderTextArea::updateFromElement):
              (WebCore::RenderTextArea::text):
              (WebCore::RenderTextArea::textWithHardLineBreaks):
              Got rid of now-unneeded QChar type casts.
      
              * rendering/render_line.cpp:
              (WebCore::InlineFlowBox::placeBoxesHorizontally): Updated for change from QChar
              to UChar.
              (WebCore::EllipsisBox::paint): Updated for unicode() -> characters() name change.
      
              * rendering/render_list.cpp:
              (WebCore::toRoman): Updated from QChar to UChar.
              (WebCore::toLetterString): Ditto.
              (WebCore::toHebrew): More of the same, also cleaned up the logic a bit.
              (WebCore::RenderListMarker::paint): Removed the alignment parameters from the
              various functions. Also removed all reliance on the width-measuring functions
              that take a string.
              (WebCore::RenderListMarker::calcMinMaxWidth): More of the same.
              (WebCore::RenderListMarker::getRelativeMarkerRect): Ditto.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@14273 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7ab3109f
    • mjs's avatar
      JavaScriptCore: · bb863518
      mjs authored
              Rubber stamped by Anders.
              
              - renamed kxmlcore to wtf
              
              kxmlcore --> wtf
              KXMLCore --> WTF
              WKC --> WTF
      
              * JavaScriptCore.xcodeproj/project.pbxproj:
              * bindings/c/c_instance.cpp:
              * bindings/objc/WebScriptObject.mm:
              * kjs/JSImmediate.h:
              * kjs/Parser.cpp:
              * kjs/Parser.h:
              * kjs/array_object.cpp:
              * kjs/collector.cpp:
              (KJS::Collector::registerThread):
              * kjs/collector.h:
              * kjs/config.h:
              * kjs/function.cpp:
              (KJS::isStrWhiteSpace):
              * kjs/function.h:
              * kjs/identifier.cpp:
              * kjs/internal.cpp:
              * kjs/internal.h:
              * kjs/lexer.cpp:
              (Lexer::shift):
              (Lexer::isWhiteSpace):
              (Lexer::isIdentStart):
              (Lexer::isIdentPart):
              * kjs/lookup.cpp:
              * kjs/nodes.cpp:
              * kjs/nodes.h:
              * kjs/number_object.cpp:
              * kjs/object.h:
              * kjs/property_map.cpp:
              * kjs/property_map.h:
              * kjs/string_object.cpp:
              (StringProtoFunc::callAsFunction):
              * kjs/testkjs.cpp:
              (testIsInteger):
              * kjs/ustring.cpp:
              * kjs/ustring.h:
              * kxmlcore: Removed.
              * kxmlcore/AlwaysInline.h: Removed.
              * kxmlcore/Assertions.cpp: Removed.
              * kxmlcore/Assertions.h: Removed.
              * kxmlcore/FastMalloc.cpp: Removed.
              * kxmlcore/FastMalloc.h: Removed.
              * kxmlcore/FastMallocInternal.h: Removed.
              * kxmlcore/Forward.h: Removed.
              * kxmlcore/HashCountedSet.h: Removed.
              * kxmlcore/HashFunctions.h: Removed.
              * kxmlcore/HashMap.h: Removed.
              * kxmlcore/HashSet.h: Removed.
              * kxmlcore/HashTable.cpp: Removed.
              * kxmlcore/HashTable.h: Removed.
              * kxmlcore/HashTraits.h: Removed.
              * kxmlcore/ListRefPtr.h: Removed.
              * kxmlcore/Noncopyable.h: Removed.
              * kxmlcore/OwnArrayPtr.h: Removed.
              * kxmlcore/OwnPtr.h: Removed.
              * kxmlcore/PassRefPtr.h: Removed.
              * kxmlcore/Platform.h: Removed.
              * kxmlcore/RefPtr.h: Removed.
              * kxmlcore/TCPageMap.h: Removed.
              * kxmlcore/TCSpinLock.h: Removed.
              * kxmlcore/TCSystemAlloc.cpp: Removed.
              * kxmlcore/TCSystemAlloc.h: Removed.
              * kxmlcore/UnusedParam.h: Removed.
              * kxmlcore/Vector.h: Removed.
              * kxmlcore/VectorTraits.h: Removed.
              * kxmlcore/unicode: Removed.
              * kxmlcore/unicode/Unicode.h: Removed.
              * kxmlcore/unicode/UnicodeCategory.h: Removed.
              * kxmlcore/unicode/icu: Removed.
              * kxmlcore/unicode/icu/UnicodeIcu.h: Removed.
              * kxmlcore/unicode/posix: Removed.
              * kxmlcore/unicode/qt3: Removed.
              * kxmlcore/unicode/qt4: Removed.
              * kxmlcore/unicode/qt4/UnicodeQt4.h: Removed.
              * pcre/pcre_get.c:
              * wtf: Added.
              * wtf/Assertions.cpp:
              * wtf/Assertions.h:
              * wtf/FastMalloc.cpp:
              (WTF::TCMalloc_ThreadCache::Scavenge):
              (WTF::do_malloc):
              (WTF::do_free):
              (WTF::TCMallocGuard::TCMallocGuard):
              (WTF::malloc):
              (WTF::free):
              (WTF::calloc):
              (WTF::cfree):
              (WTF::realloc):
              * wtf/FastMalloc.h:
              * wtf/FastMallocInternal.h:
              * wtf/Forward.h:
              * wtf/HashCountedSet.h:
              * wtf/HashFunctions.h:
              * wtf/HashMap.h:
              * wtf/HashSet.h:
              * wtf/HashTable.cpp:
              * wtf/HashTable.h:
              * wtf/HashTraits.h:
              * wtf/ListRefPtr.h:
              * wtf/Noncopyable.h:
              * wtf/OwnArrayPtr.h:
              * wtf/OwnPtr.h:
              * wtf/PassRefPtr.h:
              * wtf/RefPtr.h:
              * wtf/TCSystemAlloc.cpp:
              (TCMalloc_SystemAlloc):
              * wtf/Vector.h:
              * wtf/VectorTraits.h:
              * wtf/unicode/UnicodeCategory.h:
              * wtf/unicode/icu/UnicodeIcu.h:
      
      JavaScriptGlue:
      
              Rubber stamped by Anders.
              
              - renamed kxmlcore to wtf
              
              kxmlcore --> wtf
              KXMLCore --> WTF
              WKC --> WTF
      
              * config.h:
              * kxmlcore: Removed.
              * kxmlcore/AlwaysInline.h: Removed.
              * kxmlcore/Assertions.h: Removed.
              * kxmlcore/FastMalloc.h: Removed.
              * kxmlcore/Forward.h: Removed.
              * kxmlcore/HashCountedSet.h: Removed.
              * kxmlcore/HashSet.h: Removed.
              * kxmlcore/Noncopyable.h: Removed.
              * kxmlcore/OwnArrayPtr.h: Removed.
              * kxmlcore/OwnPtr.h: Removed.
              * kxmlcore/PassRefPtr.h: Removed.
              * kxmlcore/Platform.h: Removed.
              * kxmlcore/RefPtr.h: Removed.
              * kxmlcore/Vector.h: Removed.
              * wtf: Added.
      
      WebCore:
      
              Rubber stamped by Anders.
              
              - renamed kxmlcore to wtf
              
              kxmlcore --> wtf
              KXMLCore --> WTF
              WKC --> WTF
      
              * ForwardingHeaders/kxmlcore: Removed.
              * ForwardingHeaders/kxmlcore/AlwaysInline.h: Removed.
              * ForwardingHeaders/kxmlcore/Assertions.h: Removed.
              * ForwardingHeaders/kxmlcore/FastMalloc.h: Removed.
              * ForwardingHeaders/kxmlcore/Forward.h: Removed.
              * ForwardingHeaders/kxmlcore/HashCountedSet.h: Removed.
              * ForwardingHeaders/kxmlcore/HashMap.h: Removed.
              * ForwardingHeaders/kxmlcore/HashSet.h: Removed.
              * ForwardingHeaders/kxmlcore/HashTraits.h: Removed.
              * ForwardingHeaders/kxmlcore/Noncopyable.h: Removed.
              * ForwardingHeaders/kxmlcore/OwnArrayPtr.h: Removed.
              * ForwardingHeaders/kxmlcore/OwnPtr.h: Removed.
              * ForwardingHeaders/kxmlcore/PassRefPtr.h: Removed.
              * ForwardingHeaders/kxmlcore/Platform.h: Removed.
              * ForwardingHeaders/kxmlcore/RefPtr.h: Removed.
              * ForwardingHeaders/kxmlcore/Vector.h: Removed.
              * ForwardingHeaders/wtf: Added.
              * bindings/js/JSHTMLElementWrapperFactory.h:
              * bindings/js/kjs_binding.cpp:
              * bindings/js/kjs_window.h:
              * bindings/objc/DOMImplementationFront.h:
              * bridge/JavaAppletWidget.h:
              * bridge/mac/WebCoreFrameNamespaces.mm:
              * bridge/mac/WebCorePageBridge.mm:
              (initializeLogChannel):
              * bridge/mac/WebCoreStringTruncator.mm:
              * bridge/mac/WebCoreViewFactory.m:
              * config.h:
              * css/css_base.h:
              * css/css_valueimpl.h:
              * css/csshelper.cpp:
              * css/cssparser.h:
              * dom/DOMImplementation.h:
              * dom/Document.h:
              * dom/NamedNodeMap.h:
              * dom/Node.h:
              * dom/NodeList.h:
              * dom/QualifiedName.cpp:
              * dom/Range.h:
              * dom/StyledElement.cpp:
              * dom/dom2_traversalimpl.h:
              * dom/xml_tokenizer.h:
              * editing/RebalanceWhitespaceCommand.cpp:
              * editing/RemoveCSSPropertyCommand.cpp:
              * editing/RemoveNodeAttributeCommand.cpp:
              * editing/RemoveNodeCommand.cpp:
              * editing/RemoveNodePreservingChildrenCommand.cpp:
              * editing/ReplaceSelectionCommand.h:
              * editing/Selection.cpp:
              * editing/SetNodeAttributeCommand.cpp:
              * editing/SplitElementCommand.cpp:
              * editing/SplitTextNodeCommand.cpp:
              * editing/SplitTextNodeContainingElementCommand.cpp:
              * editing/TextIterator.h:
              * editing/htmlediting.h:
              * editing/markup.h:
              * html/CanvasGradient.h:
              * html/CanvasRenderingContext2D.h:
              * html/CanvasStyle.cpp:
              * html/HTMLCollection.h:
              * html/HTMLElementFactory.h:
              * kcanvas/KCanvasFilters.cpp:
              * kcanvas/KCanvasPath.h:
              * kcanvas/RenderPath.cpp:
              * kcanvas/RenderSVGImage.cpp:
              * kcanvas/RenderSVGText.cpp:
              * kcanvas/device/quartz/KCanvasItemQuartz.mm:
              * kcanvas/device/quartz/KRenderingPaintServerGradientQuartz.mm:
              * kcanvas/device/quartz/QuartzSupport.mm:
              * ksvg2/misc/KSVGTimeScheduler.h:
              * ksvg2/misc/SVGDocumentExtensions.h:
              * ksvg2/scripts/make_names.pl:
              * ksvg2/svg/SVGDOMImplementation.cpp:
              * ksvg2/svg/SVGExternalResourcesRequired.h:
              * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.cpp:
              * ksvg2/svg/SVGForeignObjectElement.cpp:
              * ksvg2/svg/SVGImageElement.cpp:
              * ksvg2/svg/SVGMaskElement.cpp:
              * ksvg2/svg/SVGStyledElement.cpp:
              * ksvg2/svg/SVGTests.h:
              * ksvg2/svg/SVGTransform.h:
              * ksvg2/svg/SVGTransformable.cpp:
              * kwq/AccessibilityObjectCache.h:
              * kwq/KWQCString.cpp:
              * kwq/KWQFormData.mm:
              * kwq/KWQListBox.mm:
              * kwq/KWQResourceLoader.mm:
              * kwq/KWQTextEdit.mm:
              * loader/Cache.h:
              * loader/CachedObject.h:
              * loader/CachedObjectClientWalker.h:
              * loader/Decoder.h:
              * loader/DocLoader.h:
              * loader/loader.cpp:
              * loader/loader.h:
              * page/DOMWindow.h:
              * page/Frame.h:
              * page/FramePrivate.h:
              * page/FrameTree.cpp:
              * page/Page.cpp:
              * page/Page.h:
              * page/Plugin.h:
              * platform/Arena.cpp:
              * platform/ArrayImpl.h:
              * platform/AtomicString.cpp:
              * platform/CharsetNames.cpp:
              * platform/Color.cpp:
              * platform/DeprecatedPtrListImpl.cpp:
              * platform/DeprecatedValueListImpl.h:
              * platform/FontFallbackList.h:
              * platform/GraphicsContext.h:
              * platform/GraphicsTypes.cpp:
              * platform/Image.h:
              * platform/KURL.cpp:
              * platform/Logging.cpp:
              * platform/Logging.h:
              * platform/PlatformString.h:
              * platform/PlugInInfoStore.h:
              * platform/StreamingTextDecoder.cpp:
              * platform/StreamingTextDecoder.h:
              * platform/String.cpp:
              * platform/StringHash.h:
              * platform/StringImpl.cpp:
              * platform/StringImpl.h:
              * platform/TextEncoding.cpp:
              * platform/Timer.cpp:
              * platform/Timer.h:
              * platform/TransferJob.h:
              * platform/TransferJobInternal.h:
              * platform/mac/BlockExceptions.mm:
              * platform/mac/ColorMac.mm:
              * platform/mac/FontData.mm:
              * platform/mac/KURLMac.mm:
              * platform/mac/QStringMac.mm:
              * platform/mac/SharedTimerMac.cpp:
              * platform/mac/TextEncodingMac.cpp:
              * platform/mac/WebCoreImageRendererFactory.m:
              * platform/mac/WebCoreKeyGenerator.m:
              * platform/mac/WebCoreTextArea.mm:
              * platform/mac/WebCoreTextField.mm:
              * platform/mac/WebTextRendererFactory.h:
              * platform/mac/WebTextRendererFactory.mm:
              * platform/win/TemporaryLinkStubs.cpp:
              (JavaAppletWidget::JavaAppletWidget):
              * rendering/InlineTextBox.cpp:
              * rendering/RenderText.cpp:
              * rendering/RenderTreeAsText.cpp:
              * rendering/bidi.cpp:
              * xml/XSLTProcessor.h:
              * xpath/impl/XPathExpressionNode.h:
              * xpath/impl/XPathParser.h:
              * xpath/impl/XPathPath.h:
              * xpath/impl/XPathUtil.h:
      
      WebKit:
      
              Rubber stamped by Anders.
              
              - renamed kxmlcore to wtf
              
              kxmlcore --> wtf
              KXMLCore --> WTF
              WKC --> WTF
      
              * Misc/WebKitLogging.h:
              * Misc/WebKitLogging.m:
              (initializeLogChannel):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@14256 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      bb863518
  37. 12 Apr, 2006 2 commits
    • harrison's avatar
      Reviewed by Darin. · 81fe3881
      harrison authored
              <rdar://problem/4386640> AX: AXPreviousSentenceStartTextMarkerForTextMarker does not respect paragraph boundary
              <rdar://problem/4414575> AX: Dictionary popup cannot find some words on Dictionary.app
      
              AXPreviousSentenceStartTextMarkerForTextMarker failed to stop at the beginning a block because
              SimplifiedBackwardsTextIterator::handleNonTextNode() emitted a space when exiting the block.
              Fixed by emitting a newline instead.
              
              Word boundary failed to stop at the beginning of a block because no character at all was emitted
              when leaving the block, because the exitNode was checking specific html tags to decide whether the
              node is block, but the node was xml.  Fixed by using the node's renderer, if present.
              
              (see related changes in WebKit)
              
              Tests added:
              * editing/selection/extend-by-sentence-001.html: Added.
              * fast/dom/inner-text-001.html: Added.
              
              * bridge/mac/WebCoreFrameBridge.h:
              * bridge/mac/WebCoreFrameBridge.mm:
              (-[WebCoreFrameBridge alterCurrentSelection:direction:granularity:]):
              Add sentence navigation/selection.
              
              * editing/Selection.cpp:
              (WebCore::Selection::validate):
              Add sentence navigation/selection.
      
              * editing/SelectionController.cpp:
              (WebCore::SelectionController::modifyExtendingRightForward):
              (WebCore::SelectionController::modifyMovingRightForward):
              (WebCore::SelectionController::modifyExtendingLeftBackward):
              (WebCore::SelectionController::modifyMovingLeftBackward):
              (WebCore::SelectionController::modify):
              Add sentence navigation/selection.
      
              * editing/TextGranularity.h:
              (WebCore::):
              Add SentenceGranularity and SentenceBoundary.
      
              * editing/TextIterator.cpp:
              (WebCore::isTableCell):
              (WebCore::shouldEmitTabBeforeNode):
              (WebCore::shouldEmitNewlineForNode):
              (WebCore::shouldEmitNewlinesBeforeAndAfterNode):
              (WebCore::shouldEmitExtraNewlineForNode):
              New utility functions that prefer renderers over html tag names.
      
              (WebCore::TextIterator::handleNonTextNode):
              (WebCore::TextIterator::exitNode):
              (WebCore::SimplifiedBackwardsTextIterator::advance):
              Use new utility functions.
              
              (WebCore::SimplifiedBackwardsTextIterator::handleNonTextNode):
              Use new utility functions.  Also emit linefeed instead of space,
              so sentence parsing works across block boundaries.
              
              (WebCore::SimplifiedBackwardsTextIterator::exitNode):
              Use new utility functions.
      
              (WebCore::SimplifiedBackwardsTextIterator::emitNewline):
              Renamed from emitNewlineForBROrText because it is not always for BR or text.
              
              * editing/TextIterator.h:
              Renamed emitNewlineForBROrText to emitNewline.
              
              * editing/visible_units.cpp:
              * editing/visible_units.h:
              (WebCore::previousBoundary):
              (WebCore::nextBoundary):
              (WebCore::previousSentencePosition):
              (WebCore::nextSentencePosition):
              Add sentence navigation/selection.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@13849 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      81fe3881
    • darin's avatar
      - another attempt to get things building · 3f22f398
      darin authored
              * bindings/js/kjs_proxy.cpp: Add "kjs_events.h" include, needed when not
              building SVG (so for Windows too).
              * editing/TextIterator.h: Add back include of Vector.h.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@13834 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3f22f398
  38. 11 Apr, 2006 1 commit
    • darin's avatar
      JavaScriptCore: · 36d1136a
      darin authored
              Rubber-stamped by John Sullivan.
      
              - switched from a shell script to a makefile for generated files
              - removed lots of unneeded includes
              - added new Forward.h and HashForward.h headers that allow compiling with
                fewer unneeded templates
      
              * DerivedSources.make: Added.
              * generate-derived-sources: Removed.
              * JavaScriptCore.xcodeproj/project.pbxproj: Added new files, changed to use
              DerivedSources.make.
      
              * kxmlcore/Forward.h: Added.
              * kxmlcore/HashForward.h: Added.
      
              * kxmlcore/HashCountedSet.h: Include HashForward for default args.
              * kxmlcore/HashMap.h: Ditto.
              * kxmlcore/HashSet.h: Ditto.
      
              * kjs/object.h:
              * kjs/object.cpp:
              Moved KJS_MAX_STACK into the .cpp file.
      
              * bindings/NP_jsobject.cpp:
              * bindings/c/c_instance.h:
              * bindings/jni/jni_class.h:
              * bindings/jni/jni_runtime.h:
              * bindings/jni/jni_utility.h:
              * bindings/objc/WebScriptObject.mm:
              * bindings/objc/WebScriptObjectPrivate.h:
              * bindings/objc/objc_class.h:
              * bindings/objc/objc_class.mm:
              * bindings/objc/objc_instance.h:
              * bindings/objc/objc_instance.mm:
              * bindings/objc/objc_runtime.mm:
              * bindings/objc/objc_utility.mm:
              * bindings/runtime.h:
              * bindings/runtime_array.cpp:
              * bindings/runtime_array.h:
              * bindings/runtime_method.cpp:
              * bindings/runtime_method.h:
              * bindings/runtime_object.cpp:
              * bindings/runtime_root.h:
              * kjs/JSImmediate.cpp:
              * kjs/Parser.h:
              * kjs/array_object.cpp:
              * kjs/array_object.h:
              * kjs/bool_object.cpp:
              * kjs/bool_object.h:
              * kjs/collector.h:
              * kjs/context.h:
              * kjs/debugger.cpp:
              * kjs/error_object.h:
              * kjs/function_object.h:
              * kjs/internal.h:
              * kjs/lexer.cpp:
              * kjs/math_object.cpp:
              * kjs/math_object.h:
              * kjs/nodes.cpp:
              * kjs/nodes.h:
              * kjs/number_object.cpp:
              * kjs/number_object.h:
              * kjs/object_object.cpp:
              * kjs/operations.cpp:
              * kjs/protected_reference.h:
              * kjs/reference.h:
              * kjs/reference_list.h:
              * kjs/regexp_object.h:
              * kjs/string_object.cpp:
              * kjs/string_object.h:
              * kjs/testkjs.cpp:
              * kjs/value.cpp:
              * kjs/value.h:
              * kxmlcore/HashTable.h:
              * kxmlcore/ListRefPtr.h:
              * kxmlcore/TCPageMap.h:
              * kxmlcore/Vector.h:
              Removed unneeded header includes.
      
      JavaScriptGlue:
      
              Rubber-stamped by John Sullivan.
      
              - added forwarding headers for the new Forward.h and HashForward.h files
      
              * kxmlcore/Forward.h: Added.
              * kxmlcore/HashForward.h: Added.
      
      WebCore:
      
              Rubber-stamped by John Sullivan (except for pbxproj change).
      
              - updated to use the new Forward.h and HashForward.h headers
              - moved the showTree debugging functions out of the WebCore
                namespace so they are easier to call from gdb, and renamed
                the showTree member functions so they don't get in the way;
                now you can do "call showTree(x)" in gdb and it just works
              - removed a lot of unneeded includes
      
              * WebCore.xcodeproj/project.pbxproj: Fixed a lot of paths that
              were not relative to the enclosing group.
      
              * ForwardingHeaders/kxmlcore/Forward.h: Added.
              * ForwardingHeaders/kxmlcore/HashForward.h: Added.
              * bindings/js/JSCanvasRenderingContext2DBase.cpp:
              * bindings/js/JSXMLHttpRequest.cpp:
              * bindings/js/JSXMLHttpRequest.h:
              * bindings/js/JSXSLTProcessor.h:
              * bindings/js/kjs_binding.h:
              * bindings/js/kjs_dom.cpp:
              * bindings/js/kjs_dom.h:
              * bindings/js/kjs_events.cpp:
              * bindings/js/kjs_events.h:
              * bindings/js/kjs_html.cpp:
              * bindings/js/kjs_navigator.cpp:
              * bindings/js/kjs_navigator.h:
              * bindings/js/kjs_proxy.cpp:
              * bindings/js/kjs_traversal.h:
              * bindings/js/kjs_window.cpp:
              * bindings/js/kjs_window.h:
              * bindings/objc/DOM.mm:
              * bindings/objc/DOMCSS.mm:
              * bindings/objc/DOMCore.h:
              * bindings/objc/DOMEvents.mm:
              * bindings/objc/DOMHTML.mm:
              * bindings/objc/DOMImplementationFront.h:
              * bindings/objc/DOMInternal.mm:
              * bindings/objc/DOMUtility.mm:
              * bindings/objc/DOMViews.mm:
              * bridge/BrowserExtension.h:
              * bridge/mac/BrowserExtensionMac.mm:
              * bridge/mac/FrameMac.h:
              * bridge/mac/FrameMac.mm:
              * bridge/mac/WebCoreFrameBridge.mm:
              * bridge/mac/WebCoreFrameNamespaces.mm:
              * bridge/mac/WebCoreJavaScript.mm:
              * bridge/win/PageWin.cpp:
              * css/CSSComputedStyleDeclaration.cpp:
              * css/css_base.h:
              * css/css_ruleimpl.h:
              * css/css_valueimpl.cpp:
              * css/cssparser.cpp:
              * css/cssparser.h:
              * css/cssstyleselector.cpp:
              * css/cssstyleselector.h:
              * dom/AbstractView.h:
              * dom/AtomicStringList.h:
              * dom/Attribute.cpp:
              * dom/Attribute.h:
              * dom/Comment.cpp:
              * dom/ContainerNode.cpp:
              * dom/DOMImplementation.cpp:
              * dom/DOMImplementation.h:
              * dom/Document.cpp:
              * dom/Document.h:
              * dom/Element.h:
              * dom/EventTargetNode.cpp:
              (WebCore::EventTargetNode::dump):
              (WebCore::forbidEventDispatch):
              (WebCore::allowEventDispatch):
              (WebCore::eventDispatchForbidden):
              * dom/EventTargetNode.h:
              (WebCore::EventTargetNode::postDispatchEventHandler):
              * dom/NamedAttrMap.h:
              * dom/Node.cpp:
              (WebCore::Node::showNode):
              (WebCore::Node::showTree):
              (WebCore::Node::showTreeAndMark):
              (showTree):
              * dom/Node.h:
              * dom/NodeList.cpp:
              * dom/NodeList.h:
              * dom/Position.cpp:
              (showTree):
              * dom/Position.h:
              * dom/Range.cpp:
              * dom/Range.h:
              * dom/StyledElement.cpp:
              * dom/StyledElement.h:
              * dom/dom2_eventsimpl.cpp:
              * dom/dom2_eventsimpl.h:
              * dom/dom2_traversalimpl.h:
              * dom/dom_xmlimpl.cpp:
              * dom/xml_tokenizer.cpp:
              * dom/xml_tokenizer.h:
              * editing/AppendNodeCommand.cpp:
              * editing/ApplyStyleCommand.cpp:
              * editing/ApplyStyleCommand.h:
              * editing/BreakBlockquoteCommand.cpp:
              * editing/CompositeEditCommand.cpp:
              * editing/CreateLinkCommand.cpp:
              * editing/DeleteFromTextNodeCommand.cpp:
              * editing/DeleteFromTextNodeCommand.h:
              * editing/DeleteSelectionCommand.cpp:
              * editing/EditCommand.cpp:
              * editing/EditCommand.h:
              * editing/HTMLInterchange.cpp:
              * editing/InsertIntoTextNodeCommand.cpp:
              * editing/InsertIntoTextNodeCommand.h:
              * editing/InsertLineBreakCommand.cpp:
              * editing/InsertNodeBeforeCommand.cpp:
              * editing/InsertParagraphSeparatorCommand.cpp:
              * editing/InsertTextCommand.cpp:
              * editing/JSEditor.cpp:
              * editing/JoinTextNodesCommand.cpp:
              * editing/MergeIdenticalElementsCommand.cpp:
              * editing/ModifySelectionListLevelCommand.cpp:
              * editing/MoveSelectionCommand.cpp:
              * editing/RebalanceWhitespaceCommand.h:
              * editing/RemoveCSSPropertyCommand.h:
              * editing/ReplaceSelectionCommand.cpp:
              * editing/ReplaceSelectionCommand.h:
              * editing/Selection.cpp:
              (WebCore::Selection::formatForDebugger):
              (WebCore::Selection::showTree):
              (showTree):
              * editing/Selection.h:
              * editing/SelectionController.cpp:
              (WebCore::SelectionController::formatForDebugger):
              (WebCore::SelectionController::showTree):
              (showTree):
              * editing/SelectionController.h:
              * editing/TextIterator.cpp:
              * editing/TextIterator.h:
              * editing/TypingCommand.cpp:
              * editing/TypingCommand.h:
              * editing/UnlinkCommand.cpp:
              * editing/VisiblePosition.cpp:
              (WebCore::isEqualIgnoringAffinity):
              (WebCore::VisiblePosition::formatForDebugger):
              (WebCore::VisiblePosition::showTree):
              (showTree):
              * editing/VisiblePosition.h:
              (WebCore::VisiblePosition::VisiblePosition):
              (WebCore::operator==):
              * editing/WrapContentsInDummySpanCommand.cpp:
              * editing/htmlediting.h:
              * editing/markup.cpp:
              * editing/markup.h:
              (WebCore::):
              * editing/visible_units.cpp:
              * html/CanvasGradient.cpp:
              * html/CanvasRenderingContext2D.h:
              * html/CanvasStyle.cpp:
              * html/CanvasStyle.h:
              * html/FormDataList.cpp:
              * html/FormDataList.h:
              * html/HTMLCollection.cpp:
              * html/HTMLCollection.h:
              * html/HTMLDocument.cpp:
              * html/HTMLDocument.h:
              * html/HTMLElement.cpp:
              * html/HTMLElementFactory.cpp:
              * html/HTMLElementFactory.h:
              * html/HTMLFormCollection.cpp:
              * html/HTMLFormElement.cpp:
              * html/HTMLFormElement.h:
              * html/HTMLInputElement.cpp:
              * html/HTMLParser.cpp:
              * html/HTMLSelectElement.cpp:
              * html/HTMLSelectElement.h:
              * html/HTMLTokenizer.cpp:
              * html/HTMLTokenizer.h:
              * html/html_baseimpl.cpp:
              * html/html_headimpl.h:
              * kcanvas/KCanvasCreator.cpp:
              * kcanvas/KCanvasFilters.h:
              * kcanvas/KCanvasPath.h:
              * kcanvas/KCanvasResources.h:
              * kcanvas/KCanvasTreeDebug.cpp:
              * kcanvas/RenderPath.cpp:
              * kcanvas/RenderPath.h:
              * kcanvas/device/KRenderingDevice.h:
              * kcanvas/device/KRenderingPaintServerGradient.h:
              * kcanvas/device/KRenderingPaintServerPattern.h:
              * kcanvas/device/KRenderingPaintServerSolid.h:
              * kcanvas/device/quartz/KCanvasFilterQuartz.mm:
              * kcanvas/device/quartz/KCanvasMaskerQuartz.h:
              * kcanvas/device/quartz/KCanvasResourcesQuartz.h:
              * kcanvas/device/quartz/KCanvasResourcesQuartz.mm:
              * kcanvas/device/quartz/KRenderingPaintServerQuartz.h:
              * khtml/misc/decoder.cpp:
              * khtml/misc/decoder.h:
              * khtml/xsl/XSLStyleSheet.cpp:
              * khtml/xsl/XSLTProcessor.cpp:
              * khtml/xsl/XSLTProcessor.h:
              * ksvg2/css/SVGRenderStyle.h:
              * ksvg2/ecma/GlobalObject.cpp:
              * ksvg2/misc/KCanvasRenderingStyle.h:
              * ksvg2/misc/SVGDocumentExtensions.h:
              * ksvg2/svg/SVGAngle.h:
              * ksvg2/svg/SVGAnimateColorElement.h:
              * ksvg2/svg/SVGAnimatedColor.h:
              * ksvg2/svg/SVGAnimatedLengthList.h:
              * ksvg2/svg/SVGAnimatedNumberList.h:
              * ksvg2/svg/SVGAnimatedString.h:
              * ksvg2/svg/SVGAnimatedTransformList.h:
              * ksvg2/svg/SVGAnimationElement.h:
              * ksvg2/svg/SVGColor.h:
              * ksvg2/svg/SVGCursorElement.h:
              * ksvg2/svg/SVGHelper.h:
              * ksvg2/svg/SVGLength.h:
              * ksvg2/svg/SVGList.h:
              * ksvg2/svg/SVGPaint.h:
              * ksvg2/svg/SVGPathSeg.h:
              * ksvg2/svg/SVGPatternElement.h:
              * ksvg2/svg/SVGSVGElement.cpp:
              * ksvg2/svg/SVGSVGElement.h:
              * ksvg2/svg/SVGStringList.h:
              * ksvg2/svg/SVGTransform.h:
              * kwq/AccessibilityObjectCache.mm:
              * kwq/ClipboardMac.mm:
              * kwq/JavaAppletWidget.mm:
              * kwq/KWQComboBox.mm:
              * kwq/KWQEditCommand.mm:
              * kwq/KWQFileButton.mm:
              * kwq/KWQKHTMLSettings.h:
              * kwq/KWQKSSLKeyGen.mm:
              * kwq/KWQLoader.mm:
              * kwq/KWQPageState.mm:
              * kwq/KWQTextEdit.mm:
              * kwq/RegularExpression.h:
              * kwq/RenderTreeAsText.cpp:
              * kwq/RenderTreeAsText.h:
              * kwq/WebCoreAXObject.mm:
              * loader/Cache.cpp:
              * loader/Cache.h:
              * loader/CachedCSSStyleSheet.cpp:
              * loader/CachedObject.h:
              * loader/CachedScript.cpp:
              * loader/CachedXBLDocument.cpp:
              * loader/CachedXBLDocument.h:
              * loader/CachedXSLStyleSheet.cpp:
              * loader/CachedXSLStyleSheet.h:
              * loader/DocLoader.cpp:
              * page/Frame.cpp:
              * page/Frame.h:
              * page/FramePrivate.h:
              * page/FrameTree.cpp:
              * page/FrameTree.h:
              * page/FrameView.cpp:
              * page/FrameView.h:
              * page/Page.cpp:
              * page/Page.h:
              * page/Plugin.h:
              (WebCore::Plugin::Plugin):
              (WebCore::Plugin::view):
              * platform/Color.cpp:
              * platform/FloatRect.h:
              * platform/Font.cpp:
              * platform/Font.h:
              * platform/FontFamily.cpp:
              * platform/GraphicsContext.cpp:
              * platform/Image.cpp:
              * platform/Image.h:
              * platform/IntRect.h:
              * platform/KURL.cpp:
              * platform/KURL.h:
              * platform/SegmentedString.h:
              * platform/Shared.h:
              * platform/StreamingTextDecoder.cpp:
              * platform/StringImpl.cpp:
              * platform/StringImpl.h:
              * platform/TextEncoding.h:
              * platform/Timer.cpp:
              * platform/Timer.h:
              * platform/TransferJob.cpp:
              * platform/TransferJob.h:
              * platform/TransferJobInternal.h:
              * platform/cairo/GraphicsContextCairo.cpp:
              * platform/cairo/ImageCairo.cpp:
              * platform/cairo/ImageSourceCairo.cpp:
              * platform/image-decoders/gif/GIFImageReader.cpp:
              * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
              * platform/mac/FontFamilyMac.mm:
              * platform/mac/FontMac.mm:
              * platform/mac/ImageMac.mm:
              * platform/mac/TextEncodingMac.cpp:
              * platform/mac/TransferJobMac.mm:
              * platform/win/FontPlatformDataWin.cpp:
              * platform/win/TransferJobWin.cpp:
              * rendering/RenderBlock.cpp:
              * rendering/RenderBlock.h:
              * rendering/RenderBox.cpp:
              * rendering/RenderBox.h:
              * rendering/RenderCanvas.cpp:
              * rendering/RenderCanvas.h:
              * rendering/RenderContainer.cpp:
              * rendering/RenderFlexibleBox.h:
              * rendering/RenderFlow.cpp:
              * rendering/RenderFlow.h:
              * rendering/RenderImage.cpp:
              * rendering/RenderImage.h:
              * rendering/RenderLayer.cpp:
              * rendering/RenderLayer.h:
              * rendering/RenderObject.cpp:
              (showTree):
              * rendering/RenderObject.h:
              * rendering/RenderTableCell.h:
              * rendering/RenderTableSection.h:
              * rendering/RenderText.cpp:
              * rendering/RenderText.h:
              * rendering/RenderTextField.cpp:
              * rendering/RenderTextFragment.h:
              * rendering/RenderTheme.h:
              * rendering/RenderThemeMac.mm:
              * rendering/RenderThemeWin.cpp:
              * rendering/bidi.cpp:
              * rendering/render_form.h:
              * rendering/render_line.cpp:
              (showTree):
              * rendering/render_line.h:
              * rendering/render_list.cpp:
              * rendering/render_replaced.cpp:
              * rendering/render_replaced.h:
              * rendering/render_style.cpp:
              * rendering/render_style.h:
              * xml/xmlhttprequest.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@13821 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      36d1136a