1. 18 Mar, 2007 6 commits
  2. 17 Mar, 2007 3 commits
    • zimmermann's avatar
      Reviewed by Sam Weinig. · 58a0542e
      zimmermann authored
      Fixes: http://bugs.webkit.org/show_bug.cgi?id=13046 (CSS styles on hover and focus are broken for <use>)
      Fixes: http://bugs.webkit.org/show_bug.cgi?id=12838 (SVG <use> CSS styles broken)
      Added test: svg/custom/use-css-events.svg
      In general this fixes the peepo.co.uk website.
      Forgot to pass the actual StyleChange to the recalcStyle() function,
      when calling it on the shadow tree root element.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20262 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • antti's avatar
      LayoutTests: · 8a2eb6b0
      antti authored
              Reviewed by Adele.
              Test for http://bugs.webkit.org/show_bug.cgi?id=12595
              REGRESSION: Can't add item to cart at lnt.com (JS type error)
              Expanded version of Darin's test case. 
              * fast/forms/old-names-expected.txt: Added.
              * fast/forms/old-names.html: Added.
              Reviewed by Adele.
              Fix http://bugs.webkit.org/show_bug.cgi?id=12595
              REGRESSION: Can't add item to cart at lnt.com (JS type error)
              Emulate Firefox behavior where form elements accessed by a name
              can be accessed with that name later even if the name changes or
              even if element is removed from the document.
              This is loosely based on Darin's earlier patch for the same problem but
              is much less expansive. It takes somewhat different approach to more closely
              mimic Firefox behavior. Includes expanded test case.
              * bindings/js/JSHTMLFormElementCustom.cpp:
                  Use new the HTMLFormElement::getNamedElements() method
                  Use new the HTMLFormElement::getNamedElements() method
              * html/HTMLFormElement.cpp:
                  Maintain a map of known element aliases
                  Get a list of elements matching the name, based both their
                  current names and known aliases (earlier names).
                  Keep the alias list in sync.
              * html/HTMLFormElement.h:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20260 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • adele's avatar
      LayoutTests: · 31872c80
      adele authored
              Reviewed by Hyatt.
              Updated test for <rdar://problem/4990050> REGRESSION: onchange gets fired when clicking on a programmatically selected element in a listbox
              * fast/forms/listbox-onchange-expected.txt:
              * fast/forms/listbox-onchange.html:
              Reviewed by Hyatt.
              Fix for <rdar://problem/4990050> REGRESSION: onchange gets fired when clicking on a programmatically selected element in a listbox
              Test: updated fast/forms/listbox-onchange.html
              Added HTMLSelectElement::saveLastSelection that is called before changing a selection that could result
              in onChange being called.  m_lastOnChangeIndex and m_lastOnChangeSelection no longer have to be up-to date all the time, 
              they just have to be up-to-date before we execute an action that may trigger onChange.
              * html/HTMLOptionElement.cpp: (WebCore::HTMLOptionElement::setSelectedState): Added.
                The HTMLSelectElement will only set an option's selected state with this method.  This ensures
                that notifyOptionSelected won't get called when the call originates from the select element.
              * html/HTMLOptionElement.h:
              * html/HTMLSelectElement.cpp:
              (WebCore::HTMLSelectElement::deselectItems): Calls setSelectedState.
              (WebCore::HTMLSelectElement::setSelectedIndex): ditto. Don't update the last selection variables here.  Scroll to the new selection.
               The scrolling call used to only be in notifyOptionSelected.  There's no reason we shouldn't scroll when the selection is set through
               the HTMLSelectElement.
              (WebCore::HTMLSelectElement::setValue): Call setSelectedIndex to update all options selected state.
              (WebCore::HTMLSelectElement::restoreState): Call setSelectedState.
              (WebCore::HTMLSelectElement::selectAll): Call saveLastSelection before making the selection, and calling onChange.
              (WebCore::HTMLSelectElement::recalcListItems): Call setSelectedState.  Don't need to save selection here anymore, 
               since it will get saved before we call onChange.
              (WebCore::HTMLSelectElement::reset): ditto.
              (WebCore::HTMLSelectElement::dispatchFocusEvent): Added. Call saveLastSelection for menu lists, since onChange can be fired
               on blur.
              (WebCore::HTMLSelectElement::dispatchBlurEvent): Call menuListOnChange.
              (WebCore::HTMLSelectElement::menuListDefaultEventHandler): Call saveLastSelection before showing the popup window.
              (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):  Call saveLastSelection during mousedown (to prepare for an 
               onchange during mouseup, or after autoscroll).
              (WebCore::HTMLSelectElement::updateListBoxSelection): Call setSelectedState.
              (WebCore::HTMLSelectElement::menuListOnChange): Added. Compares the m_lastOnChangeIndex to the selectedIndex().
              (WebCore::HTMLSelectElement::listBoxOnChange): Move the m_lastOnChangeSelection creation to saveLastSelection.
              (WebCore::HTMLSelectElement::saveLastSelection): Added. Sets m_lastOnChangeIndex or m_lastOnChangeSelection.
              * html/HTMLSelectElement.h:
              * platform/PopupMenu.h:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20259 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  3. 16 Mar, 2007 3 commits
    • oliver's avatar
      2007-03-16 Oliver Hunt <oliver@apple.com> · 4eee8692
      oliver authored
              Reviewed by Hyatt.
              The old canSaveAsWebArchive call was necessary as stand alone
              images used to be rendered by ImageDocument.
              Fixes rdar://problem/5061252
              * dom/Clipboard.cpp:
              * dom/Clipboard.h:
              * page/DragClient.h:
              * platform/mac/ClipboardMac.mm:
              * WebCoreSupport/WebDragClient.h:
              * WebCoreSupport/WebDragClient.mm:
              * WebKit.xcodeproj/project.pbxproj:
              Updating layout test to allow stand alone image to be
              dragged into a content editable div
              * fast/events/standalone-image-drag-to-editable-expected.checksum:
              * fast/events/standalone-image-drag-to-editable-expected.png:
              * fast/events/standalone-image-drag-to-editable-expected.txt:
              * fast/events/standalone-image-drag-to-editable.html:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20258 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • beidson's avatar
      Reviewed by Braveheart · 82d48635
      beidson authored
              Updated layouttest results because I added a window property
              * fast/dom/Window/window-properties-expected.txt:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20255 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • beidson's avatar
      LayoutTests: · 4c4772da
      beidson authored
              Reviewed by Anders
              <rdar://problem/5061826> and
              Implement window.stop()
              * http/tests/misc/window-dot-stop-expected.txt: Added.
              * http/tests/misc/window-dot-stop.html: Added.
              Reviewed by Anders
              <rdar://problem/5061826> and
              Implement window.stop()
              * bindings/js/kjs_window.cpp:
              (KJS::WindowFunc::callAsFunction): Add case Window::Stop
              * bindings/js/kjs_window.h:
              (KJS::Window::): Add "Stop"
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20253 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  4. 15 Mar, 2007 5 commits
    • justing's avatar
      LayoutTests: · 0def9d84
      justing authored
              Reviewed by john
              REGRESSION: In Mail and Gmail, can't change alignment to text after it has been applied
              * editing/execCommand/5062376-expected.checksum: Added.
              * editing/execCommand/5062376-expected.png: Added.
              * editing/execCommand/5062376-expected.txt: Added.
              * editing/execCommand/5062376.html: Added.
              Reviewed by john
              REGRESSION: In Mail and Gmail, can't change alignment to text after it has been applied
              Bring back the remove step in applyBlockStyle.  It's 
              necessary because addBlockStyleIfNeeded assumes that 
              the properties it adds aren't already on the block that 
              it adds them to.
              * editing/ApplyStyleCommand.cpp:
              Bring back the remove step (added a testcase).
              Don't do the add step if m_removeOnly is true (no testcase
              because there aren't any clients using removeOnly functionality
              to remove styles yet, only styled elemets).
              Moved the code for creating new blocks up one level
              to this function so that we can pass blocks to removeCSSStyle.
              When converting VisiblePositions to indices and vice versa,
              use the highest node in the shadow tree if we're in one as
              the scope (working on a testcase).
              (WebCore::ApplyStyleCommand::addBlockStyle): Moved code to
              * editing/ApplyStyleCommand.h: 
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20228 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • beidson's avatar
      LayoutTests: · d82d99fe
      beidson authored
              Reviewed by Adele
              Implements a port blocking black list that matches Firefox's
              The layout test attempts to load an image at an invalid domain name on each
              of the black listed ports.  Using dumpResourceLoadCallbacks(), DRT is able
              to see the error codes for each resource.  A successful test shows the blocked
              error for each image load except for the few that are standard or should 
              succeed due to exemptions.
              * security/block-test-expected.txt: Added.
              * security/block-test.html: Added.
              Reviewed by Maciej
              Implements a port blocking black list that matches Firefox's
              * loader/FrameLoader.cpp:
              (WebCore::FrameLoader::blockedError): Call through to the client for blockedError 
              * loader/FrameLoader.h:
              * loader/FrameLoaderClient.h: Get the "port blocked" error for the current platform
              * loader/ResourceLoader.cpp:
              (WebCore::ResourceLoader::wasBlocked): ResourceHandleClient method to pass on the didFail(error)
              (WebCore::ResourceLoader::blockedError): Following the pattern of "CancelledError()", get the 
                error to fail with for the didFail() call
              * loader/ResourceLoader.h:
              * platform/graphics/svg/SVGImageEmptyClients.h:
              (WebCore::SVGEmptyFrameLoaderClient::blockedError): Added stub
              * platform/network/ResourceHandle.cpp:
              (WebCore::ResourceHandle::create): If the port is blocked, create the handle but schedule it for
                deferred failure on a timer
              (WebCore::ResourceHandle::scheduleBlockedFailure): Do the timer scheduling
              (WebCore::ResourceHandle::fireBlockedFailure): Fire the timer here
              (WebCore::ResourceHandle::portAllowed): Implements checking of Mozilla's
              * platform/network/ResourceHandle.h:
              * platform/network/ResourceHandleClient.h:
              (WebCore::ResourceHandleClient::wasBlocked): Virtual for clients to get the "blocked" message
              Reviewed by Maciej
              Implements a port blocking black list that matches Firefox's
              * English.lproj/Localizable.strings: Added localizable string for port blocked error code
              * Misc/WebKitErrors.h:
              * Misc/WebKitErrors.m:
              (registerErrors): Add new port blocked error code to WebKitErrorDomain
              * WebCoreSupport/WebFrameLoaderClient.h:
              * WebCoreSupport/WebFrameLoaderClient.mm:
              (WebFrameLoaderClient::cancelledError): Fixed coding style
              (WebFrameLoaderClient::blockedError): Return a ResourceError with the new custom error code
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20227 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • justing's avatar
      LayoutTests: · 5e10a81c
      justing authored
              Reviewed by john
              Removed an unnecessary block (one that was fully
              selected but whose markup wasn't needed to preserve
              * editing/pasteboard/paste-text-011-expected.txt:
              Removed unnecessary style spans:
              * editing/pasteboard/merge-end-blockquote-expected.txt:
              Removed unnecessary empty anonymous blocks:
              * editing/execCommand/create-list-with-hr-expected.txt:
              * editing/pasteboard/display-block-on-spans-expected.txt:
              * editing/pasteboard/paste-text-006-expected.txt:
              * editing/pasteboard/paste-table-001-expected.txt:
              * editing/pasteboard/paste-text-013-expected.txt:
              * editing/pasteboard/paste-text-002-expected.txt:
              * editing/pasteboard/paste-list-001-expected.txt:
              * editing/pasteboard/paste-text-005-expected.txt:
              * editing/pasteboard/paste-text-003-expected.txt:
              * editing/pasteboard/paste-text-014-expected.txt:
              * editing/pasteboard/paste-pre-001-expected.txt:
              Now (correctly) includes fully selected root:
              * editing/pasteboard/paste-text-015-expected.checksum:
              * editing/pasteboard/paste-text-015-expected.png:
              * editing/pasteboard/paste-text-015-expected.txt:
              * editing/inserting/insert-3907422-fix-expected.txt:
              * editing/pasteboard/paste-text-004-expected.txt:
              Demonstrates a bug that already existed (we don't inline 
              the font styles from the Preference Pane on copy):
              * editing/pasteboard/5027857-expected.checksum:
              * editing/pasteboard/5027857-expected.png:
              * editing/pasteboard/5027857-expected.txt:
              * editing/pasteboard/paste-pre-002-expected.checksum:
              * editing/pasteboard/paste-pre-002-expected.png:
              * editing/pasteboard/paste-pre-002-expected.txt:
              Reviewed by john
              ~2x speed up of 5k rich text paste:
              * editing/ReplaceSelectionCommand.cpp:
              (WebCore::ReplaceSelectionCommand::doApply): Remove the top 
              level style span if its unnecessary before inserting
              into the document, its faster than doing it after.
              * editing/ReplaceSelectionCommand.h: Exposed 
              ReplacementFragment::removeNodePreservingChildren so that
              the style span can be removed using non-undoable removes,
              like the rest of the removes done on the ReplacementFragment.
              * editing/markup.cpp:
              (WebCore::createMarkup): Make the style span the top level
              element, otherwise it's useless.  This also facilitates the
              optimization mentioned above.
              When including markup for a fully selected root, include markup
              for all the nodes beneath that fully selected root, to preserve 
              the structure and appearance of the copied markup.  Did this
              by merging with the code for adding markup for descendants of
              special commonAncestorBlocks.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20215 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • bdakin's avatar
      Rubber-stamped by Adele. · 2f06e491
      bdakin authored
              Rolling out http://trac.webkit.org/projects/webkit/changeset/20148 
              (which is a fix for http://bugs.webkit.org/show_bug.cgi?id=12595 
              and rdar://4722863) because it causes a horrible memory-trasher.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20214 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • oliver's avatar
      2007-03-14 Oliver Hunt <oliver@apple.com> · 01dd65f4
      oliver authored
              Reviewed by Adele.
              Fix for rdar://problem/5061737.
              This was a regression from the original Objective-C -> C++ conversion
              for the drag logic.  We don't need to call Range::startNode as we just
              need the document that contains the range.   
              * page/DragController.cpp:
              Layout tests for rdar://problem/5061737
              * editing/pasteboard/drag-image-to-contenteditable-in-iframe-expected.txt: Added.
              * editing/pasteboard/drag-image-to-contenteditable-in-iframe.html: Added.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20209 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  5. 14 Mar, 2007 7 commits
    • kmccullo's avatar
      JavaScriptCore: · 014b4536
      kmccullo authored
              Reviewed by Geoff.
              - rdar://problem/5045720
              - DST changes in US affect JavaScript date calculations (12975)
              This fix was to ensure we properly test for the new changes to DST in the US.
              Also this fixes when we apply DST, now we correctly map most past years to current
              DST rules.  We still have a small issue with years before 1900 or after 2100.
              * kjs/DateMath.cpp: Fix DST to match spec better.
              * kjs/DateMath.h: Consolodated common funtionality.
              * kjs/date_object.cpp: Consolodated common functionality.
              * tests/mozilla/ecma/jsref.js: Added functions for finding the correct days when DST starts and ends.
              * tests/mozilla/ecma/shell.js: Added back in the old DST functions for ease of merging with mozilla if needed.
              * tests/mozilla/ecma_2/jsref.js: Added functions for finding the correct days when DST starts and ends.
              * tests/mozilla/ecma_3/Date/shell.js: Added functions for finding the correct days when DST starts and ends.
              * tests/mozilla/expected.html: Updated to show all date tests passing.
              Reviewed by Geoff.
              - rdar://problem/5045720
              - DST changes in US affect JavaScript date calculations (12975)
              Changed layout tests to properly check for the new changes to DST in the
              US. Also these now test that equivalent years return the same results for DST.
              * fast/js/date-DST-time-cusps-expected.txt:
              * fast/js/date-big-setdate-expected.txt:
              * fast/js/resources/date-DST-time-cusps.js:
              * fast/js/resources/date-big-setdate.js:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20203 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • weinig's avatar
      LayoutTests: · 5a5b938d
      weinig authored
              Reviewed by Hyatt.
              - test for://bugs.webkit.org/show_bug.cgi?id=13071
                REGRESSION: Plain text files no longer wrap lines longer than the width of the browser window
              * fast/loader/resources/text-document-wrapping.txt: Added.
              * fast/loader/text-document-wrapping-expected.checksum: Added.
              * fast/loader/text-document-wrapping-expected.png: Added.
              * fast/loader/text-document-wrapping-expected.txt: Added.
              * fast/loader/text-document-wrapping.html: Added.
              Reviewed by Hyatt.
              - http://bugs.webkit.org/show_bug.cgi?id=13071
                REGRESSION: Plain text files no longer wrap lines longer than the width of the browser window
              Test: fast/loader/text-document-wrapping.html
              * loader/TextDocument.cpp:
              (WebCore::TextTokenizer::write): Specified word-wrap:break-word for the <pre> element.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20202 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • weinig's avatar
      LayoutTests: · 98726dac
      weinig authored
              Reviewed by Hyatt.
              - test for http://bugs.webkit.org/show_bug.cgi?id=13072
                REGRESSION (r15617): white-space: pre-wrap breaks off the last character of a wide word
              * fast/text/whitespace/pre-wrap-last-char-expected.checksum: Added.
              * fast/text/whitespace/pre-wrap-last-char-expected.png: Added.
              * fast/text/whitespace/pre-wrap-last-char-expected.txt: Added.
              * fast/text/whitespace/pre-wrap-last-char.html: Added.
              Reviewed by Hyatt.
              - fix http://bugs.webkit.org/show_bug.cgi?id=13072
                REGRESSION (r15617): white-space: pre-wrap breaks off the last character of a wide word
              Test: fast/text/whitespace/pre-wrap-last-char.html
              * rendering/bidi.cpp:
              (WebCore::RenderBlock::findNextLineBreak): Undid the change from r15617.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20200 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • justing's avatar
      I forgot to update this expected result in my previous checkin. · 42cfb678
      justing authored
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20192 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • justing's avatar
      LayoutTests: · 867f199a
      justing authored
              Reviewed by darin
              Removed unnecessary style spans:
              * editing/deleting/delete-3857753-fix-expected.txt:
              * editing/execCommand/4916541-expected.txt:
              * editing/execCommand/create-list-from-range-selection-expected.txt:
              * editing/execCommand/format-block-expected.txt:
              * editing/execCommand/format-block-from-range-selection-expected.txt:
              * editing/execCommand/format-block-with-braces-expected.txt:
              * editing/execCommand/indent-selection-expected.txt:
              * editing/execCommand/remove-list-from-range-selection-expected.txt:
              * editing/execCommand/remove-list-items-expected.txt:
              * editing/execCommand/switch-list-type-expected.txt:
              * editing/pasteboard/4861080-expected.txt:
              * editing/pasteboard/display-block-on-spans-expected.txt:
              * editing/pasteboard/drag-drop-modifies-page-expected.txt:
              * editing/pasteboard/paste-table-002-expected.txt:
              * editing/pasteboard/paste-text-001-expected.txt:
              * editing/pasteboard/paste-text-at-tabspan-001-expected.txt:
              * editing/pasteboard/paste-text-at-tabspan-002-expected.txt:
              * editing/pasteboard/paste-text-at-tabspan-003-expected.txt:
              * editing/style/smoosh-styles-001-expected.txt:
              * editing/style/smoosh-styles-002-expected.txt:
              Reviewed by darin
              ~3x speedup pasting 5k lines of rich text:
              ~2x speedup pasting 10k lines of plain text
              * css/CSSComputedStyleDeclaration.cpp:
              (WebCore::computedStyle): Added for convenience.
              * css/CSSComputedStyleDeclaration.h:
              * editing/ReplaceSelectionCommand.cpp:
              The code that pushed down the top level style span had
              a bug in it that made it do unnecessary work.  Instead of
              fixing the bug I removed the code because it was used to 
              help see more redundancies in second level style spans, but 
              createMarkup now *only* creates a top level style span.
              Only remove redundant styles from style spans and only remove
              unstyled elements if they are style spans.  FF doesn't
              remove redundant styles from elements, or remove redundant 
              font tags on copy/paste.  We could offer this functionality 
              through a separate "cleanup" command.
              * editing/markup.cpp:
              (WebCore::createMarkup): Only add markup for ancestors of 
              lastClosed if we're including markup for acommonAncestorBlock 
              (we do this for commonAncestorBlocks like tables and lists),
              otherwise it's unnecessary/redundant.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20191 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • weinig's avatar
      LayoutTests: · 760f10f9
      weinig authored
              Reviewed by Hyatt, thumbs up by Darin.
              - test for http://bugs.webkit.org/show_bug.cgi?id=12782
                Reproducible crash in BidiContext::deref
              * fast/dynamic/anonymous-block-orphaned-lines-expected.checksum: Added.
              * fast/dynamic/anonymous-block-orphaned-lines-expected.png: Added.
              * fast/dynamic/anonymous-block-orphaned-lines-expected.txt: Added.
              * fast/dynamic/anonymous-block-orphaned-lines.html: Added.
              Reviewed by Hyatt, thumbs up by Darin.
              - fix http://bugs.webkit.org/show_bug.cgi?id=12782
                Reproducible crash in BidiContext::deref
              Test: fast/dynamic/anonymous-block-orphaned-lines.html
              * rendering/InlineBox.cpp:
              (WebCore::InlineBox::root): Added an assertion that we return a root inline box.
              * rendering/RenderBlock.cpp:
              (WebCore::RenderBlock::removeChild): Added code to adopt the line boxes of
              anonymous blocks being destroyed instead of leaving them orphaned, which
              is what caused this crash. The boxes will be deleted on the next layout, but
              this ensures consistency in the mean time.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20188 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • antti's avatar
      LayoutTests: · e3543b8f
      antti authored
              Reviewed by Mitz.
              Test case for <rdar://problem/5058774>
              REGRESSION: In Mail, caret appears oversized when typing in a To Do note
              * editing/style/highlight-expected.checksum: Added.
              * editing/style/highlight-expected.png: Added.
              * editing/style/highlight-expected.txt: Added.
              * editing/style/highlight.html: Added.
              Reviewed by Mitz.
              Fix <rdar://problem/5058774>
              REGRESSION: In Mail, caret appears oversized when typing in a To Do note
              Horizontal and vertical were switched. Was regression from
              * rendering/RootInlineBox.cpp:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20186 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  6. 13 Mar, 2007 12 commits
    • justing's avatar
      LayoutTests: · 4ac2b9a3
      justing authored
              Reviewed by darin
              Gmail Editor: Applying alignment to selected text in message also applies alignment to signature
              * editing/style/5046875-1-expected.checksum: Added.
              * editing/style/5046875-1-expected.png: Added.
              * editing/style/5046875-1-expected.txt: Added.
              * editing/style/5046875-1.html: Added.
              * editing/style/5046875-2-expected.checksum: Added.
              * editing/style/5046875-2-expected.png: Added.
              * editing/style/5046875-2-expected.txt: Added.
              * editing/style/5046875-2.html: Added.
              moveParagraphs doesn't move unnecessary brs:
              * editing/style/create-block-for-style-002-expected.txt:
              * editing/style/create-block-for-style-004-expected.txt:
              * editing/style/create-block-for-style-001-expected.txt:
              * editing/style/create-block-for-style-009-expected.txt:
              * editing/style/create-block-for-style-010-expected.txt:
              moveParagraphs clears out unrendered text during the move:
              * editing/style/create-block-for-style-011-expected.txt:
              * editing/style/create-block-for-style-007-expected.txt:
              * editing/style/create-block-for-style-012-expected.txt:
              Reviewed by darin
              Gmail Editor: Applying alignment to selected text in message also applies alignment to signature
              * editing/ApplyStyleCommand.cpp:
              (WebCore::ApplyStyleCommand::doApply): Don't call applyBlockStyle unless
              there is a block style to apply.
              (WebCore::ApplyStyleCommand::applyBlockStyle): Don't do the remove step.
              It was unnecessary and removed properties from blocks that could contain 
              content outside the range being operated on (added a testcase).
              (WebCore::ApplyStyleCommand::addBlockStyleIfNeeded): Used an early return
              instead of if-nesting.
              * editing/ApplyStyleCommand.h:
              * editing/CompositeEditCommand.cpp:
              Return the new block, if one was created.  Use moveParagraphs to move
              paragraphs into the new block, instead of moving nodes.  The old code moved
              too much (added a testcase).
              * editing/CompositeEditCommand.h:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20181 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • oliver's avatar
      2007-03-13 Oliver Hunt <oliver@apple.com> · a258f43a
      oliver authored
              Reviewed by Brady.
              To fix <rdar://problem/5044366> we now pass a NSString
              representation of the URL extracted with _web_originalDataAsString
              instead of relying on [NSURL absoluteString] in the bridge
              * page/mac/WebCoreFrameBridge.h:
              * page/mac/WebCoreFrameBridge.mm:
              (-[WebCoreFrameBridge getData:andResponse:forURL:]):
              Modify subresourceForURL to take NSString argument 
              so we can avoid [NSURL absoluteString]
              * WebView/WebDataSource.mm:
              (-[WebDataSource subresourceForURL:]):
              Test for <rdar://problem/5044366> make sure we can create
              a WebArchive from a page with a partially decoded url.
              * webarchive/archive-with-unencoded-url-expected.txt: Added.
              * webarchive/archive-with-unencoded-url.html: Added.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20180 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • bdakin's avatar
      WebCore: · 262baf71
      bdakin authored
              Rendering part reviewed by Hyatt. Editing part consulted with and 
              rubber stamped by Justin and Harrison.
              Fix for <rdar://problem/5025925> A hang occurs in Safari when 
              attempting to print page at http://www.pcadvisor.co.uk
              * rendering/RenderBlock.cpp:
              RenderBlock::makeChildrenNonInline() takes a block's inline 
              children and turns them into block children. If the children had 
              line boxes, those boxes were being leaked. In the layout test I 
              added with the change (and at pcadvisor.co.uk during printing) 
              children were being made non-inline, and then they were being made 
              inline again. This meant that some of the children ended up 
              pointing to totally stale line boxes that are normally just leaked. 
              This caused an infinite loop in RenderFlow::destroy(). This patch 
              simply deletes everyone's line boxes in 
              * editing/InsertParagraphSeparatorCommand.cpp:
              (WebCore::InsertParagraphSeparatorCommand::doApply): The other part 
              of this fix is that I added a call to updateLayout in 
              InsertParagraphSeparatorCommand::doApply(). One layout test 
              (editing/spelling/spelling.html) was changed by my patch to 
              RenderBlock. doApply() inserts a node into the render tree. In at 
              least one case in spelling.html, that caused some line boxes to be 
              deleted. Back in doApply() this meant that the RenderTree was out-
              of-date, and we mistakenly thought we were at the end of the 
              paragraph. This caused us to insert a RenderBR() at the end of the 
              tree instead of an empty RenderText(). No one seems to know exactly 
              why we insert either, or if the change is necessarily a problem. It 
              is clear, though, that the RenderTree in doApply() is out-of-date 
              after inserting the node and deleting some line boxes, so it seems 
              prudent to call into updateLayout().
              Reviewed by Hyatt.
              Test for <rdar://problem/5025925> A hang occurs in Safari when 
              attempting to print page at http://www.pcadvisor.co.uk
              * fast/block/float/nestedAnonymousBlocks-expected.checksum: Added.
              * fast/block/float/nestedAnonymousBlocks-expected.png: Added.
              * fast/block/float/nestedAnonymousBlocks-expected.txt: Added.
              * fast/block/float/nestedAnonymousBlocks.html: Added.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20177 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • harrison's avatar
      <rdar://problem/5031181> cntl-k at end of paragraph adds nothing to the kill ring · 70e9806a
      harrison authored
              <rdar://problem/5031189> REGRESSION: cntl-y yanks only the most recently killed content
              Updated results.
              * editing/deleting/delete-to-end-of-paragraph-expected.checksum:
              * editing/deleting/delete-to-end-of-paragraph-expected.txt:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20175 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • darin's avatar
      LayoutTests: · 3fd60e18
      darin authored
              Reviewed by Maciej.
              - tests for http://bugs.webkit.org/show_bug.cgi?id=12794
                <rdar://problem/5028154> REGRESSION: TripTik planner at aaa.com never
                finishes loading due to unclosed canvas tag (12794)
              * fast/canvas/canvas-hides-fallback-expected.txt: Added.
              * fast/canvas/canvas-hides-fallback.html: Added.
              * fast/canvas/script-inside-canvas-fallback-expected.txt: Added.
              * fast/canvas/script-inside-canvas-fallback.html: Added.
              * fast/canvas/unclosed-canvas-1-expected.txt: Added.
              * fast/canvas/unclosed-canvas-1.html: Added.
              * fast/canvas/unclosed-canvas-2-expected.txt: Added.
              * fast/canvas/unclosed-canvas-2.html: Added.
              * fast/canvas/unclosed-canvas-3-expected.txt: Added.
              * fast/canvas/unclosed-canvas-3.html: Added.
              * fast/canvas/unclosed-canvas-4-expected.txt: Added.
              * fast/canvas/unclosed-canvas-4.html: Added.
              Reviewed by Maciej.
              - fix http://bugs.webkit.org/show_bug.cgi?id=12794
                <rdar://problem/5028154> REGRESSION: TripTik planner at aaa.com never
                finishes loading due to unclosed canvas tag (12794)
              Change <canvas> elements so that their contents are parsed normally,
              but not rendered. This change fixes the bug, because normal parsing
              rules close the <canvas> element in that case. The special parser
              stuff was just getting in the way.
              Also do some basic cleanup to the HTML parser. This was motivated by
              an earlier version of this patch that made even more changes to the
              parser, but the cleanup is still worth landing.
              Test: fast/canvas/canvas-hides-fallback.html
              Test: fast/canvas/script-inside-canvas-fallback.html
              Test: fast/canvas/unclosed-canvas-1.html
              Test: fast/canvas/unclosed-canvas-2.html
              Test: fast/canvas/unclosed-canvas-3.html
              Test: fast/canvas/unclosed-canvas-4.html
              * html/HTMLCanvasElement.h: Added a data member to keep track of whether the
              renderer is a RenderHTMLCanvas or not.
              * html/HTMLCanvasElement.cpp:
              (WebCore::HTMLCanvasElement::createRenderer): If JavaScript is enabled, create
              a RenderHTMLCanvas. If it's not, let the default code create the default type
              of renderer, which will result in fallback content being visible. The
              RenderHTMLCanvas class already hides all of its children. Set the m_rendererIsCanvas
              boolean accordingly. Since the actual storage for the canvas is allocated lazily
              when you actually get a drawing context, we don't need to do anything special
              to prevent it when JavaScript is disabled; the relevant functions won't be called.
              (WebCore::HTMLCanvasElement::reset): Protect the code that manipulates the
              RenderHTMLCanvas with a check of m_rendererIsCanvas. This is the only code inside
              the DOM element that relies on the renderer type.
              * html/HTMLParser.h: Removed unneeded includes. Marked HTMLParser as
              Noncopyable. Changed the Document parameter to the constructor to instead
              of HTMLDocument. Renamed discard_until to m_skipModeTag for clarity.
              Removed unused noSpaces function and unneeded public doc() function.
              Moved data members all down to the end so you can see them together in order.
              Renamed map to m_currentMapElement and isindex to m_isindexElement.
              Removed unused end and headLoaded data members.  Renamed m_fragment to
              m_isParsingFragment to make it clearer that it's a boolean, not a fragment.
              * html/HTMLParser.cpp:
              (WebCore::HTMLParser::HTMLParser): Changed to use member construction
              syntax instead of calling reset(). This is especially helpful in the
              fragment case, where calling reset() later on is illegal, so not using
              it in the constructor lets us assert.
              (WebCore::HTMLParser::~HTMLParser): Did an explicit deref instead of
              calling setCurrent for its side effect.
              (WebCore::HTMLParser::reset): Updated for member name changes and removal
              and to use document instead of doc().
              (WebCore::HTMLParser::setCurrent): Use document instead of doc().
              (WebCore::HTMLParser::setSkipMode): Added. No longer inline. Now sets the
              m_inCanvasBeforeFirstOpenTag data member to false.
              (WebCore::HTMLParser::parseToken): Tightened up the skip mode logic at the
              top of the function, and added a FIXME about the strange case there where
              we don't skip yet stay in skip mode. Updated for renaming and doc().
              (WebCore::HTMLParser::insertNode): Updated for renaming and doc().
              (WebCore::HTMLParser::handleError): Ditto.
              (WebCore::HTMLParser::framesetCreateErrorCheck): Ditto.
              (WebCore::HTMLParser::isindexCreateErrorCheck): Changed to use RefPtr.
              (WebCore::HTMLParser::noscriptCreateErrorCheck): Updated for renaming and doc().
              (WebCore::HTMLParser::mapCreateErrorCheck): Ditto.
              (WebCore::HTMLParser::getNode): Removed the special case for canvas here.
              Canvas fallback is now handled in the DOM, not the parser. Updated for
              renaming and doc().
              (WebCore::HTMLParser::allowNestedRedundantTag): Changed a #define into a C++
              (WebCore::HTMLParser::processCloseTag): Updated for renaming and doc().
              (WebCore::HTMLParser::isInline): Ditto.
              (WebCore::HTMLParser::tagIsOnStack): Added. Used by new canvas logic.
              (WebCore::HTMLParser::popBlock): Updated for renaming and doc(). Also renamed
              the local variable Elem to elem.
              (WebCore::HTMLParser::createHead): Ditto.
              (WebCore::HTMLParser::handleIsindex): Changed to use RefPtr.
              (WebCore::HTMLParser::startBody): Updated for renaming and doc().
              (WebCore::HTMLParser::finished): Ditto.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20170 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • 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.
              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:
              Clear the "start new kill ring sequence" setting, because it was set to true
              when the selection was updated by deleting the range.
              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:
              Initialize new member variables for tracking handling of the beginning of the range.
              Call representNodeOffsetZero on the m_endContainer.
              Move visibility checks into handleTextNode and handleReplacedElement.
              Call emitText.
              Moved visibility check into here.
              New. Emits proper sequence when encountering offset 0 of a node, including the
              m_endContainer. Started with code from handleNonTextNode.
              Call representNodeOffsetZero.
              Similar to shouldRepresentNodeOffsetZero, do not emit the newline if the node
              was collapsed, and before any other emitted content.
              New. Consolidates code used by handleText and handleTextBox.
              Removed RUNFINDER.
              Removed RUNFINDER.
              * 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:
              Eliminated concept of RUNDFINDER vs CONTENT TextIterator.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20166 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • antti's avatar
      LayoutTests: · 960350d3
      antti authored
              Reviewed by Darin.
              REGRESSION: Typing tab key fails to insert a tab character in Google Docs editable area
              * editing/inserting/typing-tab-designmode-expected.txt: Added.
              * editing/inserting/typing-tab-designmode-forms-expected.checksum: Added.
              * editing/inserting/typing-tab-designmode-forms-expected.png: Added.
              * editing/inserting/typing-tab-designmode-forms-expected.txt: Added.
              * editing/inserting/typing-tab-designmode-forms.html: Added.
              * editing/inserting/typing-tab-designmode.html: Added.
              Reviewed by Darin.
              Fix http://bugs.webkit.org/show_bug.cgi?id=11083
              REGRESSION: Typing tab key fails to insert a tab character in Google Docs editable area
              Allow inserting tabs in designMode. Backtab behaves like before (matches FF).
              * page/EventHandler.cpp:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20159 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • darin's avatar
      * fast/js/kde/RegExp-expected.txt: Fix the one other test affected by · 288cfcda
      darin authored
              the js-test-pre.js change.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20149 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • darin's avatar
      LayoutTests: · 0fced9cc
      darin authored
              Reviewed by Adele.
              - test for http://bugs.webkit.org/show_bug.cgi?id=12595
                <rdar://problem/4722863> REGRESSION: Can't add item to cart at lnt.com
                (JS type error) (12595)
              * fast/forms/old-names-expected.txt: Added.
              * fast/forms/old-names.html: Added.
              - check in files that were somehow left out in the last check-in
              * fast/js/resources/js-test-pre.js: Improve the format of the failure message when
              both the real results and expected results are strings.
              * fast/dom/wrapper-classes-expected.txt: Changed back to use the new format.
              Reviewed by Adele.
              - fix http://bugs.webkit.org/show_bug.cgi?id=12595
                <rdar://problem/4722863> REGRESSION: Can't add item to cart at lnt.com
                (JS type error) (12595)
              Test: fast/forms/old-names.html
              * bindings/js/JSHTMLFormElementCustom.cpp:
              (WebCore::JSHTMLFormElement::canGetItemsForName): If the form collection has
              nothing for a given name, try the form's oldNamedElement function.
              (WebCore::JSHTMLFormElement::nameGetter): Ditto.
              * bindings/js/kjs_dom.h: Removed the DOMNamedNodesCollection. Instead we will use
              a class derived from NodeList.
              * bindings/js/kjs_dom.cpp: Ditto.
              * bindings/js/kjs_html.cpp:
              (KJS::VectorNodeList::VectorNodeList): Added. Constructor for a new class derived
              from NodeList to be used for the named items result from a collection -- uses a
              vector of node pointers.
              (KJS::VectorNodeList::length): Added.
              (KJS::VectorNodeList::item): Added.
              (KJS::JSHTMLCollection::getNamedItems): Use VectorNodeList and the existing wrapper
              for NodeList rather than a custom JavaScript class, DOMNamedNodesCollection.
              * dom/ChildNodeList.h:
              * dom/ChildNodeList.cpp:
              (WebCore::ChildNodeList::ChildNodeList): Updated to derive from TreeNodeList,
              since NodeList is now a simpler class.
              (WebCore::ChildNodeList::elementMatches): Updated for name and parameter change.
              * dom/NameNodeList.h:
              * dom/NameNodeList.cpp:
              (WebCore::NameNodeList::NameNodeList): Updated to derive from TreeNodeList,
              since NodeList is now a simpler class.
              (WebCore::NameNodeList::rootNodeAttributeChanged): Updated for name and
              parameter change.
              * dom/Node.h: Change register/unregister functions to take TreeNodeList.
              * dom/Node.cpp:
              (WebCore::TagNodeList::TagNodeList): Updated to derive from TreeNodeList,
              since NodeList is now a simpler abstract class.
              (WebCore::TagNodeList::elementMatches): Updated for name and parameter change.
              (WebCore::Node::registerNodeList): Changed type from NodeList to TreeNodeList.
              (WebCore::Node::unregisterNodeList): Ditto.
              * dom/NodeList.h: Broke NodeList into a simpler base class and a derived class
              with the machinery for iterating a tree, called TreeNodeList.
              * dom/NodeList.cpp:
              (WebCore::NodeList::~NodeList): Added.
              (WebCore::NodeList::itemWithName): Factored out of the old itemWithName.
              (WebCore::TreeNodeList::TreeNodeList): Renamed from NodeList.
              (WebCore::TreeNodeList::~TreeNodeList): Ditto.
              (WebCore::TreeNodeList::recursiveLength): Ditto.
              (WebCore::TreeNodeList::itemForwardsFromCurrent): Ditto.
              (WebCore::TreeNodeList::itemBackwardsFromCurrent): Ditto.
              (WebCore::TreeNodeList::recursiveItem): Ditto.
              (WebCore::TreeNodeList::itemWithName): Factored half of this into this function,
              the other half in NodeList::itemWithName.
              (WebCore::TreeNodeList::rootNodeAttributeChanged): Added. No longer inline.
              (WebCore::TreeNodeList::rootNodeChildrenChanged): Renamed from NodeList.
              * html/HTMLFormElement.h: Added formElementNameChanged and oldNamedElement
              fucntions, and a map called m_oldNames. Also removed m_boundary, which I
              thought I had already done.
              * html/HTMLFormElement.cpp:
              (WebCore::HTMLFormElement::HTMLFormElement): Initialize m_oldNames to 0.
              Switched the rest of the members to initialization syntax.
              (WebCore::HTMLFormElement::~HTMLFormElement): Delete m_oldNames.
              (WebCore::HTMLFormElement::formElementNameChanged): Added. Stores a reference
              to one element under each of its old names.
              (WebCore::HTMLFormElement::oldNamedElement): Added. Returns the old element
              that once had a given name.
              * html/HTMLGenericFormElement.h:
              * html/HTMLGenericFormElement.cpp:
              (WebCore::HTMLGenericFormElement::parseMappedAttribute): When the name
              attribute changes, tell the form about the old name.
              (WebCore::HTMLGenericFormElement::insertedIntoTree): When telling a form
              about an element, also store away the old name so that we can use it
              when the name changes later.
              * html/HTMLInputElement.cpp:
              (WebCore::HTMLInputElement::parseMappedAttribute): Added a call to the
              base class in the nameAttr case, so the code in HTMLGenericFormElement
              above will get called in the input element case.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20148 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • weinig's avatar
      Reviewed by Lars. · fadffa59
      weinig authored
              Update text in tests to match expected output.
              * fast/dom/gc-6-expected.txt:
              * fast/dom/gc-6.html:
              * fast/dom/gc-7-expected.txt:
              * fast/dom/gc-7.html:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20147 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • antti's avatar
      LayoutTests: · 3b2fd75c
      antti authored
              Reviewed by Alexey.
              Test for DOS using composed character.
              * fast/text/large-text-composed-char-dos-expected.txt: Added.
              * fast/text/large-text-composed-char-dos.html: Added.
              Reviewed by Alexey.
              Alexey spotted a DOS by using string of 64k unbreakable character in
              fix for http://bugs.webkit.org/show_bug.cgi?id=12833
              * dom/Text.cpp:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20146 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • thatcher's avatar
      Reviewed by Tim H. · aec8187f
      thatcher authored
              - fix test results for http://bugs.webkit.org/show_bug.cgi?id=13054
                Layout tests results require updates after JavaScript wrapper class name fixes
              * fast/dom/gc-6-expected.txt: Renamed DOMHTMLElement to HTMLElement.
              * fast/dom/gc-7-expected.txt: Ditto.
              * fast/dom/prototype-chain-expected.txt: Renamed DOMHTMLElementPrototype to HTMLElementPrototype.
              * fast/dom/undetectable-document-all-expected.txt: Renamed Collection to HTMLCollection.
              * fast/dom/wrapper-classes-expected.txt: Updated for change to output for string comparison failure
              in fast/js/resources/js-test-pre.js.
              * fast/events/mouseclick-target-and-positioning-expected.txt: Renamed DOMHTMLElement to HTMLElement.
              * fast/tokenizer/external-script-document-write-expected.checksum: Ditto.
              * fast/tokenizer/external-script-document-write-expected.png: Ditto.
              * fast/tokenizer/external-script-document-write-expected.txt: Ditto.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20145 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  7. 12 Mar, 2007 4 commits