Timeline


and

03/14/07:

23:42 Changeset [20210] by andersca
  • 2 edits in trunk/WebKit

Reviewed by Dave Hyatt.

Don't add the data twice, it's also done by didReceiveData.


  • WebCoreSupport/WebFrameLoaderClient.mm: (WebFrameLoaderClient::deliverArchivedResources):
23:30 Changeset [20209] by oliver
  • 3 edits
    2 adds in trunk

2007-03-14 Oliver Hunt <oliver@apple.com>

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: (WebCore::documentFragmentFromDragData):

LayoutTests:

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.
22:07 Changeset [23079] by aroben
  • 2 edits in branches/WindowsMerge/WebKitTools

Rubberstamped by Anders.

  • DumpRenderTree/DumpRenderTree.vcproj/DumpRenderTree/DumpRenderTree.cpp: (runTest): Initialize done to false just like Mac does.
21:59 Changeset [20208] by andersca
  • 2 edits in trunk/WebKit

Fix segmentation fault when running layout tests.

Remove bogus check that that I added on purpose to see how good Geoff is at spotting mistakes when reviewing code.
(Turns out he's not that good!)


  • WebView/WebDocumentLoaderMac.mm: (WebDocumentLoaderMac::increaseLoadCount):
21:58 Changeset [23078] by aroben
  • 8 edits in branches/WindowsMerge/WebKitTools

Fixed line-endings and svn properties on DRT files.

21:55 Changeset [23077] by aroben
  • 6 edits in branches/WindowsMerge/WebKitTools

Reviewed by Anders.

Make DRT on Windows behave more like DRT on Mac with respect to
waitUntilDone()/waitUntilDone().

  • DumpRenderTree/DumpRenderTree.vcproj/DumpRenderTree/DumpRenderTree.cpp: Added "done" and "topLoadingFrame" globals to match Mac, removed readyToDump. (dump): Set done to true. (runTest): Removed readyToDump, initialized topLoadingFrame.
  • DumpRenderTree/DumpRenderTree.vcproj/DumpRenderTree/DumpRenderTree.h: Added extern declarations for globals.
  • DumpRenderTree/DumpRenderTree.vcproj/DumpRenderTree/LayoutTestController.cpp: (notifyDoneCallback): Changed condition to match Mac.
  • DumpRenderTree/DumpRenderTree.vcproj/DumpRenderTree/WaitUntilDoneDelegate.cpp: (WaitUntilDoneDelegate::didStartProvisionalLoadForFrame): Set topLoadingFrame. (WaitUntilDoneDelegate::locationChangeDone): Ported from Mac. (WaitUntilDoneDelegate::didFinishLoadForFrame): Call locationChangeDone. (WaitUntilDoneDelegate::didFailLoadWithError): Ditto.
  • DumpRenderTree/DumpRenderTree.vcproj/DumpRenderTree/WaitUntilDoneDelegate.h: Moved implementation of didFailLoadWithError to .cpp file.
21:09 Changeset [20207] by kmccullo
  • 2 edits in trunk/WebKitSite

Reviewed by .

Silly wrapping change for testing a post-commit hook change.

  • contact.html:
21:00 Changeset [20206] by andersca
  • 3 edits in trunk/WebKit

Reviewed by Geoff.

http://bugs.webkit.org/show_bug.cgi?id=13076
REGRESSION: Multiple loading tabs cause assertion in WebDocumentLoaderMac::decreaseLoadCount(unsigned long)

Store the identifier set in the document loader since identifiers are per-webview and not global.


  • WebView/WebDocumentLoaderMac.h:
  • WebView/WebDocumentLoaderMac.mm: (WebDocumentLoaderMac::WebDocumentLoaderMac): (WebDocumentLoaderMac::attachToFrame): (WebDocumentLoaderMac::increaseLoadCount): (WebDocumentLoaderMac::decreaseLoadCount):
20:42 Changeset [20205] by kmccullo
  • 2 edits in trunk/JavaScriptCore

Reviewed by .

  • Fixed one more build breakage
  • kjs/date_object.cpp: (KJS::formatLocaleDate):
20:23 Changeset [20204] by kmccullo
  • 3 edits in trunk/JavaScriptCore

Reviewed by .

  • Fixed a build breakage.
  • kjs/DateMath.cpp:
  • kjs/date_object.cpp: (KJS::formatLocaleDate): (KJS::DateObjectImp::construct):
19:21 Changeset [20203] by kmccullo
  • 13 edits in trunk

JavaScriptCore:

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. rdar://problem/5055038
  • kjs/DateMath.cpp: Fix DST to match spec better. (KJS::getCurrentUTCTime): (KJS::mimimumYearForDST): (KJS::maximumYearForDST): (KJS::equivalentYearForDST): (KJS::getDSTOffset):
  • kjs/DateMath.h: Consolodated common funtionality.
  • kjs/date_object.cpp: Consolodated common functionality. (KJS::formatLocaleDate): (KJS::DateObjectImp::construct):
  • 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.

LayoutTests:

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:
18:36 Changeset [20202] by weinig
  • 3 edits
    5 adds in trunk

LayoutTests:

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.

WebCore:

Reviewed by Hyatt.

Test: fast/loader/text-document-wrapping.html

  • loader/TextDocument.cpp: (WebCore::TextTokenizer::write): Specified word-wrap:break-word for the <pre> element.
18:22 Changeset [20201] by harrison
  • 2 edits in trunk/WebKit

Reviewed by Maciej.

<rdar://problem/5009625> REGRESSION: Aperture 1.5: Can't select entire line of text after correcting a misspelled word

  • WebCoreSupport/WebEditorClient.mm: (WebEditorClient::respondToChangedSelection):
  • WebCoreSupport/WebFrameBridge.mm: Provide compatibility by not sending WebViewDidChangeSelectionNotification if the app is Aperture and is linked against WebKit 2.0.
18:22 Changeset [20200] by weinig
  • 3 edits
    4 adds in trunk

LayoutTests:

Reviewed by Hyatt.

  • 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.

WebCore:

Reviewed by Hyatt.

Test: fast/text/whitespace/pre-wrap-last-char.html

  • rendering/bidi.cpp: (WebCore::RenderBlock::findNextLineBreak): Undid the change from r15617.
17:31 Changeset [23076] by adele
  • 2 edits in branches/WindowsMerge/WebKitWin

WebKitWin:

Reviewed by Ada.

Allow empty commands to be sent by doTextFieldCommandFromEvent. Our autocomplete code relies on this.

  • WebEditorClient.cpp: (WebEditorClient::doTextFieldCommandFromEvent):
17:28 Changeset [20199] by hyatt
  • 2 edits in trunk/WebCore

Add asserts to help catch double refs and double derefs of CachedResources.

Reviewed by mjs

  • loader/CachedResource.cpp: (WebCore::CachedResource::ref): (WebCore::CachedResource::deref):
16:40 Changeset [20198] by aliceli1
  • 2 edits in trunk/WebCore

Rubber-stamped by Hyatt.

Adding null check to prevent the crash that happens on 2nd run of iBench HTML load test

  • loader/icon/IconDataCache.cpp: (WebCore::IconDataCache::writeToDatabase):
15:45 Changeset [23075] by andersca
  • 2 edits in branches/WindowsMerge/WebCore

Reviewed by Adam.

Use CFURLResponseCopySuggestedFilename.


  • platform/network/cf/ResourceResponseCFNet.cpp: (WebCore::suggestedFilenameForResponse):
14:49 Changeset [23074] by aroben
  • 6 edits in branches/WindowsMerge/WebKitTools

Reviewed by Anders.

Use Mac fonts when running regression tests to match Mac's metrics.

This makes many layout tests pass when run against results generated on the Mac.

14:47 Changeset [20197] by adele
  • 2 edits in trunk/WebCore

Reviewed by Adam.

Fix for <rdar://problem/5062898> REGRESSION: autocomplete window in text fields doesn't come up

When we moved the initialization of a bunch of variables in the HTMLFormElement constructor, m_autocomplete accidently got initialized to false.

  • html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::HTMLFormElement):
14:45 Changeset [20196] by sfalken
  • 2 edits in trunk/WebCore

2007-03-14 Steve Falkenburg <sfalken@apple.com>

Reviewed by Adam.

Added missing null check in case this is called on a subframe
that hasn't started loading.

  • page/Frame.cpp: (WebCore::Frame::setMarkedTextMatchesAreHighlighted): Check for a null document.
14:43 Changeset [20195] by andersca
  • 4 edits in trunk/WebKit

Reviewed by Geoff.

<rdar://problem/5058714>
http://bugs.webkit.org/show_bug.cgi?id=13050


World leaks seen on Leopard after opening then closing tab (13050)

Add a hash set to prevent the load count to be increased twice for the same resource.


  • WebCoreSupport/WebFrameLoaderClient.mm: (WebFrameLoaderClient::dispatchWillSendRequest): (WebFrameLoaderClient::dispatchDidFinishLoading): (WebFrameLoaderClient::dispatchDidFailLoading):
  • WebView/WebDocumentLoaderMac.h:
  • WebView/WebDocumentLoaderMac.mm: (loadingResources): (WebDocumentLoaderMac::increaseLoadCount): (WebDocumentLoaderMac::decreaseLoadCount):
14:43 Changeset [23073] by sfalken
  • 2 edits in branches/WindowsMerge/WebKitWin

2007-03-14 Steve Falkenburg <sfalken@apple.com>

Reviewed by Lou, Adam.

<rdar://problem/5050470> Reproducible crash doing find on page at cnn.com


Add frame->document() null checks in cases where frame could be a
sub-frame that hasn't started loading yet.

  • WebView.cpp: (WebView::rectsForTextMatches): Add null check
13:53 Changeset [23072] by aroben
  • 2 edits in branches/WindowsMerge/WebCore

Reviewed by Hyatt.

Use CG to get xHeight.

  • platform/win/FontDataWin.cpp: (WebCore::scaleEmToUnits): Made robust against divide-by-zero errors. (WebCore::FontData::platformInit): Ported Mac code to get xHeight using CG.
13:38 Changeset [20194] by antti
  • 2 edits in trunk/WebCore

Reviewed by Geoff.

Fix http://bugs.webkit.org/show_bug.cgi?id=13060
REGRESSION: Repro ASSERT failure in Cache::adjustSize running layout tests
<rdar://5060208>


Script evaluation may have dereffed the CachedScript object already, causing double deref and
eventually m_liveResourcesSize underflow.

  • html/HTMLScriptElement.cpp: (WebCore::HTMLScriptElement::notifyFinished):
13:32 Changeset [20193] by adele
  • 7 edits in trunk

WebCore:

Reviewed by Darin.

Added InsertTab, InsertBacktab, InsertLineBreak, and InsertNewline to the editing command table.
Added Event parameter to execCommand, and to all of the enabled and exec functions. Right now,
the event is only used by the newly added commands. But in the future, many (and possibly all) of
these editing commands will need to consider the event so they are applied to the correct selection.

  • WebCore.exp:
  • editing/Editor.cpp: (WebCore::execCopy): (WebCore::execCut): (WebCore::execDelete): (WebCore::execBackwardDelete): (WebCore::execForwardDelete): (WebCore::execMoveBackward): (WebCore::execMoveBackwardAndModifySelection): (WebCore::execMoveUpByPageAndModifyCaret): (WebCore::execMoveDown): (WebCore::execMoveDownAndModifySelection): (WebCore::execMoveForward): (WebCore::execMoveForwardAndModifySelection): (WebCore::execMoveDownByPageAndModifyCaret): (WebCore::execMoveLeft): (WebCore::execMoveLeftAndModifySelection): (WebCore::execMoveRight): (WebCore::execMoveRightAndModifySelection): (WebCore::execMoveToBeginningOfDocument): (WebCore::execMoveToBeginningOfDocumentAndModifySelection): (WebCore::execMoveToBeginningOfSentence): (WebCore::execMoveToBeginningOfSentenceAndModifySelection): (WebCore::execMoveToBeginningOfLine): (WebCore::execMoveToBeginningOfLineAndModifySelection): (WebCore::execMoveToBeginningOfParagraph): (WebCore::execMoveToBeginningOfParagraphAndModifySelection): (WebCore::execMoveToEndOfDocument): (WebCore::execMoveToEndOfDocumentAndModifySelection): (WebCore::execMoveToEndOfSentence): (WebCore::execMoveToEndOfSentenceAndModifySelection): (WebCore::execMoveToEndOfLine): (WebCore::execMoveToEndOfLineAndModifySelection): (WebCore::execMoveToEndOfParagraph): (WebCore::execMoveToEndOfParagraphAndModifySelection): (WebCore::execMoveParagraphBackwardAndModifySelection): (WebCore::execMoveParagraphForwardAndModifySelection): (WebCore::execMoveUp): (WebCore::execMoveUpAndModifySelection): (WebCore::execMoveWordBackward): (WebCore::execMoveWordBackwardAndModifySelection): (WebCore::execMoveWordForward): (WebCore::execMoveWordForwardAndModifySelection): (WebCore::execMoveWordLeft): (WebCore::execMoveWordLeftAndModifySelection): (WebCore::execMoveWordRight): (WebCore::execMoveWordRightAndModifySelection): (WebCore::execPaste): (WebCore::execSelectAll): (WebCore::execToggleBold): (WebCore::execToggleItalic): (WebCore::execRedo): (WebCore::execUndo): (WebCore::execInsertTab): (WebCore::execInsertBacktab): (WebCore::execInsertNewline): (WebCore::execInsertLineBreak): (WebCore::enabled): (WebCore::canPaste): (WebCore::hasEditableSelection): (WebCore::hasEditableRangeSelection): (WebCore::hasRangeSelection): (WebCore::hasRichlyEditableSelection): (WebCore::canRedo): (WebCore::canUndo): (WebCore::CommandEntry::): (WebCore::Editor::toggleBold):

(WebCore::Editor::execCommand): Added optional event parameter.
(WebCore::Editor::insertText): Added. Calls handleTextInputEvent.
(WebCore::Editor::insertTextWithoutSendingTextEvent): Renamed from insertText.

Performs the actual insertion without dispatching any event.

  • editing/Editor.h:
  • page/EventHandler.cpp: (WebCore::EventHandler::defaultTextInputEventHandler): Call insertTextWithoutSendingTextEvent.

WebKit:

Reviewed by Darin.

Removed _insertTextWithEvent, _insertNewlineWithEvent, and _insertTextWithEvent.
Instead, use execCommand and insertText methods on the Editor.

  • WebView/WebHTMLView.mm: (-[WebHTMLView insertTab:]): (-[WebHTMLView insertBacktab:]): (-[WebHTMLView insertNewline:]): (-[WebHTMLView insertLineBreak:]): (-[WebHTMLView insertParagraphSeparator:]): (-[WebHTMLView insertNewlineIgnoringFieldEditor:]): (-[WebHTMLView insertTabIgnoringFieldEditor:]): (-[WebHTMLView yank:]): (-[WebHTMLView yankAndSelect:]): (-[WebHTMLView doCommandBySelector:]): (-[WebHTMLView insertText:]):
13:32 Changeset [23071] by adele
  • 6 edits in branches/WindowsMerge/WebKitWin

WebKitWin:

Reviewed by Darin.

WebKit part of fix for <rdar://problem/5057371> REGRESSION: Shift-selection stopped working in text fields

This fixes doCommandBySelector to take a command string instead of a key code.

  • Interfaces/IWebEditingDelegate.idl: Changed parameter to BSTR.
  • Interfaces/IWebFormDelegate.idl: ditto.
  • WebEditorClient.cpp: (WebEditorClient::doTextFieldCommandFromEvent): Calls doCommandBySelector with a BString that it gets from interpretKeyEvent instead of a key code. (WebEditorClient::textWillBeDeletedInTextField): Calls doCommandBySelector with a BString to represent the BackwardDelete command. (WebEditorClient::handleKeypress): Calls handleEditingKeyboardEvent with just the KeyboardEvent.
  • WebView.cpp: Added commands that will be used by doCommandBySelector to the table (Cancel, InsertTab, InsertBacktab, InsertNewline). (WebView::interpretKeyEvent): Added. Returns a command string for a KeyboardEvent. Removed static editCommandForKey. (WebView::handleEditingKeyboardEvent): Call Editor methods instead of calling handleTextInputEvent directly.
  • WebView.h:
13:06 Changeset [20192] by justing
  • 1 edit in trunk/LayoutTests/fast/lists/drag-into-marker-expected.txt

I forgot to update this expected result in my previous checkin.

12:32 Changeset [20191] by justing
  • 26 edits in trunk

LayoutTests:

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:

WebCore:

Reviewed by darin


~3x speedup pasting 5k lines of rich text:
http://shakespeare.mit.edu/hamlet/full.html
~2x speedup pasting 10k lines of plain text


  • css/CSSComputedStyleDeclaration.cpp: (WebCore::computedStyle): Added for convenience.
  • css/CSSComputedStyleDeclaration.h:
  • editing/ReplaceSelectionCommand.cpp: (WebCore::ReplaceSelectionCommand::removeRedundantStyles): 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.
11:50 Changeset [20190] by andersca
  • 2 edits in trunk/WebCore

Reviewed by Ada.

Make sure to call ResourceLoader::didReceiveData to ensure that there's a shared buffer with the resource
data, since SubresourceLoaderClients now make use of that buffer.


  • loader/SubresourceLoader.cpp: (WebCore::SubresourceLoader::didReceiveData):
10:56 Changeset [23070] by andersca
  • 5 edits in branches/WindowsMerge

WebCoreWin:

Build fixes.


  • platform/graphics/win/ImageWin.cpp: (WebCore::Image::loadPlatformResource):
  • platform/win/EditorWin.cpp:

WebKitWin:

Build fixes.


  • WebDataSource.cpp: (WebDataSource::subresourceForURL):
  • WebKitDLL.cpp: (loadResourceIntoBuffer):
10:38 Changeset [20189] by andersca
  • 3 edits in trunk/WebCore

Get the size from the shared buffer.


  • platform/graphics/cg/ImageSourceCG.cpp: (WebCore::ImageSource::setData):
  • platform/graphics/cg/PDFDocumentImage.cpp: (WebCore::PDFDocumentImage::dataChanged):
10:25 Changeset [20188] by weinig
  • 4 edits
    4 adds in trunk

LayoutTests:

Reviewed by Hyatt, thumbs up by Darin.

  • 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.

WebCore:

Reviewed by Hyatt, thumbs up by Darin.

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.
06:38 Changeset [20187] by lars
  • 4 edits in trunk/WebCore

Reviewed by Antti.

Fix the Qt build.
Add a getter to SharedBuffer that returns a reference to the internal
Vector to avoid an extra copy of the data.

04:37 Changeset [20186] by antti
  • 3 edits
    4 adds in trunk

LayoutTests:

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.

WebCore:

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
http://trac.webkit.org/projects/webkit/changeset/20103

  • rendering/RootInlineBox.cpp: (WebCore::RootInlineBox::addHighlightOverflow):
04:02 Changeset [20185] by hyatt
  • 4 edits in trunk/WebCore

Tweak the data() functions of stylesheets and scripts to be internally consistent.

  • loader/CachedCSSStyleSheet.cpp: (WebCore::CachedCSSStyleSheet::data):
  • loader/CachedScript.cpp: (WebCore::CachedScript::data):
  • loader/CachedXSLStyleSheet.cpp: (WebCore::CachedXSLStyleSheet::data):
02:20 Changeset [20184] by hyatt
  • 3 edits in trunk/WebCore

Fix Radar 5050688.

For large animated GIFs, destroy and recreate the source for every animation frame. This keeps
the memory consumption down while giant images are animating.

Reviewed by andersca

  • platform/graphics/BitmapImage.cpp: (WebCore::BitmapImage::BitmapImage): (WebCore::BitmapImage::destroyDecodedData): (WebCore::BitmapImage::dataChanged): (WebCore::BitmapImage::advanceAnimation):
  • platform/graphics/BitmapImage.h:
01:49 Changeset [20183] by hyatt
  • 3 edits in trunk/WebCore

Make sure to use CFDataCreateWithBytesNoCopy where we can.

Reviewed by andersca

  • platform/graphics/cg/ImageSourceCG.cpp: (WebCore::ImageSource::setData):
  • platform/graphics/cg/PDFDocumentImage.cpp: (WebCore::PDFDocumentImage::dataChanged):
01:07 Changeset [20182] by hyatt
  • 40 edits in trunk

WebCore:

Fix for bugzilla bug 13050 and also radar p1 5050645.

This patch reworks resource loading to avoid having redundant buffers in the icon database and in cached
images in the WebCore cache. It also avoids overcopying in top-level image documents and in the icon
database.

There is now only one SharedBuffer for a resource and everybody observes that buffer now instead of ever
making their own. Even ImageIO uses the SharedBuffer while decoding.

The page in 13050 dropped from 145mb down to 45mb of memory use with this change for a stunning savings
of 100mb.

Reviewed by olliej, mjs

  • WebCore.exp:
  • loader/CachedCSSStyleSheet.cpp: (WebCore::CachedCSSStyleSheet::data):
  • loader/CachedCSSStyleSheet.h:
  • loader/CachedImage.cpp: (WebCore::CachedImage::data):
  • loader/CachedImage.h:
  • loader/CachedResource.cpp: (WebCore::CachedResource::CachedResource): (WebCore::CachedResource::~CachedResource):
  • loader/CachedResource.h: (WebCore::CachedResource::data):
  • loader/CachedScript.cpp: (WebCore::CachedScript::data):
  • loader/CachedScript.h:
  • loader/CachedXSLStyleSheet.cpp: (WebCore::CachedXSLStyleSheet::data):
  • loader/CachedXSLStyleSheet.h:
  • loader/DocLoader.cpp: (WebCore::DocLoader::checkCacheObjectStatus):
  • loader/ImageDocument.cpp: (WebCore::ImageTokenizer::writeRawData): (WebCore::ImageTokenizer::finish):
  • loader/icon/IconDataCache.cpp: (WebCore::IconDataCache::setImageData): (WebCore::IconDataCache::writeToDatabase):
  • loader/icon/IconDataCache.h:
  • loader/icon/IconDatabase.cpp: (WebCore::IconDatabase::imageDataForIconURL): (WebCore::IconDatabase::iconForPageURL): (WebCore::IconDatabase::setIconDataForIconURL): (WebCore::IconDatabase::setHaveNoIconForIconURL): (WebCore::IconDatabase::imageDataForIconURLQuery):
  • loader/icon/IconDatabase.h:
  • loader/icon/IconLoader.cpp: (WebCore::IconLoader::startLoading): (WebCore::IconLoader::didReceiveResponse): (WebCore::IconLoader::didReceiveData): (WebCore::IconLoader::didFail): (WebCore::IconLoader::finishLoading): (WebCore::IconLoader::clearLoadingState):
  • loader/icon/IconLoader.h:
  • loader/icon/SQLStatement.cpp: (WebCore::SQLStatement::getColumnBlobAsVector): (WebCore::SQLStatement::isExpired):
  • loader/icon/SQLStatement.h:
  • loader/loader.cpp: (WebCore::Loader::didFinishLoading): (WebCore::Loader::didReceiveData):
  • page/mac/WebCoreFrameBridge.mm: (-[WebCoreFrameBridge getData:andResponse:forURL:]): (-[WebCoreFrameBridge getAllResourceDatas:andResponses:]):
  • platform/SharedBuffer.h: (WebCore::SharedBuffer::isEmpty):
  • platform/graphics/BitmapImage.cpp: (WebCore::BitmapImage::destroyDecodedData): (WebCore::BitmapImage::dataChanged):
  • platform/graphics/BitmapImage.h:
  • platform/graphics/Image.cpp: (WebCore::Image::setData):
  • platform/graphics/Image.h: (WebCore::Image::dataChanged): (WebCore::Image::data):
  • platform/graphics/ImageSource.h:
  • platform/graphics/cg/ImageSourceCG.cpp: (WebCore::ImageSource::setData):
  • platform/graphics/cg/PDFDocumentImage.cpp: (WebCore::PDFDocumentImage::dataChanged):
  • platform/graphics/cg/PDFDocumentImage.h:
  • platform/graphics/mac/ImageMac.mm: (WebCore::Image::loadPlatformResource):
  • platform/graphics/svg/SVGImage.cpp: (WebCore::SVGImage::setData):
  • platform/mac/PasteboardMac.mm: (WebCore::fileWrapperForImage):

WebKit:

Fixes to ensure that the resource loader's shared buffer can always be used.

Reviewed by olliej, mjs

  • Misc/WebIconDatabase.mm: (-[WebIconDatabase _convertToWebCoreFormat]):
  • WebCoreSupport/WebFrameLoaderClient.mm: (WebFrameLoaderClient::deliverArchivedResources):

03/13/07:

22:37 Changeset [20181] by justing
  • 14 edits
    8 adds in trunk

LayoutTests:

Reviewed by darin


<rdar://problem/5046875>
Gmail Editor: Applying alignment to selected text in message also applies alignment to signature

Added:

  • 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:

WebCore:

Reviewed by darin


<rdar://problem/5046875>
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: (WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary): 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:
22:00 Changeset [20180] by oliver
  • 6 edits
    2 adds in trunk

2007-03-13 Oliver Hunt <oliver@apple.com>

Reviewed by Brady.

WebCore:

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:]):

WebKit:

Modify subresourceForURL to take NSString argument
so we can avoid [NSURL absoluteString]

  • WebView/WebDataSource.mm: (-[WebDataSource subresourceForURL:]):

LayoutTests:

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.
21:44 Changeset [20179] by beidson
  • 3 edits in trunk/WebKit

Rubberstamped by Alice

Meant to be part of my previous checkin... pruning unused code from WebKit

  • WebView/WebFrame.mm: Removed _canCachePage
  • WebView/WebFrameInternal.h: Ditto
20:59 Changeset [20178] by beidson
  • 3 edits in trunk/WebCore

Reviewed by Anders

<rdar://problem/5048818> - REGRESSION: Incompletely loaded resources being saved to the object cache

Due to a subtle change in loader behavior back in 10904, we would stop all loaders before calling
didFail() on them in the Cache loader. As a result, we basically cleared all of the Subresource Loaders
out of the Cache loader before more properly failing them as errored out. The result? Partially loaded
resources being cached.


Since Loader::didFail() both calls error() on the object *and* removes the loader, the solution is to call
didFail() for all cancelled loaders instead of *only* removing them from the set of active loaders.


In addition, pages that didn't completely load were being saved to the back/forward cache. To fix that,
I added a null check on the DocumentLoader's error to see if the page ended in an error, or did indeed
completely load.

Note that the layout test for this - if possible - will require other enhancements including possibly adding
support for window.stop(). That task is documented in <rdar://problem/5061826>

  • loader/FrameLoader.cpp: (WebCore::FrameLoader::provisionalLoadStarted): Fixed a few bugs relating to my original BFCache rewrite to more perfectly restore the original behavior - including only caching HTML documents via the m_client->canCachePage() call (WebCore::FrameLoader::canCachePage): Don't make the call to m_client->canCachePage() as that serves a different purpose
    • Check the mainDocumentError to see if the load ended in error as a further criteria in determining the cachability of a page
  • loader/loader.cpp: (WebCore::Loader::cancelRequests): Call didFail(cancelledError()) instead of just removing the loaders from the loaders-in-progress set. This adds the effect of properly cleaning up the cached object.
20:56 Changeset [20177] by bdakin
  • 6 edits
    4 adds in trunk

WebCore:

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: (WebCore::RenderBlock::makeChildrenNonInline): 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 RenderBlock::makeChildrenNonInline()
  • 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().

LayoutTests:

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.
19:42 Changeset [23069] by aroben
  • 2 edits in branches/WindowsMerge/WebCore

WebCoreWin:

Reviewed by Anders.

  • platform/win/FontDataWin.cpp: (WebCore::scaleEmToUnits): Ported from FontDataMac. (WebCore::FontData::platformInit): Use CG for metrics, and apply Mac's line-height hack for Times, Helvetica, and Courier. (WebCore::FontData::platformWidthForGlyph): Call wkGetGlyphAdvances to use some CG SPI to match Mac.
19:37 Changeset [20176] by aroben
  • 2 edits in trunk/WebCore

Reviewed by Anders.

  • platform/FontData.h: Added m_isSystemFont parameter to match NSFont.
17:39 Changeset [20175] by harrison
  • 3 edits in trunk/LayoutTests

<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

Updated results.

  • editing/deleting/delete-to-end-of-paragraph-expected.checksum:
  • editing/deleting/delete-to-end-of-paragraph-expected.txt:
16:55 Changeset [20174] by bdakin
  • 1 edit in trunk/WebCore/ChangeLog

typo fix. thanks aroben!

16:51 Changeset [20173] by bdakin
  • 4 edits in trunk

WebCore:

Reviewed by Maciej.

Export DocumentLoader::setFrame(). Part for fix for <rdar://
problem/4277074> 8F32: Help Viewer crashed on clicking link -
KHTMLView::viewportMouseReleaseEvent (12647)

  • WebCore.exp:

WebKit:

Reviewed by Maciej.

Fix for <rdar://problem/4277074> 8F32: Help Viewer crashed on
clicking link - KHTMLView::viewportMouseReleaseEvent (12647)

Re-set the DocumentLoader's frame when loading it from the page
cache before setting the document view.

  • WebCoreSupport/WebFrameLoaderClient.mm: (WebFrameLoaderClient::setDocumentViewFromPageCache):
16:32 Changeset [23068] by sfalken
  • 1 edit in branches/WindowsMerge/WebKitWin/WebKit.vcproj/VERSION

Bump version for submit

16:29 Changeset [20172] by sfalken
  • 1 copy in tags/Safari-521.35.8b

New tag.

16:25 Changeset [20171] by darin
  • 1 edit in trunk/WebCore/ChangeLog

of -> be

16:18 Changeset [20170] by darin
  • 6 edits
    12 adds in trunk

LayoutTests:

Reviewed by Maciej.

  • 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.

WebCore:

Reviewed by Maciej.

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++ constant. (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.
16:07 Changeset [20169] by hyatt
  • 3 edits in trunk/WebCore

Two more cleanup fixes to the cache. Don't call destroyDecodedData in the BitmapImage destructor, since
clearing the image source and calling setData on it again causes it to do an extra copy of the encoded
data. Since we're about to be destroyed this is just wasteful.

When the cache prunes, don't allow it to destroy the decoded data of an image that is still actively loading,
since we've established that ImageIO can actually crash if you yank the rug out from under it like that.

Reviewed by ggaren

  • loader/Cache.cpp: (WebCore::Cache::prune):
  • platform/graphics/BitmapImage.cpp: (WebCore::BitmapImage::~BitmapImage):
15:46 Changeset [20168] by andersca
  • 2 edits in trunk/WebCore

Try fixing the Qt build.


  • editing/Editor.h: (WebCore::Editor::setStartNewKillRingSequence):
15:40 Changeset [20167] by thatcher
  • 8 edits in trunk

Reviewed by Geoff.

<rdar://problem/5057117> Spoof user agent on Yahoo.com with Safari and WebKit as version 4xx

  • Plugins/WebBaseNetscapePluginView.mm: (-[WebBaseNetscapePluginView userAgent]): Stop using the deprecated lossyCString method.
  • WebCoreSupport/WebFrameBridge.mm: Removed dead code, userAgentForURL: wasn't used.
  • WebCoreSupport/WebFrameLoaderClient.mm: (WebFrameLoaderClient::userAgent): Call WebView's _userAgentForURL:.
  • WebView/WebView.mm: (-[WebView _cachedResponseForURL:]): Call userAgentForURL: instead of _userAgent. (-[WebView userAgentForURL:]): Call _userAgentForURL:. (-[WebView _userAgentWithApplicationName:andWebKitVersion:]): New method to construct a UA. (-[WebView _computeUserAgent]): Ractored out into _userAgentWithApplicationName:andWebKitVersion: (-[WebView _userAgentForURL:]): Tail compare for Yahoo.com, and return a UA with an older WebKit version.
  • WebView/WebViewInternal.h: Declare _userAgentForURL:.
15:31 Changeset [20166] by harrison
  • 6 edits
    4 adds in trunk

LayoutTests:

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.
15:11 Changeset [20165] by hyatt
  • 2 edits in trunk/WebCore

Clean up the null image case in CachedImage::data to make sure the size totals will stay accurate.
I'm not convinced this case can even be hit, but I'm cleaning it up just in case.

  • loader/CachedImage.cpp: (WebCore::CachedImage::data):
15:10 Changeset [20164] by lars
  • 2 edits in trunk/LayoutTestResults

Add a test that currently crashes the Qt build.

15:03 Changeset [20163] by hyatt
  • 2 edits in trunk/WebCore

Reorder the call to allReferencesRemoved, since otherwise the live object size will become
incorrect.

  • loader/CachedResource.cpp: (WebCore::CachedResource::deref):
15:00 Changeset [20162] by lars
  • 2 edits in trunk/WebKitQt

Reviewed by George.

Don't try to load <object> tags with an invalid url.
Fixes LayoutTests/fast/dom/object-plugin-hides-properties.html
which hit an assertion in the frameloader.

14:57 Changeset [20161] by brmorris
  • 2 edits in S60/branches/3.1m/WebKit

brmorris, rs'd by sachin

DESC: merge of r20160 to s60's 3.1m branch. MLIO-6Y2BV3

14:54 Changeset [20160] by brmorris
  • 2 edits in S60/trunk/WebKit

brmorris, rubberstamped by sachin

DESC: Content change for SCM sync MLIO-6Y2BV3

  • BrowserView/src/LoadListeners.cpp: copyright update
14:41 Changeset [20159] by antti
  • 3 edits
    6 adds in trunk

LayoutTests:

Reviewed by Darin.


http://bugs.webkit.org/show_bug.cgi?id=11083
REGRESSION: Typing tab key fails to insert a tab character in Google Docs editable area
<rdar://problem/4757650>

  • 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.

WebCore:

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
<rdar://problem/4757650>


Allow inserting tabs in designMode. Backtab behaves like before (matches FF).

  • page/EventHandler.cpp: (WebCore::EventHandler::defaultTabEventHandler):
14:31 Changeset [20158] by thatcher
  • 1 edit in trunk/WebCore/WebCore.xcodeproj/project.pbxproj

Fixes builds using buildit.

13:25 Changeset [20157] by kmccullo
  • 2 edits in trunk/JavaScriptCore

Reviewed by .

  • Adding expected failures until the are truly fixed.
  • rdar://problem/5060302
  • tests/mozilla/expected.html:
13:18 Changeset [20156] by hyatt
  • 2 edits in trunk/WebCore

Fix two counting errors in the decoded size of objects in the WebCore cache. We need to explicitly
destroy decoded data when clearing out a partially loaded image that had an error, since the destructor
(although it does destroy the data) disconnects the observer so that the notification doesn't happen.

Some CachedImages aren't in the cache (like image documents). When the decoded size of such an image
changes we should not notify the cache, since - newsflash - we aren't actually in it.

Reviewed by ggaren

  • loader/CachedImage.cpp: (WebCore::CachedImage::clear): (WebCore::CachedImage::decodedSizeChanged):
13:06 Changeset [20155] by brmorris
  • 2 edits in S60/trunk/WebKit

spaltis, reviewed by padmae

DESC: 3.2 IDO: Got Error message for Non-Drm downloads: TSW HLUU-6YUVE6
Fix: Removal of old code to prevent setting HTTP Request Accept Header in case of WML page.
http://bugs.webkit.org/show_bug.cgi?id=13058

12:33 Changeset [20154] by thatcher
  • 1 edit in trunk/WebKitSite/contact.html

Silly wrapping change for testing a post-commit hook change.

12:20 Changeset [20153] by lars
  • 3 edits in trunk/WebKitQt

Fix 99% of the crashes in the loader I've been seeing lately.

11:22 Changeset [20152] by darin
  • 2 edits in trunk/WebCore

Reviewed by Tim Hatcher and John Sullivan.

  • fix <rdar://problem/4915303> CrashTracer: 36 crashes in Safari at com.apple.AppKit: -[NSView getRectsBeingDrawn:count:] + 502
  • page/mac/FrameMac.mm: (WebCore::Frame::imageFromRect): This was calling drawRect: directly, but NSView's getRectsBeingDrawn:count: method was never really safe to call unless it was AppKit that called your drawRect: method. Changed it to call drawSingleRect: instead. A little ugly, but seems to work and will almost certainly fix the bug.
09:53 Changeset [20151] by weinig
  • 3 edits in trunk/WebCore

Reviewed by Maciej.

Fixes: http://bugs.webkit.org/show_bug.cgi?id=12974

Call forgetGenericContext in JSSVGPathSeg destructor, otherwhise
we'll hit an ASSERT in a debug build, when running svg/custom/js-update-path-changes.svg
a few dozen times in a single WebKit instance. The ASSERT is good and just warns that
there was already a generic context pointer registered, and the new "to be registered"
object already exists, but pointing to a different object. That's because garbage collection
calls the JSSVGPathSeg destructor, but that didn't cleanup the generic context map.

Only JSSVGPathSeg is hit by this problem, as it's the only non SVGAnimated* type
using the generic context system while using a custom JSSVGPathSegList implementation.

Also cleanup JSSVGPathSegListCustom code to call the static forgetGenericContext
method instead of doing the same using custom code.

  • bindings/js/JSSVGPathSegListCustom.cpp: (WebCore::removeFromPathSegContextMap): (WebCore::JSSVGPathSegList::clear): (WebCore::JSSVGPathSegList::removeItem):
  • bindings/scripts/CodeGeneratorJS.pm:
08:12 Changeset [20150] by brmorris
  • 2 edits in S60/branches/3.1m/MemoryManager

spadma, Reviewed by Yongjun.

DESC: Browsers OOM Plug-in functionality is disabled HMAA-6Z3HMM
http://bugs.webkit.org/show_bug.cgi?id=13047

07:47 Changeset [20149] by darin
  • 2 edits in trunk/LayoutTests
  • fast/js/kde/RegExp-expected.txt: Fix the one other test affected by the js-test-pre.js change.
07:19 Changeset [20148] by darin
  • 21 edits
    2 adds in trunk

LayoutTests:

Reviewed by Adele.

  • 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.

WebCore:

Reviewed by Adele.

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.
07:17 Changeset [20147] by weinig
  • 5 edits in trunk/LayoutTests

Reviewed by Lars.

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:
06:36 Changeset [20146] by antti
  • 3 edits
    2 adds in trunk

LayoutTests:

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.

WebCore:

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: (WebCore::Text::createWithLengthLimit):
05:54 Changeset [20145] by thatcher
  • 10 edits in trunk/LayoutTests

Reviewed by Tim H.

  • 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.
03:13 Changeset [20144] by ddkilzer
  • 1 edit in trunk/WebCore/ChangeLog

Tweaked again.

03:11 Changeset [20143] by ddkilzer
  • 1 edit in trunk/WebCore/ChangeLog

Added bug references and a period.

03:03 Changeset [20142] by lars
  • 2 edits in trunk/WebCore

Fix the Qt build.

02:21 Changeset [20141] by bdash
  • 2 edits in trunk/WebKitTools

2007-03-13 Mark Rowe <mrowe@apple.com>

Reviewed by Maciej.

Have the nightly launcher prefer Safari found in /Applications or ~/Applications
if present, otherwise fall back on using LaunchServices to locate it elsewhere
on the system. The motivation for this is to make the behaviour of the nightly
builds more predictable on machines with multiple copies of Safari present.

  • WebKitLauncher/main.m: (locateSafariBundle): (main):
01:00 Changeset [20140] by rwlbuis
  • 2 edits in trunk/WebCore

Reviewed by Darin.

http://bugs.webkit.org/show_bug.cgi?id=12576
WebKit does not support xlink:show attributes

Make an exception for non-empty targets, these should be opened
in a new window, unless the value is _self.

00:32 Changeset [20139] by hyatt
  • 2 edits in trunk/WebCore

Double the encoded size of images for now. We do this to account for a bug in ImageIO where they hold
a separate copy of image data.

Reviewed by aroben

  • loader/CachedImage.cpp: (WebCore::CachedImage::data):

03/12/07:

21:24 Changeset [20138] by harrison
  • 6 edits in trunk

LayoutTests:

Reviewed by Darin.

<rdar://problem/4743256> ctrl-y key binding (yank) should do nothing when kill ring is empty

  • editing/pasteboard/emacs-cntl-y-001-expected.checksum:
  • editing/pasteboard/emacs-cntl-y-001-expected.png:
  • editing/pasteboard/emacs-cntl-y-001-expected.txt:
  • editing/pasteboard/emacs-cntl-y-001.html:

WebKit:

Reviewed by Darin.

<rdar://problem/4743256> ctrl-y key binding (yank) should do nothing when kill ring is empty

Test updated:

  • editing/pasteboard/emacs-cntl-y-001.html:


  • WebView/WebHTMLView.mm: (-[WebHTMLView yank:]): (-[WebHTMLView yankAndSelect:]): Do nothing if the killring is empty.
21:05 Changeset [20137] by kjk
  • 2 edits in trunk/WebCore

Not reviewed - gdk build fix.

  • platform/gdk/TemporaryLinkStubs.cpp: (SearchPopupMenu::enabled): add missing stub.
20:57 Changeset [23067] by darin
  • 2 edits in branches/WindowsMerge/WebCore
  • WebCore.vcproj/WebCore.vcproj: Added new JavaScript wrapper derived source files.
20:52 Changeset [20136] by ddkilzer
  • 2 edits in trunk/WebCore

WebCore:

Reviewed by Darin.

  • html/HTMLFormElement.cpp: (WebCore::getUniqueBoundaryString): Speculative fix: remove dashes from the boundary prefix that appear after non-dash characters.
20:48 Changeset [20135] by ddkilzer
  • 3 edits
    2 adds in trunk

LayoutTests:

Reviewed by Anders.

  • fast/loader/onunload-form-submit-crash-2-expected.txt: Added.
  • fast/loader/onunload-form-submit-crash-2.html: Added.

WebCore:

Reviewed by Anders.

Test: fast/loader/onunload-form-submit-crash-2.html

  • loader/DocumentLoader.cpp: (WebCore::DocumentLoader::finishedLoading): Added null check.
19:13 Changeset [20134] by andersca
  • 1 edit in trunk/LayoutTests/ChangeLog

Remove conflict marker.

19:11 Changeset [20133] by andersca
  • 1 edit
    1 add in trunk/LayoutTests

Add expected results.


  • fast/frames/frame-navigation-expected.txt: Added.
18:09 Changeset [20132] by andersca
  • 4 edits
    2 adds in trunk

LayoutTests:

Reviewed by Darin.

<rdar://problem/4900071>
http://bugs.webkit.org/show_bug.cgi?id=6454
ASSERTION: Navigating 'back' in frameset: !_private->previousItem (6454)

  • fast/frames/frame-navigation.html: Added.
  • fast/frames/resources/frame-navigation-child.html: Added.

WebCore:

Reviewed by Darin.

<rdar://problem/4900071>
http://bugs.webkit.org/show_bug.cgi?id=6454
ASSERTION: Navigating 'back' in frameset: !_private->previousItem (6454)

Change back the behavior of checkLoadComplete to traverse the entire frame tree instead of
just the parent frames of the current frame. This is needed in order to reset the previous history item
for all frames when doing a frame navigation. (This was changed in revision 11819)


  • loader/FrameLoader.cpp: (WebCore::FrameLoader::recursiveCheckLoadComplete): (WebCore::FrameLoader::checkLoadComplete):
  • loader/FrameLoader.h:
17:53 Changeset [20131] by justing
  • 3 edits
    4 adds in trunk

Reviewed by darin


<rdar://problem/5056619>
REGRESSION: Gmail Editor: Dragging text into Reply (textarea) field results in a crash at WebCore::InsertNodeBeforeCommand::doApply()


  • editing/SelectionController.cpp: (WebCore::removingNodeRemovesPosition): Added. (WebCore::SelectionController::nodeWillBeRemoved): Clear the selection if it's inside a shadow tree.
  • page/DragController.cpp: (WebCore::setSelectionToDragCaret): Return false to signal to clients that a drop shouldn't be performed if the second attempt to set a selection ends up in non-editable content.
17:49 Changeset [20130] by darin
  • 39 edits
    2 adds in trunk

LayoutTests:

Reviewed by Tim Hatcher.

  • added a test that checks the classes of wrappers created by both the JavaScript binding and the Objective-C binding
  • fast/dom/wrapper-classes-expected.txt: Added.
  • fast/dom/wrapper-classes.html: Added.
  • fast/js/resources/js-test-pre.js: Improve the format of the failure message when both the real results and expected results are strings.

WebCore:

Reviewed by Tim Hatcher.

  • fixed JavaScript wrapper classes to be correct for a variety of cases that a new test uncovered: was broken for at least 5 classes
  • fixed Objective-C wrapper classes to be correct for a variety of cases that a test case uncovered: was broken for ast least 50 classes
  • added missing DOM API for creating OverflowEvent and WheelEvent instances

Test: fast/dom/wrapper-classes.html

  • DerivedSources.make: Added missing bindings: HTMLCanvasElement for ObjC, CDATASection, Comment, and EntityReference for JavaScript.
  • WebCore.xcodeproj/project.pbxproj: Added those new generated files.
  • bindings/js/JSHTMLElementWrapperFactory.cpp: (WebCore::createJSHTMLWrapper): Corrected the wrapper classes for <keygen>, which needs an HTMLSelectElement wrapper, and <xmp>, which needs an HTMLPreElement wrapper.
  • bindings/objc/DOMInternal.h: Updated for new naming scheme. Also moved createDOMWrapper from the KJS namespace to the WebCore namespace.
  • bindings/objc/DOMUtility.mm: (KJS::createDOMWrapper): Broke the core function into a separate one, and left it in the KJS namespace because Objective-C++ rules make it impossible for it to work in the WebCore namespace. Used a macro-based implementation to cut down on repeated code, and added missing cases for Counter, HTMLOptionsCollection, Range, XPathExpression, XPathResult, Event, RGBColor, Rect, Window, DOMImplementation, NodeIterator, TreeWalker, and HTMLCollection. (WebCore::createDOMWrapper): The other half of the function.
  • bindings/objc/DOM.mm: (WebCore::createElementClassMap): Corrected the wrapper classes for <canvas>, which needs a DOMHTMLCanvasElement wrapper, <del>, which needs a DOMHTMLModElement wrapper, <embed>, which needs a DOMHTMLEmbedElement wrapper, <ins>, which needs a DOMHTMLModElement wrapper, <th>, which needs a DOMHTMLTableCellElement wrapper, and <xmp>, which needs an DOMHTMLPreElement wrapper. (+[DOMNode _wrapNode:]): Updated for new naming scheme. (+[DOMNode _wrapEventTarget:]): Ditto. (+[DOMNodeFilter _wrapNodeFilter:]): Ditto. (ObjCNodeFilterCondition::acceptNode): Ditto. (-[DOMDocument createNodeIterator:whatToShow:filter:expandEntityReferences:]): Ditto. (-[DOMDocument createTreeWalker:whatToShow:filter:expandEntityReferences:]): Ditto. (WebCore::ObjCEventListener::handleEvent): Ditto.
  • dom/Document.cpp: (WebCore::Document::createEvent): Added cases for OverflowEvent and WheelEvent.
  • dom/OverflowEvent.h: Added empty constructor and initOverflowEvent.
  • dom/OverflowEvent.cpp: (WebCore::OverflowEvent::OverflowEvent): Added. (WebCore::OverflowEvent::initOverflowEvent): Added.
  • dom/OverflowEvent.idl: Added initOverflowEvent.
  • bindings/objc/PublicDOMInterfaces.h: Added initOverflowEvent.
  • bindings/objc/DOMCSS.mm: (+[DOMStyleSheet _wrapStyleSheet:]): Updated for new naming scheme. (+[DOMCSSRule _wrapCSSRule:]): Corrected wrapper for CSSUnknownRule. (+[DOMCSSValue _wrapCSSValue:]): Updated for new naming scheme.
  • bindings/js/kjs_css.h: (KJS::DOMRGBColor::impl): Added. Used when making an ObjC wrapper. (KJS::DOMRect::impl): Ditto.
  • bindings/js/kjs_dom.cpp: (KJS::toJS): Corrected the wrapper classes for CDATASection, Comment, and EntityReference.
  • bindings/js/kjs_html.cpp: Corrected the class name for HTMLElement (was "DOMHTMLElement") and HTMLCollection (was "Collection").
  • bindings/objc/DOMImplementationFront.h:
  • bindings/objc/DOMImplementationFront.cpp: (WebCore::implementationFront): Added new overload that returns a front given a JavaScript wrapper. Needed by the code that makes the Objective-C wrapper.
  • bindings/objc/WebScriptObject.mm: (+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]): Updated since createDOMWrapper is now in the WebCore namespace.
  • bindings/scripts/CodeGeneratorObjC.pm: Update the naming scheme for the wrapper creation functions to use _wrapElement: rather then _elementWith: style. Removed now-unneeded special cases for things that needed to stay upper-case, since we don't have to do the whole lcfirst thing.
  • html/HTMLCanvasElement.idl: Added #if so we can successfully generate the Objective-C wrapper for this class, even though we can't yet handle the DOMObject return type.
  • html/HTMLOptionsCollection.idl: Added GenerateNativeConverter so we get an appropriate toJS function.
  • bindings/objc/DOMEvents.mm: (+[DOMEvent _wrapEvent:]):
  • bindings/objc/DOMHTML.mm: (-[DOMHTMLDocument createDocumentFragmentWithMarkupString:baseURL:]): (-[DOMHTMLDocument createDocumentFragmentWithText:]):
  • bindings/objc/DOMObject.mm: (-[DOMObject sheet]):
  • bindings/objc/DOMRGBColor.mm: (-[DOMRGBColor red]): (-[DOMRGBColor green]): (-[DOMRGBColor blue]): (-[DOMRGBColor alpha]): (+[DOMRGBColor _wrapRGBColor:]):
  • bindings/objc/DOMSVGPathSegInternal.mm: (+[DOMSVGPathSeg _wrapSVGPathSeg:]):
  • bindings/objc/DOMXPath.mm: (+[DOMNativeXPathNSResolver _wrapXPathNSResolver:]):
  • page/mac/WebCoreFrameBridge.mm: (-[WebCoreFrameBridge nodesFromList:]): (-[WebCoreFrameBridge elementWithName:inForm:]): (-[WebCoreFrameBridge formForElement:]): (-[WebCoreFrameBridge currentForm]): (-[WebCoreFrameBridge controlsInForm:]): (-[WebCoreFrameBridge rangeByAlteringCurrentSelection:SelectionController::direction:SelectionController::granularity:]): (-[WebCoreFrameBridge convertNSRangeToDOMRange:]): (-[WebCoreFrameBridge markDOMRange]): (-[WebCoreFrameBridge markedTextDOMRange]): (-[WebCoreFrameBridge smartDeleteRangeForProposedRange:]): (-[WebCoreFrameBridge documentFragmentWithMarkupString:baseURLString:]): (-[WebCoreFrameBridge documentFragmentWithText:inContext:]): (-[WebCoreFrameBridge documentFragmentWithNodesAsParagraphs:]): (-[WebCoreFrameBridge replaceSelectionWithNode:selectReplacement:smartReplace:matchStyle:]): (-[WebCoreFrameBridge replaceSelectionWithText:selectReplacement:smartReplace:]): (-[WebCoreFrameBridge increaseSelectionListLevel]): (-[WebCoreFrameBridge increaseSelectionListLevelOrdered]): (-[WebCoreFrameBridge increaseSelectionListLevelUnordered]): (-[WebCoreFrameBridge dragCaretDOMRange]): (-[WebCoreFrameBridge editableDOMRangeForPoint:]): (-[WebCoreFrameBridge characterRangeAtPoint:]): (-[WebCoreFrameBridge typingStyle]): (-[WebCoreFrameBridge rangeOfCharactersAroundCaret]):
  • platform/mac/ClipboardMac.mm: (WebCore::ClipboardMac::declareAndWriteDragImage):
  • platform/mac/PasteboardMac.mm: (WebCore::Pasteboard::writeSelection): Updated for new naming scheme.

WebKit:

Reviewed by Tim Hatcher.

  • update for the new naming scheme for the Objective-C wrapper-creation functions: _wrapElement: instead of _elementWith:, etc.
  • WebCoreSupport/WebEditorClient.mm: (WebEditorClient::textFieldDidBeginEditing): (WebEditorClient::textFieldDidEndEditing): (WebEditorClient::textDidChangeInTextField): (WebEditorClient::doTextFieldCommandFromEvent): (WebEditorClient::textWillBeDeletedInTextField): (WebEditorClient::textDidChangeInTextArea):
  • WebCoreSupport/WebFrameLoaderClient.mm: (WebFrameLoaderClient::createPlugin): (WebFrameLoaderClient::createJavaAppletWidget):
  • WebView/WebFrame.mm: (kit): Use the _wrapElement-style functions.
17:34 Changeset [20129] by thatcher
  • 2 edits in trunk/WebCore

Reviewed by Darin.

<rdar://problem/4990691> REGRESSION: Selecting text in Adium's Messages field causes horizontal shift

Corrected the recursive point conversion and scrolling done in scrollPointRecursively to use the
document view of each NSClipView.

  • platform/mac/ScrollViewMac.mm: (WebCore::ScrollView::scrollPointRecursively): Call convertPoint:fromView: on the document views, not the clip views as we encounter them. Then call constrainScrollPoint: on the converted point to constrain to the document view bounds. And finally call scrollPoint: on the document view, not the clip view.
17:07 Changeset [20128] by darin
  • 2 edits in trunk/WebKitTools

Reviewed by Tim Hatcher.

  • add a DumpRenderTree feature where you can get the Objective-C class name of a JavaScript object
  • DumpRenderTree/DumpRenderTree.m: (+[LayoutTestController isSelectorExcludedFromWebScript:]): Add the objCClassNameOf: selector. (+[LayoutTestController webScriptNameForSelector:]): Add the objCClassNameOf: selector, with the name "objCClassName". (-[LayoutTestController objCClassNameOf:]): Added.
16:57 Changeset [20127] by antti
  • 6 edits
    4 adds in trunk

LayoutTests:

Reviewed by Alexey


Test that this works correctly with composed characters
http://bugs.webkit.org/show_bug.cgi?id=12833
REGRESSION: Selecting text in 6.6MB txt file is sluggish as of the Feb 19th nightly
<rdar://problem/5028159>

  • fast/text/large-text-composed-char-expected.checksum: Added.
  • fast/text/large-text-composed-char-expected.png: Added.
  • fast/text/large-text-composed-char-expected.txt: Added.
  • fast/text/large-text-composed-char.html: Added.

WebCore:

Reviewed by Alexey.

Fix http://bugs.webkit.org/show_bug.cgi?id=12833
REGRESSION: Selecting text in 6.6MB txt file is sluggish as of the Feb 19th nightly
<rdar://problem/5028159>


Divide large text blocks (>64kB) over multiple text nodes. This limits linebox searches to
a manageable subset.


  • dom/Text.cpp: (WebCore::Text::createWithLengthLimit):
  • dom/Text.h:
  • html/HTMLParser.cpp: (WebCore::HTMLParser::parseToken):
  • loader/TextDocument.cpp: (WebCore::TextTokenizer::write):
16:48 Changeset [20126] by hyatt
  • 2 edits in trunk/WebCore

Fix a regression in printing. Printer fonts need to be part of the
font cache key, since printer fonts have different glyph widths.
(Integer antialiasing is used for screen fonts but not for printer fonts.)

Reviewed by aroben

  • platform/FontCache.cpp: (WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey): (WebCore::FontPlatformDataCacheKey::operator==): (WebCore::computeHash): (WebCore::FontCache::getCachedFontPlatformData):
16:07 Changeset [20125] by andersca
  • 2 edits in trunk/WebKit

Reviewed by Maciej.

<rdar://problem/5057575>
REGRESSION: Repro Crash in FrameLoader::frame loading about:blank in PLT


Always get the web view from the current web frame, since the document loader's frame can have been zeroed out
(for example when detaching the document loader).


  • WebCoreSupport/WebFrameLoaderClient.mm: (WebFrameLoaderClient::dispatchDidLoadResourceFromMemoryCache): (WebFrameLoaderClient::assignIdentifierToInitialRequest): (WebFrameLoaderClient::dispatchWillSendRequest): (WebFrameLoaderClient::dispatchDidReceiveResponse): (WebFrameLoaderClient::dispatchDidReceiveContentLength): (WebFrameLoaderClient::dispatchDidFinishLoading):
14:58 Changeset [23066] by andersca
  • 2 edits in branches/WindowsMerge/WebCore

Reviewed by Darin.

<rdar://problem/5054694>
Repro crash when viewing fast/dom/HTMLObjectElement/object-as-frame.html


  • bridge/win/FrameWin.cpp: (WebCore::Frame::createScriptInstanceForWidget): Return 0 for frame views.
14:32 Changeset [20124] by lars
  • 2 edits in trunk/WebCore

add missing symbol to fix the Qt build again.

14:23 Changeset [23065] by andersca
  • 2 edits in branches/WindowsMerge/WebCore

Reviewed by Adam.

<rdar://problem/5054713>
Crash in suggestedFilenameForResponse in two fast/encoding tests.


Add null checks.


  • platform/network/cf/ResourceResponseCFNet.cpp: (WebCore::suggestedFilenameForResponse):
13:45 Changeset [23064] by adele
  • 2 edits in branches/WindowsMerge/WebCore

Reviewed by Oliver.

Fix for <rdar://problem/5053618> Disable "recent searches" search field menu.

  • platform/win/SearchPopupMenuWin.cpp: (WebCore::SearchPopupMenu::enabled):
13:43 Changeset [20123] by adele
  • 4 edits in trunk/WebCore

Reviewed by Oliver.

Adding the ability to enable or disable a SearchPopupMenu.

  • platform/SearchPopupMenu.h:
  • platform/mac/SearchPopupMenuMac.mm: (WebCore::SearchPopupMenu::enabled):
  • rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::showPopup):
13:17 Changeset [20122] by rwlbuis
  • 17 edits in trunk

Reviewed by Nikolas Zimmermann.

http://bugs.webkit.org/show_bug.cgi?id=12500
SVG fails to correctly handle all link style selectors
http://bugs.webkit.org/show_bug.cgi?id=12567
<text> elements ignore <a> children

Allow <a> inside svg text and handle xlink:show.

12:05 Changeset [20121] by kmccullo
  • 32 edits in trunk/JavaScriptCore

Reviewed by .

  • Actually update tests for new DST rules.
  • tests/mozilla/ecma/Date/15.9.3.1-1.js:
  • tests/mozilla/ecma/Date/15.9.3.1-2.js:
  • tests/mozilla/ecma/Date/15.9.3.1-3.js:
  • tests/mozilla/ecma/Date/15.9.3.1-4.js:
  • tests/mozilla/ecma/Date/15.9.3.1-5.js:
  • tests/mozilla/ecma/Date/15.9.3.2-1.js:
  • tests/mozilla/ecma/Date/15.9.3.2-2.js:
  • tests/mozilla/ecma/Date/15.9.3.2-3.js:
  • tests/mozilla/ecma/Date/15.9.3.2-4.js:
  • tests/mozilla/ecma/Date/15.9.3.2-5.js:
  • tests/mozilla/ecma/Date/15.9.3.8-1.js:
  • tests/mozilla/ecma/Date/15.9.3.8-2.js:
  • tests/mozilla/ecma/Date/15.9.3.8-3.js:
  • tests/mozilla/ecma/Date/15.9.3.8-4.js:
  • tests/mozilla/ecma/Date/15.9.3.8-5.js:
  • tests/mozilla/ecma/Date/15.9.5.10-1.js:
  • tests/mozilla/ecma/Date/15.9.5.10-10.js:
  • tests/mozilla/ecma/Date/15.9.5.10-11.js:
  • tests/mozilla/ecma/Date/15.9.5.10-12.js:
  • tests/mozilla/ecma/Date/15.9.5.10-13.js:
  • tests/mozilla/ecma/Date/15.9.5.10-2.js:
  • tests/mozilla/ecma/Date/15.9.5.10-3.js:
  • tests/mozilla/ecma/Date/15.9.5.10-4.js:
  • tests/mozilla/ecma/Date/15.9.5.10-5.js:
  • tests/mozilla/ecma/Date/15.9.5.10-6.js:
  • tests/mozilla/ecma/Date/15.9.5.10-7.js:
  • tests/mozilla/ecma/Date/15.9.5.10-8.js:
  • tests/mozilla/ecma/Date/15.9.5.10-9.js:
  • tests/mozilla/ecma/jsref.js:
  • tests/mozilla/ecma_2/jsref.js:
  • tests/mozilla/ecma_3/Date/shell.js:
11:56 Changeset [23063] by aroben
  • 2 edits in branches/WindowsMerge/LayoutTests

Rubberstamped by Anders.

  • Skipped: Updated for current set of crashing tests.
11:56 Changeset [23062] by aroben
  • 2 edits in branches/WindowsMerge/WebKitTools

WebKitToolsWin:

Reviewed by Darin.

Get DRT to size the WebView correctly, and added font family prefs.

  • DumpRenderTree/DumpRenderTree.vcproj/DumpRenderTree/DumpRenderTree.cpp: (initialize): Make the DRT window an off-screen tool window so it isn't visible to the user despite having been "shown". (initializePreferences): Set font preferences. (main): Initially size the WebView to 0x0, then do a SetWindowPos to the desired size (this is what Boomer does).
11:52 Changeset [23061] by adele
  • 6 edits in branches/WindowsMerge

WebCoreWin:

Reviewed by Oliver.


WebCore part of fix for <rdar://problem/5044790> preventing default of keypress event doesn't work (affects .mac)

  • platform/win/KeyEventWin.cpp: (WebCore::singleCharacterString): Added inline keyword. (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Renamed arguments to be more meaningful. Added characterCode argument to be used when constructing m_text.

WebKitWin:

Reviewed by Oliver.

Fix for <rdar://problem/5044790> preventing default of keypress event doesn't work (affects .mac)

Removed special handling of the WM_CHAR message. All this work is now done by WM_KEYDOWN, which will dispatch the keydown event,
which causes the keypress event to be dispatched, which calls WebEditorClient::handleKeyPress to do all the hard work.


  • WebEditorClient.cpp: (WebEditorClient::handleKeypress): Removed special call to doTextFieldCommandFromEvent since this will now happen during normal key event processing. Call handleEditingKeyboardEvent. Now editing actions can be prevented from the keypress event handler.
  • WebView.cpp: (WebView::WebView): Added m_currentCharacterCode, so we can reuse the computed code from keyDown for keyUp events. (WebView::keyUp): Renamed arguments. Don't dispatch event for shift, ctrl, or capslock keys. Use m_currentCharacterCode when constructing the PlatformKeyboardEvent. (WebView::handleEditingKeyboardEvent): Now takes a KeyboardEvent instead of a PlatformKeyboardEvent. If no editCommand is created from the event, then call handleTextInputEvent. (WebView::keyDown): Peek at the next message in the message loop. If its a WM_CHAR, then get the character code and remove that message from the queue. Renamed arguments. Don't dispatch event for shift, ctrl, or capslock keys. Set m_currentCharacterCode and use it when constructing the PlatformKeyboardEvent. (WebViewWndProc): Removed handling of WM_CHAR, since this is now done from WM_KEYDOWN by dispatching the keydown event, which will eventually call handleKeyPress.
  • WebView.h: Made handleEditingKeyboardEvent public so it can be accessed from WebEditorClient.
11:49 Changeset [20120] by adele
  • 3 edits in trunk/WebCore

Reviewed by Oliver.

Add a missing parameter to the constructor.

  • platform/PlatformKeyboardEvent.h:
  • platform/win/KeyEventWin.cpp: (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
11:45 Changeset [20119] by brmorris
  • 2 edits in S60/trunk/WebKit

hongzhao, reviewed by Yongjun.zhang@nokia.com

DESC: Part 2/2 (see also r20116). Plugin Window shouldn't cover the scroll bars when it's oversize HZHO-6YZR4X
Fix: Calculate the clipRect based on the Browser mainframe rect and the plugin object rect and use it as the plugin cliprect.
http://bugs.webkit.org/show_bug.cgi?id=13003

11:15 Changeset [23060] by adele
  • 1 edit in branches/WindowsMerge/WebCore/ChangeLog

Updating ChangeLog w/ revision

11:11 Changeset [23059] by adele
  • 2 edits
    1 add in branches/WindowsMerge/WebCore

Reviewed by Oliver.

Forking KeyEventWin.cpp.

  • WebCore.vcproj/WebCore.vcproj:
  • platform/win/KeyEventWin.cpp: Added.
10:44 Changeset [20118] by kmccullo
  • 2 edits in trunk/JavaScriptCore

Reviewed by .

  • Update tests for new DST rules.
  • tests/mozilla/ecma/shell.js:
09:47 Changeset [20117] by brmorris
  • 23 edits in S60/trunk

borges, reviewed by Bradley

DESC: related with task 14594 for S60 build feature work
http://bugs.webkit.org/show_bug.cgi?id=13027

08:31 Changeset [20116] by brmorris
  • 4 edits in S60/trunk/WebKit

hongzhao, reviewed by Yongjun.zhang@nokia.com

DESC: Plugin Window shouldn't cover the scroll bars if they are oversize HZHO-6YZR4X
Fix: Intersects the plugin object rect and the rect of main frame in Browser, then set it as clip rect to pass for plugin window.
http://bugs.webkit.org/show_bug.cgi?id=13003

08:09 Changeset [20115] by ggaren
  • 9 edits in trunk

JavaScriptCore:

Reviewed by Oliver Hunt.


Fixed <rdar://problem/4681051> Installer crashes in KJS::Collector::
markOtherThreadConservatively(KJS::Collector::Thread*) trying to install
iLife 06 using Rosetta on an Intel Machine


The problem was that our thread-specific data destructor would modify the
list of active JavaScript threads without holding the JSLock, corrupting
the list. Corruption was especially likely if one JavaScript thread exited
while another was starting up.

  • JavaScriptCore.exp:
  • kjs/JSLock.cpp: Don't conflate locking the JSLock with registering a thread, since the thread-specific data destructor needs to lock without registering a thread. Instead, treat thread registration as a part of the convenience of the JSLock object, and whittle down JSLock::lock() to just the bits that actually do the locking. (KJS::JSLock::lock): (KJS::JSLock::registerThread):
  • kjs/JSLock.h: Updated comments to mention the new behavior above, and other recent changes. (KJS::JSLock::JSLock):
  • kjs/collector.cpp: (KJS::destroyRegisteredThread): Lock here. (KJS::Collector::registerThread): To match, assert that we're locked here.

JavaScriptGlue:

Reviewed by Oliver Hunt.


Updated in light of fix for <rdar://problem/4681051> Installer crashes
in KJS::Collector::markOtherThreadConservatively(KJS::Collector::Thread*)
trying to install iLife 06 using Rosetta on an Intel Machine


  • JavaScriptGlue.cpp: (JSLockInterpreter): Ensure backwards compatibility by calling registerThread() when explicitly taking the JSLock. (This doesn't happen automatically anymore.) I doubt this actally matters, but in JavaScriptGlue territory, that kind of thinking will get you killed.

WebKitTools:

Reviewed by Oliver Hunt.


Beefed up --threaded mode in light of <rdar://problem/4681051> Installer
crashes in KJS::Collector::markOtherThreadConservatively(KJS::Collector::Thread*)
trying to install iLife 06 using Rosetta on an Intel Machine


--threaded mode now runs a bunch of different JavaScript threads, randomly
killing and respawning them. This was sufficient for reproducing the
bug on my MacBook Pro.

  • DumpRenderTree/DumpRenderTree.m: (javaScriptThreads): (runJavaScriptThread): (startJavaScriptThreads): (stopJavaScriptThreads): (dumpRenderTree):
08:02 Changeset [20114] by brmorris
  • 2 edits in S60/branches/3.1m/WebKit

fhodgkin, Reviewed by sachin

DESC: merge r20113 to s60's 3.1m branch. crash when exiting browser after trying to load a big file: TMCN-6YDJPJ
http://bugs.webkit.org/show_bug.cgi?id=12967

08:00 Changeset [20113] by brmorris
  • 2 edits in S60/trunk/WebKit

fhodgkin, Reviewed by sachin

DESC: crash when exiting browser after trying to load a big file: TSW TMCN-6YDJPJ
http://bugs.webkit.org/show_bug.cgi?id=12967

02:18 Changeset [20112] by lars
  • 7 edits in trunk/WebCore

Fix the Qt build. I still get crashes though :/

03/11/07:

22:49 Changeset [20111] by kjk
  • 5 edits in trunk/WebCore

Not reviewed - gdk build fixes.

  • platform/gdk/EditorClientGdk.cpp: (WebCore::EditorClientGdk::respondToChangedSelection): add stub
  • platform/gdk/EditorClientGdk.h:
  • platform/gdk/FrameGdk.cpp:
  • platform/gdk/TemporaryLinkStubs.cpp: (Editor::markMisspellings): add stub
22:39 Changeset [20110] by ap
  • 6 edits
    2 adds in trunk

Reviewed by Adele.

http://bugs.webkit.org/show_bug.cgi?id=12560
W3C XPath test Text_Nodes.svg fails

WebCore:

  • xml/XPathStep.cpp: (WebCore::XPath::Step::nodeTestMatches): Revert the fix, as the behavior doesn't appear all that desirable as it did at first glance.

LayoutTests:

  • dom/svg/level3/xpath/Text_Nodes-expected.txt: This fails again.
  • fast/xpath/4XPath/Borrowed/kd_20010423-expected.txt:
  • fast/xpath/4XPath/Borrowed/kd_20010423.html: Brought the test back to its original form (in which Firefox passes).
  • fast/xpath/text-nodes-expected.txt: Added.
  • fast/xpath/text-nodes.html: Added. A new test for text nodes, verifying some more arcane cases.
22:34 Changeset [20109] by oliver
  • 3 edits
    2 adds in trunk

2007-03-11 Oliver Hunt <oliver@apple.com>

Reviewed by hyatt.

Fix for <rdar://problem/5055690> ASSERTION failure on drop into
editable element with content changed on drop

After setting the selection for a drop into an editable region
we make sure the we succeeded. If we didn't we assume a focus handler
or similar altered the element contents and try again, if the second
attempt fails we bail out.

  • page/DragController.cpp: (WebCore::setSelectionToDragCaret): (WebCore::DragController::concludeDrag):

LayoutTests:

<rdar://problem/5055690> ASSERTION failure on drop into editable element with content changed on drop

  • fast/events/content-changed-during-drop-expected.txt: Added.
  • fast/events/content-changed-during-drop.html: Added.
21:46 Changeset [23058] by oliver
  • 5 edits in branches/WindowsMerge

2007-03-11 Oliver Hunt <oliver@apple.com>

Reviewed by Adele.

WebCoreWin:

Removed Frame::respondToChangedSelection stub
added Editor::markMisspellings stub

  • platform/win/TemporaryLinkStubs.cpp: (WebCore::Editor::markMisspellings):

WebKitWin:

Stubbed WebEditorClient::respondToChangedSelection

  • WebEditorClient.cpp: (WebEditorClient::respondToChangedSelection):
  • WebEditorClient.h:
21:41 Changeset [20108] by oliver
  • 16 edits in trunk

2007-03-11 Oliver Hunt <oliver@apple.com>

Reviewed by Adele.

WebCore:

Moving Frame{Mac}::respondToChangedSelection to Frame.cpp
Added new EditorClient method to handle old bridge function


  • bridge/EditorClient.h:

Added respondToChangedSelection to replace old bridge function

  • editing/Editor.cpp: (WebCore::Editor::respondToChangedSelection):

Add client call to replace old bridge call from Frame::respondToChangedSelection

  • editing/SelectionController.cpp: (WebCore::SelectionController::setSelection):

No longer directly call Editor as Frame::respondToChangedSelection
makes the call

  • page/Frame.cpp: (WebCore::Frame::respondToChangedSelection):

Moved from FrameMac, replaced bridge call with call to Editor

  • page/mac/FrameMac.mm:

Moved respondToChangedSelection to Frame.cpp

  • page/mac/WebCoreFrameBridge.h:

Removed respondToChangedSelection from bridge

  • page/qt/FrameQt.cpp:

Remove stub method for respondToChangedSelection

WebKit:

Moved respondToChangedSelection from FrameBridge to EditorClient

  • WebCoreSupport/WebEditorClient.h:
  • WebCoreSupport/WebEditorClient.mm: (WebEditorClient::respondToChangedSelection):
  • WebCoreSupport/WebFrameBridge.mm: Removed respondToChangedSelection from bridge

WebKitQt:

Stub for EditorClientQt::respondToChangedSelection

  • WebCoreSupport/EditorClientQt.cpp: (WebCore::EditorClientQt::respondToChangedSelection):
  • WebCoreSupport/EditorClientQt.h:
20:24 Changeset [20107] by darin
  • 2 edits in trunk/WebKit

Reviewed by Adele.

  • Plugins/WebBaseNetscapePluginStream.m: (-[WebBaseNetscapePluginStream startStreamResponseURL:expectedContentLength:lastModifiedDate:MIMEType:]): At every place we call the plug-in, since it could destroy the stream, get pluginView into a local variable; it will be set to nil if the stream is destroyed. (-[WebBaseNetscapePluginStream _destroyStream]): Added calls to retain/release to handle the case where one of the calls to the plug-in destroys the stream. Added a call to cancelPreviousPerformRequestsWithTarget in case _deliverData has been scheduled but not yet delivered. Also get pluginView into a local variable as mentioned above, and check at strategic points and exit if the stream was already destroyed to avoid multiple calls to NPP_DestroyStream or NPP_URLNotify. (-[WebBaseNetscapePluginStream _deliverData]): Ditto.
18:32 Changeset [20106] by beidson
  • 2 edits in trunk

Fixed my name in the 2 ChangeLogs kjk just comitted

18:09 Changeset [20105] by kjk
  • 4 edits in trunk

WebCore:

Reviewed by Brady Edison.

Linux/gdk fix.

  • loader/gdk/FrameLoaderClientGdk.cpp: (WebCore::FrameLoaderClientGdk::shouldGoToHistoryItem): return true so that FrameLoader:goBackOrForwards() works.

WebKitTools:

Reviewed by Brady Edison.

Add forward/backward/quit menus for easier testing.

  • GdkLauncher/main.cpp: (menuMainBackCb): (menuMainForwardCb): (menuMainQuitCb): (main):
17:01 Changeset [23057] by ggaren
  • 2 edits in branches/WindowsMerge/WebCore

Reviewed by Darin Adler.

Fixed <rdar://problem/4587763> PAC file: lock inversion between QT and
JSCore causes a hang @ www.panoramas.dk


See JavaScriptCore ChangeLog for details.


Stress test doesn't show any problems.


Drop the JSLock before making calls through the plug-in API from functions
that may have been called by JavaScript.


  • plugins/win/PluginViewWin.cpp: (WebCore::PluginViewWin::paint): (WebCore::PluginViewWin::handleKeyboardEvent): (WebCore::PluginViewWin::handleMouseEvent): (WebCore::PluginViewWin::setNPWindowRect): (WebCore::PluginViewWin::start): (WebCore::PluginViewWin::stop): (WebCore::PluginViewWin::performRequest): (WebCore::PluginViewWin::bindingInstance):
16:57 Changeset [20104] by ggaren
  • 23 edits in trunk

JavaScriptCore:

Reviewed by Darin Adler.

Fixed <rdar://problem/4587763> PAC file: lock inversion between QT and
JSCore causes a hang @ www.panoramas.dk


With a PAC file, run-webkit-tests --threaded passes, the reported site
works, and all the Quicktime/JavaScript and Flash/JavaScript examples
I found through Google work, too.


Any time JavaScript causes arbitrary non-JavaScript code to execute, it
risks deadlock, because that code may block, trying to acquire a lock
owned by a thread that is waiting to execute JavaScript. In this case,
the thread was a networking thread that was waiting to interpret a PAC file.


Because non-JavaScript code may execute in response to, well, anything,
a perfect solution to this problem is impossible. I've implemented an
optimistic solution, instead: JavaScript will drop its lock whenever it
makes a direct call to non-JavaScript code through a bridging/plug-in API,
but will blissfully ignore the indirect ways it may cause non-JavaScript
code to run (resizing a window, for example).


Unfortunately, this solution introduces significant locking overhead in
the bridging APIs. I don't see a way around that.

This patch includes some distinct bug fixes I saw along the way:


  • bindings/objc/objc_instance.mm: Fixed a bug where a nested begin() call would leak its autorelease pool, because it would NULL out _pool without draining it.
  • bindings/runtime_object.cpp: (RuntimeObjectImp::methodGetter): Don't copy an Identifier to ASCII only to turn around and make an Identifier from the ASCII. In an earlier version of this patch, the copy caused an assertion failure. Now it's just unnecessary work. (RuntimeObjectImp::getOwnPropertySlot): ditto
  • bindings/objc/objc_instance.h: Removed overrides of setVAlueOfField and getValueOfField, because they did exactly what the base class versions did. Removed overrides of Noncopyable declarations for the same reason.
  • bindings/runtime.h: Inherit from Noncopyable instead of rolling our own.
  • bindings/c/c_instance.h: ditto

And the actual patch:


  • API/JSCallbackConstructor.cpp: Drop all locks when calling out to C. (KJS::JSCallbackConstructor::construct):
  • API/JSCallbackFunction.cpp: ditto (KJS::JSCallbackFunction::callAsFunction):
  • API/JSCallbackObject.cpp: ditto (KJS::JSCallbackObject::init): (KJS::JSCallbackObject::~JSCallbackObject): (KJS::JSCallbackObject::getOwnPropertySlot): (KJS::JSCallbackObject::put): (KJS::JSCallbackObject::deleteProperty): (KJS::JSCallbackObject::construct): (KJS::JSCallbackObject::hasInstance): (KJS::JSCallbackObject::callAsFunction): (KJS::JSCallbackObject::getPropertyNames): (KJS::JSCallbackObject::toNumber): (KJS::JSCallbackObject::toString): (KJS::JSCallbackObject::staticValueGetter): (KJS::JSCallbackObject::callbackGetter):


  • bindings/c/c_instance.cpp: Drop all locks when calling out to C. (KJS::Bindings::CInstance::invokeMethod): (KJS::Bindings::CInstance::invokeDefaultMethod):
  • bindings/c/c_runtime.cpp: Drop all locks when calling out to C. (KJS::Bindings::CField::valueFromInstance): (KJS::Bindings::CField::setValueToInstance):
  • bindings/jni/jni_objc.mm: (KJS::Bindings::dispatchJNICall): Drop all locks when calling out to Java.
  • bindings/objc/objc_instance.mm: The changes here are to accomodate the fact that C++ unwinding of DropAllLocks goes crazy when you put it inside a @try block. I moved all JavaScript stuff outside of the @try blocks, and then prefixed the whole blocks with DropAllLocks objects. This required some supporting changes in other functions, which now acquire the JSLock for themselves, intead of relying on their callers to do so. (ObjcInstance::end): (ObjcInstance::invokeMethod): (ObjcInstance::invokeDefaultMethod): (ObjcInstance::setValueOfUndefinedField): (ObjcInstance::getValueOfUndefinedField):
  • bindings/objc/objc_runtime.mm: Same as above, except I didn't want to change throwError to acquire the JSLock for itself. (ObjcField::valueFromInstance): (ObjcField::setValueToInstance):
  • bindings/objc/objc_utility.mm: Supporting changes mentioned above. (KJS::Bindings::convertValueToObjcValue): (KJS::Bindings::convertObjcValueToValue):
  • kjs/JSLock.cpp: (1) Fixed DropAllLocks to behave as advertised, and drop the JSLock only if the current thread actually acquired it in the first place. This is important because WebKit needs to ensure that the JSLock has been dropped before it makes a plug-in call, even though it doesn't know if the current thread actually acquired the JSLock. (We don't want WebKit to accidentally drop a lock belonging to *another thread*.) (2) Used the new per-thread code written for (1) to make recursive calls to JSLock very cheap. JSLock now knows to call pthread_mutext_lock/ pthread_mutext_unlock only at nesting level 0. (KJS::createDidLockJSMutex): (KJS::JSLock::lock): (KJS::JSLock::unlock): (KJS::DropAllLocks::DropAllLocks): (KJS::DropAllLocks::~DropAllLocks): (KJS::JSLock::lockCount):
  • kjs/JSLock.h: Don't duplicate Noncopyable. (KJS::JSLock::~JSLock):
  • wtf/Assertions.h: Blind attempt at helping the Windows build.

WebCore:

Reviewed by Darin Adler.

Fixed <rdar://problem/4587763> PAC file: lock inversion between QT and
JSCore causes a hang @ www.panoramas.dk


See JavaScriptCore ChangeLog for details.


  • bindings/objc/WebScriptObject.mm: (_didExecute): Added helpful ASSERT. (+[WebScriptObject throwException:]): Added missing JSLock.

WebKit:

Reviewed by Darin Adler.

Fixed <rdar://problem/4587763> PAC file: lock inversion between QT and
JSCore causes a hang @ www.panoramas.dk


See JavaScriptCore ChangeLog for details.

Drop the JSLock before making calls through the plug-in API from functions
that may have been called by JavaScript.


  • Plugins/WebBaseNetscapePluginView.mm: (-[WebBaseNetscapePluginView sendEvent:]): (-[WebBaseNetscapePluginView setWindowIfNecessary]): (-[WebBaseNetscapePluginView initWithFrame:pluginPackage:URL:baseURL:MIMEType:attributeKeys:attributeValues:loadManually:DOMElement:]): (-[WebBaseNetscapePluginView createPluginScriptableObject]): (-[WebBaseNetscapePluginView evaluateJavaScriptPluginRequest:]): (-[WebBaseNetscapePluginView webFrame:didFinishLoadWithReason:]): (-[WebBaseNetscapePluginView loadPluginRequest:]): (-[WebBaseNetscapePluginView _printedPluginBitmap]):
  • Plugins/WebPluginController.mm: (+[WebPluginController plugInViewWithArguments:fromPluginPackage:]): (-[WebPluginController startAllPlugins]): (-[WebPluginController stopAllPlugins]): (-[WebPluginController addPlugin:]): (-[WebPluginController destroyPlugin:]): (-[WebPluginController destroyAllPlugins]):
04:14 Changeset [20103] by antti
  • 7 edits in trunk/WebCore

Reviewed by Hyatt.

Optimize linebox memory consumption:

  • move all bitfields to baseclass compacting them
  • make InlineTextBox::m_truncation unsigned short and make it relative to m_start
  • remove extremely rarely used EllipsisBox pointer from RootInlineBox and instead use a global hashmap to store it if needed
  • use minimum required number of bits to store BidiStatus enum variables in RootInlineBox
  • move overflow variables in RootInlineBox to a separate struct that is instantiated only if any of the variables is set to a value that can't trivially be derived from box x, y, width and height


As a result line box objects shrink:

InlineBox: 44 -> 44 bytes
InlineTextBox: 68 -> 60 bytes
InlineFlowBox: 68 -> 64 bytes
RootInlineBox: 128 -> 88 bytes


The optimizations possiblity was noticed when debugging http://bugs.webkit.org/show_bug.cgi?id=12833
Bug 12833: REGRESSION: Selecting text in 6.6MB txt file is sluggish as of the Feb 19th nightly
<rdar://problem/5028159>


On that page the patch saves 11.5MB or some 21% of linebox memory consumption. It also
actually improves selection performance somewhat by improving memory locality.

  • rendering/InlineBox.h: (WebCore::InlineBox::InlineBox):
  • rendering/InlineFlowBox.h: (WebCore::InlineFlowBox::InlineFlowBox):
  • rendering/InlineTextBox.cpp: (WebCore::InlineTextBox::placeEllipsisBox): (WebCore::InlineTextBox::nodeAtPoint): (WebCore::InlineTextBox::paint): (WebCore::InlineTextBox::paintDecoration): (WebCore::InlineTextBox::paintSpellingOrGrammarMarker): (WebCore::InlineTextBox::paintMarkedTextUnderline):
  • rendering/InlineTextBox.h: (WebCore::InlineTextBox::InlineTextBox):
  • rendering/RootInlineBox.cpp: (WebCore::throw): (WebCore::RootInlineBox::Overflow::operator delete): (WebCore::RootInlineBox::Overflow::destroy): (WebCore::RootInlineBox::destroy): (WebCore::RootInlineBox::detachEllipsisBox): (WebCore::RootInlineBox::clearTruncation): (WebCore::RootInlineBox::placeEllipsis): (WebCore::RootInlineBox::paintEllipsisBox): (WebCore::RootInlineBox::addHighlightOverflow): (WebCore::RootInlineBox::nodeAtPoint): (WebCore::RootInlineBox::adjustPosition): (WebCore::RootInlineBox::selectionTop): (WebCore::RootInlineBox::setLineBreakInfo): (WebCore::RootInlineBox::ellipsisBox): (WebCore::RootInlineBox::setVerticalOverflowPositions): (WebCore::RootInlineBox::setHorizontalOverflowPositions): (WebCore::RootInlineBox::setVerticalSelectionPositions):
  • rendering/RootInlineBox.h: (WebCore::RootInlineBox::RootInlineBox): (WebCore::RootInlineBox::topOverflow): (WebCore::RootInlineBox::bottomOverflow): (WebCore::RootInlineBox::leftOverflow): (WebCore::RootInlineBox::rightOverflow): (WebCore::RootInlineBox::lineBreakBidiStatus): (WebCore::RootInlineBox::selectionBottom): (WebCore::RootInlineBox::Overflow::Overflow):
00:21 Changeset [20102] by ap
  • 16 edits in trunk

Reviewed by Darin.

A partial fix for http://bugs.webkit.org/show_bug.cgi?id=13021
XPath can be very slow

  • xml/XPathExpression.cpp: (WebCore::XPathExpression::evaluate): Cache evaluationContext in a local variable.
  • xml/XPathExpressionNode.cpp: (WebCore::XPath::Expression::evaluationContext):
  • xml/XPathExpressionNode.h: (WebCore::XPath::Expression::addSubExpression): (WebCore::XPath::Expression::subExprCount): (WebCore::XPath::Expression::subExpr):
  • xml/XPathFunctions.cpp:
  • xml/XPathFunctions.h: (WebCore::XPath::Function::setName): (WebCore::XPath::Function::arg): (WebCore::XPath::Function::argCount): (WebCore::XPath::Function::name): Made one-liners critical for performance inline.
  • xml/XPathGrammar.y: Fully parse NodeTests, so that strings are no longer passed for what is essentially an enum. Use LocationPath accessors to add steps, instead of directly manipulating internal data members.
  • xml/XPathParser.cpp: (WebCore::XPath::Parser::parseStatement): (WebCore::XPath::Parser::registerNodeTest): (WebCore::XPath::Parser::deleteNodeTest):
  • xml/XPathParser.h: Added support methods for changes in XPathGrammar.y.
  • xml/XPathPath.cpp: (WebCore::XPath::Filter::evaluate): Cache evaluationContext in a local variable. Use swap() to avoid performing vector assignments. (WebCore::XPath::LocationPath::evaluate): Use swap() to avoid performing vector assignments. (WebCore::XPath::LocationPath::optimizeStepPair): This new method is called during LocationPath construction, to simplify the path as it's being built. Currently, the only optimized case is "*" - it is a basis for important operations that cannot be efficiently written in XPath 1.0, but can be optimized with a little bit of XPath 2.0. (WebCore::XPath::LocationPath::appendStep): A new accessor that modifies m_steps and calls optimizeStepPair(). (WebCore::XPath::LocationPath::insertFirstStep): Ditto.
  • xml/XPathPath.h: (WebCore::XPath::LocationPath::setAbsolute): A new accessor.
  • xml/XPathStep.h: (WebCore::XPath::Step::NodeTest::): (WebCore::XPath::Step::NodeTest::NodeTest): (WebCore::XPath::Step::NodeTest::kind): (WebCore::XPath::Step::NodeTest::data): Step::NodeTest is a new sub-class that represents a fully parsed NodeTest. (WebCore::XPath::Step::axis): (WebCore::XPath::Step::nodeTest): (WebCore::XPath::Step::nodeTestData): (WebCore::XPath::Step::namespaceURI): (WebCore::XPath::Step::predicates): (WebCore::XPath::Step::setAxis): (WebCore::XPath::Step::setNodeTest): (WebCore::XPath::Step::setNodeTestData): (WebCore::XPath::Step::setNamespaceURI): (WebCore::XPath::Step::setPredicates): New accessors that let optimizeStepPair() manipulate Step data.
  • xml/XPathStep.cpp: (WebCore::XPath::Step::Step): Use the new NodeTest class. (WebCore::XPath::Step::evaluate): Cache evaluationContext in a local variable. Use swap() to avoid performing unneeded vector assignments. (WebCore::XPath::Step::nodesInAxis): Cosmetic changes. (WebCore::XPath::Step::nodeTestMatches): Use NodeTest instead of parsing the test from string each time. Added a partial implementation of XPath 2.0 element() node test.
00:10 Changeset [20101] by ap
  • 4 edits
    2 adds in trunk

Reviewed by Darin.

http://bugs.webkit.org/show_bug.cgi?id=12249
FCKeditor: <hr>, <ul> and <ol> have id="undefined"

This fixes the attached reduction, but not the original issue.

Test: editing/execCommand/default-parameters.html

  • dom/Document.h:
  • dom/Document.idl: Make second and third execCommand() parameters optional.

03/10/07:

15:37 Changeset [20100] by adele
  • 2 edits in trunk/WebCore

Reviewed by Maciej.

Fix for http://bugs.webkit.org/show_bug.cgi?id=13028
REGRESSION: textField:doCommandBySelector:inFrame: not being called properly

  • html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::defaultEventHandler): Before calling the base class defaultEventHandler, which will call handleKeypress, call doTextFieldCommandFromEvent.
14:46 Changeset [20099] by ddkilzer
  • 3 edits
    2 adds in trunk

LayoutTests:

Reviewed by Darin.

  • fast/forms/listbox-typeahead-scroll-expected.txt: Added.
  • fast/forms/listbox-typeahead-scroll.html: Added.

WebCore:

Reviewed by Darin.

Test: fast/forms/listbox-typeahead-scroll.html

  • html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::setSelectedIndex): Reordered to set the active selection's anchor and end before selecting the option, since the active selection is used to decide where to scroll when the selection is made. (WebCore::HTMLSelectElement::defaultEventHandler): Removed redundant check.
14:43 Changeset [20098] by ddkilzer
  • 7 edits
    4 adds in trunk

LayoutTests:

Reviewed by Darin.

  • fast/dom/css-cached-import-rule-expected.checksum: Added.
  • fast/dom/css-cached-import-rule-expected.png: Added.
  • fast/dom/css-cached-import-rule-expected.txt: Added.
  • fast/dom/css-cached-import-rule.html: Added.

WebCore:

Reviewed by Darin.

Test: fast/dom/css-cached-import-rule.html

Replaced some direct calls to document->stylesheetLoaded() with calls to
the sheet's checkLoaded(). The latter calls back to the element's sheetLoaded() --
which notifies the document of the load -- and then updates the sheet's
loadCompleted() flag, ensuring that it stays in sync with whether the stylesheet
is still considered pending by the document.

  • dom/ProcessingInstruction.cpp: (WebCore::ProcessingInstruction::parseStyleSheet):
  • dom/StyleElement.cpp: (WebCore::StyleElement::childrenChanged):
  • html/HTMLLinkElement.cpp: (WebCore::HTMLLinkElement::process): (WebCore::HTMLLinkElement::setCSSStyleSheet):
  • ksvg2/svg/SVGStyleElement.cpp: (WebCore::SVGStyleElement::sheetLoaded):
  • ksvg2/svg/SVGStyleElement.h:
14:38 Changeset [20097] by ddkilzer
  • 4 edits in trunk

WebCore:

Reviewed by Darin.

  • WebCore.exp: Export WebCore::Image::loadPlatformResource(const char*) for use in [WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:].

WebKit:

Reviewed by Darin.

  • WebView/WebHTMLView.mm: (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]): Use WebCore::Image::loadPlatformResource(const char*) to load the missingImage image.
00:17 Changeset [23056] by andersca
  • 2 edits in branches/WindowsMerge/WebKitWin

Reviewed by Adam.

  • DOMCoreClasses.cpp: (DOMNode::textContent): Implement this.
00:08 Changeset [20096] by bdash
  • 2 edits in trunk/WebKit

2007-03-10 Mark Rowe <mrowe@apple.com>

Reviewed by John.

<rdar://problem/5051827> HIWebView handling of kEventControlGetData is broken in 64-bit

On Leopard the kEventParamControlDataBufferSize event parameter is of type typeByteCount.
The 32-bit implementation of GetEventParameter will coerce between integer types and
typeByteCount while the 64-bit version will return a failure. As typeByteCount is new
in Leopard we must continue using typeSInt32 when building for Tiger.

  • Carbon/HIWebView.m: (HIWebViewEventHandler):
Note: See TracTimeline for information about the timeline view.