Timeline
Jun 26, 2008:
- 9:54 PM Changeset in webkit [34826] by
-
- 1 edit1 copy in trunk/WebKitTools
2008-06-26 Darin Adler <Darin Adler>
- Scripts/check-for-weak-vtables: Added.
- 9:44 PM Changeset in webkit [34825] by
-
- 2 edits in trunk/JavaScriptCore
Speculative fix for the Windows build.
- 9:32 PM Changeset in webkit [34824] by
-
- 4 edits in trunk/JavaScriptCore
2008-06-26 Mark Rowe <mrowe@apple.com>
Reviewed by Darin Adler and Geoff Garen.
Fix the malloc zone introspection functions so that malloc_zone_statistics does not give
bogus output in an application that uses JavaScriptCore.
- kjs/CollectorHeapIntrospector.cpp: (KJS::CollectorHeapIntrospector::statistics): Return statistics about memory allocated by the collector.
- kjs/CollectorHeapIntrospector.h:
- wtf/FastMalloc.cpp: Zero out the statistics. FastMalloc doesn't track this information at present. Returning zero for all values is preferable to returning bogus data.
- 8:28 PM Changeset in webkit [34823] by
-
- 7 edits in trunk
WebCore:
2008-06-26 David Smith <catfish.man@gmail.com>
Reviewed by Sam Weinig.
Optimize simple id selectors in querySelector/querySelectorAll.
~4.4x speedup on the 4 subtests of http://webkit.org/perf/slickspeed/ that it applies to.
- dom/Document.h: (WebCore::Document::containsMultipleElementsWithId): Added to allow optimizing the common case of no duplicates
- dom/Node.cpp: (WebCore::Node::querySelector): Uses getElementById instead of DOM traversal where possible now
- dom/SelectorNodeList.cpp: (WebCore::createSelectorNodeList): Uses getElementById instead of DOM traversal where possible now
LayoutTests:
2008-06-26 David Smith <catfish.man@gmail.com>
Reviewed by Sam Weinig.
Optimize simple id selectors in querySelector/querySelectorAll.
~4.4x speedup on the 4 subtests of http://webkit.org/perf/slickspeed/ that it applies to.
- fast/dom/SelectorAPI/dumpNodeList-expected.txt:
- fast/dom/SelectorAPI/dumpNodeList.html: Add tests for finding ids not in the document, and finding duplicate ids
- 8:24 PM Changeset in webkit [34822] by
-
- 8 edits2 adds in trunk
WebCore:
Reviewed by Darin Adler.
- fix <rdar://problem/3099526> Find command doesn't search form input controls (textareas and text fields) http://bugs.webkit.org/show_bug.cgi?id=7023
Test: editing/selection/find-in-text-control.html
- WebCore.base.exp: Updated the TextIterator constructor signature.
- editing/TextIterator.cpp: (WebCore::TextIterator::TextIterator): Added an enterTextControls boolean parameter that determines whether the iterator should visit text inside text areas and text fields. Added code to initialize the m_inShadowContent member variable based on whether the range is in shadow content. (WebCore::TextIterator::advance): Added code to step out of shadow content. (WebCore::TextIterator::handleReplacedElement): Added code to enter text controls if desired. (WebCore::CharacterIterator::CharacterIterator): Added an enterTextControls boolean parameter that determines whether the iterator should visit text inside text areas and text fields. This is passed to the TextIterator constructor. (WebCore::findPlainText): Changed to use a CharacterIterator that visits text controls.
- editing/TextIterator.h: Added member variables to track whether the current node is in a shadow tree and whether the iterator should visit text controls.
- page/Frame.cpp: (WebCore::Frame::findString): Changed to find inside text controls. (WebCore::Frame::markAllMatchesForText): Ditto.
- rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::innerTextElement): Added.
- rendering/RenderTextControl.h: Added innerTextElement(), a private accessor method that is accessible to TextIterator through class friendship.
LayoutTests:
Reviewed by Darin Adler.
- test for <rdar://problem/3099526> Find command doesn't search form input controls (textareas and text fields) http://bugs.webkit.org/show_bug.cgi?id=7023
- editing/selection/find-in-text-control-expected.txt: Added.
- editing/selection/find-in-text-control.html: Added.
- 7:53 PM Changeset in webkit [34821] by
-
- 24 edits in trunk/JavaScriptCore
2008-06-26 Darin Adler <Darin Adler>
Reviewed by Geoff.
- https://bugs.webkit.org/show_bug.cgi?id=19721 speed up JavaScriptCore by not wrapping strings in objects just to call functions on them
- optimize UString append and the replace function a bit
SunSpider says 1.8% faster.
- JavaScriptCore.exp: Updated.
- VM/JSPropertyNameIterator.cpp: Added include of JSString.h, now needed because jsString returns a JSString*.
- VM/Machine.cpp: (KJS::Machine::privateExecute): Removed the toObject call from native function calls. Also removed code to put the this value into a register.
- kjs/BooleanObject.cpp: (KJS::booleanProtoFuncToString): Rewrite to handle false and true separately.
- kjs/FunctionPrototype.cpp: (KJS::constructFunction): Use single-character append rather than building a string for each character.
- kjs/JSFunction.cpp: (KJS::globalFuncUnescape): Ditto.
- kjs/JSImmediate.cpp: (KJS::JSImmediate::prototype): Added. Gets the appropriate prototype for use with an immediate value. To be used instead of toObject when doing a get on an immediate value.
- kjs/JSImmediate.h: Added prototype.
- kjs/JSObject.cpp: (KJS::JSObject::toString): Tweaked formatting.
- kjs/JSObject.h: (KJS::JSValue::get): Use prototype instead of toObject to avoid creating an object wrapper just to search for properties. This also saves an unnecessary hash table lookup since the object wrappers themselves don't have any properties.
- kjs/JSString.h: Added toThisString and toThisJSString.
- kjs/JSValue.cpp: (KJS::JSCell::toThisString): Added. (KJS::JSCell::toThisJSString): Added. (KJS::JSCell::getJSNumber): Added. (KJS::jsString): Changed return type to JSString*. (KJS::jsOwnedString): Ditto.
- kjs/JSValue.h: (KJS::JSValue::toThisString): Added. (KJS::JSValue::toThisJSString): Added. (KJS::JSValue::getJSNumber): Added.
- kjs/NumberObject.cpp: (KJS::NumberObject::getJSNumber): Added. (KJS::integer_part_noexp): Append C string directly rather than first turning it into a UString. (KJS::numberProtoFuncToString): Use getJSNumber to check if the value is a number rather than isObject(&NumberObject::info). This works for immediate numbers, number cells, and NumberObject instances. (KJS::numberProtoFuncToLocaleString): Ditto. (KJS::numberProtoFuncValueOf): Ditto. (KJS::numberProtoFuncToFixed): Ditto. (KJS::numberProtoFuncToExponential): Ditto. (KJS::numberProtoFuncToPrecision): Ditto.
- kjs/NumberObject.h: Added getJSNumber.
- kjs/PropertySlot.cpp: Tweaked comment.
- kjs/internal.cpp: (KJS::JSString::toThisString): Added. (KJS::JSString::toThisJSString): Added. (KJS::JSString::getOwnPropertySlot): Changed code that searches the prototype chain to start with the string prototype and not create a string object. (KJS::JSNumberCell::toThisString): Added. (KJS::JSNumberCell::getJSNumber): Added.
- kjs/lookup.cpp: (KJS::staticFunctionGetter): Moved here, because there's no point in having a function that's only used for a function pointer be inline. (KJS::setUpStaticFunctionSlot): New function for getStaticFunctionSlot.
- kjs/lookup.h: (KJS::staticValueGetter): Don't mark this inline. It doesn't make sense to have a function that's only used for a function pointer be inline. (KJS::getStaticFunctionSlot): Changed to get properties from the parent first before doing any handling of functions. This is the fastest way to return the function once the initial setup is done.
- kjs/string_object.cpp: (KJS::StringObject::getPropertyNames): Call value() instead of getString(), avoiding an unnecessary virtual function call (the call to the type() function in the implementation of the isString() function). (KJS::StringObject::toString): Added. (KJS::StringObject::toThisString): Added. (KJS::StringObject::toThisJSString): Added. (KJS::substituteBackreferences): Rewrote to use a appending algorithm instead of a the old one that tried to replace in place. (KJS::stringProtoFuncReplace): Merged this function and the replace function. Replaced the hand-rolled dynamic arrays for source ranges and replacements with Vector. (KJS::stringProtoFuncToString): Handle JSString as well as StringObject. Removed the separate valueOf implementation, since it can just share this. (KJS::stringProtoFuncCharAt): Use toThisString, which handles JSString as well as StringObject, and is slightly more efficient than the old code too. (KJS::stringProtoFuncCharCodeAt): Ditto. (KJS::stringProtoFuncConcat): Ditto. (KJS::stringProtoFuncIndexOf): Ditto. (KJS::stringProtoFuncLastIndexOf): Ditto. (KJS::stringProtoFuncMatch): Ditto. (KJS::stringProtoFuncSearch): Ditto. (KJS::stringProtoFuncSlice): Ditto. (KJS::stringProtoFuncSplit): Ditto. (KJS::stringProtoFuncSubstr): Ditto. (KJS::stringProtoFuncSubstring): Ditto. (KJS::stringProtoFuncToLowerCase): Use toThisJSString. (KJS::stringProtoFuncToUpperCase): Ditto. (KJS::stringProtoFuncToLocaleLowerCase): Ditto. (KJS::stringProtoFuncToLocaleUpperCase): Ditto. (KJS::stringProtoFuncLocaleCompare): Ditto. (KJS::stringProtoFuncBig): Use toThisString. (KJS::stringProtoFuncSmall): Ditto. (KJS::stringProtoFuncBlink): Ditto. (KJS::stringProtoFuncBold): Ditto. (KJS::stringProtoFuncFixed): Ditto. (KJS::stringProtoFuncItalics): Ditto. (KJS::stringProtoFuncStrike): Ditto. (KJS::stringProtoFuncSub): Ditto. (KJS::stringProtoFuncSup): Ditto. (KJS::stringProtoFuncFontcolor): Ditto. (KJS::stringProtoFuncFontsize): Ditto. (KJS::stringProtoFuncAnchor): Ditto. (KJS::stringProtoFuncLink): Ditto.
- kjs/string_object.h: Added toString, toThisString, and toThisJSString.
- kjs/ustring.cpp: (KJS::UString::append): Added a version that takes a character pointer and size, so we don't have to create a UString just to append to another UString.
- kjs/ustring.h:
- 7:18 PM Changeset in webkit [34820] by
-
- 2 edits in trunk/WebCore
2008-06-26 Darin Adler <Darin Adler>
Reviewed by Geoff.
- bridge/runtime.h: Added include of JSString.h since jsString will soon change to return a JSString*.
- 7:17 PM Changeset in webkit [34819] by
-
- 3 edits in trunk/JavaScriptGlue
2008-06-26 Darin Adler <Darin Adler>
Reviewed by Geoff.
- JSUtils.cpp: Added include of <JavaScriptCore/JSString.h> since jsString will soon be changed to return a JSString*.
- UserObjectImp.cpp: Ditto.
- 5:08 PM Changeset in webkit [34818] by
-
- 2 edits in trunk/WebCore
2008-06-26 Adele Peterson <adele@apple.com>
Fix suggested by Eric Carlson, added by me, reviewed by Adam.
Fix for <rdar://problem/5733006> <video> and <audio> element should not prompt user for missing files
- platform/graphics/mac/MediaPlayerPrivateQTKit.mm: (WebCore::MediaPlayerPrivate::createQTMovie): Set object with key QTMovieAskUnresolvedDataRefsAttribute to NO in the attributes dictionary passed to -[QTMovie initWithAttributes:]
- 5:03 PM Changeset in webkit [34817] by
-
- 2 edits in trunk/WebCore
2008-06-26 Sam Weinig <sam@webkit.org>
Reviewed by John Sullivan.
<rdar://problem/6031969> Crash in SecurityOrigin code going Forward to a page in the back/forward cache
- loader/FrameLoader.cpp: (WebCore::FrameLoader::open): Make sure to update the SecurityOrigin and URL of the DOMWindow when opening a CachedPage.
- 3:54 PM Changeset in webkit [34816] by
-
- 4 edits in trunk
WebKitTools:
2008-06-26 Beth Dakin <Beth Dakin>
Reviewed by Sam.
Do not include AXPosition in the dump of all of the accessibility
attributes since it is screen-specific.
- DumpRenderTree/mac/AccessibilityControllerMac.mm: (AccessibilityController::allAttributesOfFocusedElement):
LayoutTests:
2008-06-26 Beth Dakin <Beth Dakin>
Reviewed by Sam.
Updated results that will pass on all platforms.
- accessibility/document-attributes-expected.txt:
- 3:45 PM Changeset in webkit [34815] by
-
- 5 edits in trunk/WebCore
Reviewed by Beth Dakin.
CSS @import statements can cause DocLoader to use
a dead Frame pointer.
https://bugs.webkit.org/show_bug.cgi?id=19618
The fix is to get rid of the Frame pointer on DocLoader.
I also took this opportunity to clean up Document::detach
a little to make it clear why we clear the m_frame pointer
there, and to note that in the future we should stop
using Node::detach to mean "tear down the whole rendering
tree and detach from the frame".
Test: I don't know how to make a good test for this, the test
we have is network timing dependent and does not make a good
layout test.
- dom/Document.cpp: (WebCore::Document::Document): (WebCore::Document::detach): (WebCore::Document::clearFramePointer):
- dom/Document.h:
- loader/DocLoader.cpp: (WebCore::DocLoader::frame):
- loader/DocLoader.h:
- 3:22 PM Changeset in webkit [34814] by
-
- 2 edits in trunk/LayoutTests
2008-06-26 Sam Weinig <sam@webkit.org>
Update result after adding new progress events to XMLHttpRequest.
- fast/dom/xmlhttprequest-get-expected.txt:
- 2:32 PM Changeset in webkit [34813] by
-
- 3 edits in trunk/WebKitTools
2008-06-26 Beth Dakin <Beth Dakin>
Reviewed by Anders.
This is a speculative fix for the failing layout test on the build
bot. It seems that the problem that the Build Bot is having is
Tiger-specific. On Tiger, [NSValue description] was not very smart.
So I replaced our call to description with a hand-rolled equivalent
that will match on both platforms.
- DumpRenderTree/mac/AccessibilityControllerMac.mm: (descriptionOfValue):
- 1:13 PM Changeset in webkit [34812] by
-
- 4 edits2 adds in trunk/WebKit
WebKit:
2008-06-26 Anders Carlsson <andersca@apple.com>
Reviewed by Darin.
Add MainThreadObjectDeallocator to sources.
- WebKit.xcodeproj/project.pbxproj:
WebKit/mac:
2008-06-26 Anders Carlsson <andersca@apple.com>
Reviewed by Darin.
Add a new MainThreadObjectDeallocator which can schedule dealloc calls on the main thread
if necessary. Use this for the WebView class.
- WebView/MainThreadObjectDeallocator.h: Added.
- WebView/MainThreadObjectDeallocator.mm: Added. (deallocCallback): (scheduleDeallocateOnMainThread):
- WebView/WebView.mm: (-[WebViewPrivate dealloc]): (+[WebView initialize]):
- 12:07 PM Changeset in webkit [34811] by
-
- 2 edits in trunk/WebCore
2008-06-26 Anders Carlsson <andersca@apple.com>
Reviewed by Brady.
Don't enumerate document.applets trying to determine if a page contains applets.
Instead, set m_containsPlugIns to true when an applet has been created.
- loader/FrameLoader.cpp: (WebCore::FrameLoader::canCachePage): (WebCore::FrameLoader::createJavaAppletWidget):
- 11:59 AM Changeset in webkit [34810] by
-
- 14 edits in trunk
Reviewed by Maciej.
Make JSGlobalData per-thread.
No change on SunSpider total.
- wtf/ThreadSpecific.h: Re-enabled the actual implementation.
- kjs/JSGlobalObject.cpp: (KJS::JSGlobalObject::~JSGlobalObject): Re-added a JSLock-related assertion. We'll probably want to preserve these somehow to keep legacy behavior in working condition. (KJS::JSGlobalObject::init): Initialize globalData pointer earlier, so that it is ready when updating JSGlobalObject linked list.
- kjs/JSGlobalObject.h: (KJS::JSGlobalObject::head): Changed head() to be non-static, and to use JSGlobalData associated with the current object.
- kjs/InitializeThreading.cpp: (KJS::initializeThreadingOnce): Removed a no longer needed Heap::registerAsMainThread() call.
- kjs/JSGlobalData.h: Removed a lying lie comment - parserObjectExtraRefCounts is not transient, and while newParserObjects may conceptually be such, there is still some node manipulation going on outside Parser::parse which touches it.
- kjs/JSGlobalData.cpp: (KJS::JSGlobalData::~JSGlobalData): Delete recently added members. (KJS::JSGlobalData::sharedInstance): Actually use a separate instance.
- kjs/collector.cpp: (KJS::Heap::Heap): (KJS::Heap::~Heap): Added a destructor, which unconditionally deletes everything. (KJS::Heap::sweep): Removed code related to "collect on main thread only" logic. (KJS::Heap::collect): Ditto. (KJS::Heap::globalObjectCount): Explicitly use per-thread instance of JSGlobalObject linked list now that JSGlobalObject::head() is not static. Curently, WebCoreStatistics methods only work with the main thread currently anyway. (KJS::Heap::protectedGlobalObjectCount): Ditto.
- kjs/collector.h: Removed code related to "collect on main thread only" logic.
- JavaScriptCore.exp: Removed Heap::collectOnMainThreadOnly.
- 11:37 AM Changeset in webkit [34809] by
-
- 4 edits3 adds in trunk
Reviewed by Darin.
https://bugs.webkit.org/show_bug.cgi?id=19767
REGRESSION: Crash in sort() when visiting http://www.onnyturf.com/subway/
- kjs/JSArray.cpp: (KJS::AVLTreeAbstractorForArrayCompare::set_balance_factor): Made changing balance factor from -1 to +1 work correctly.
- wtf/AVLTree.h: (KJS::AVLTreeDefaultBSet::operator[]): Added an assertion that catches this slightly earlier.
- 10:17 AM Changeset in webkit [34808] by
-
- 3 edits in trunk/WebCore
2008-06-26 Holger Hans Peter Freyther <zecke@selfish.org>
Reviewed by Simon.
[svg] Disable plugins for SVG images
The Qt platform allows to have a plugin factory per Page. Now SVG Images
are using a Page and dummy/empty clients for Chrome. The only way to get
the kit from the WebCore::Page is to go through the ChromeClient but this
is not possible when the ChromeClient is an empty client. This leads to a
crash in PluginDataQt.cpp. One way to avoid this would have been the
addition of a rtti like field to ChromeClient to see if it is an empty
client. The other possibility is to not enable plugins for images.
The SVGImage relies on the fact that the document is a SVGDocument and
that the rootElement is a SVGSVGElement. If plugins are used we could
end up with a PluginDocument and crash badly. Do not try to use plugins
if plugins are disabled for the WebCore::Page.
- 10:17 AM Changeset in webkit [34807] by
-
- 2 edits in trunk/WebCore
2008-06-25 Holger Hans Peter Freyther <zecke@selfish.org>
Reviewed by Simon.
CodingStyle fixes
- 10:17 AM Changeset in webkit [34806] by
-
- 3 edits in trunk/WebCore
2008-06-25 Holger Hans Peter Freyther <zecke@selfish.org>
Reviewed by Simon.
[svg] Make QtWebKit build more of the SVG support
Add the proper defines and files, update SVGResourceFilterQt.cpp
to be enabled by the filter option and not by experimental svg support
- 8:41 AM Changeset in webkit [34805] by
-
- 2 edits in trunk/WebKit/mac
2008-06-25 Anders Carlsson <andersca@apple.com>
Reviewed by Mark.
<rdar://problem/5984270>
REGRESSION (Tiger only) : Mail crashes because message load is being processed on a secondary thread
- WebView/WebView.mm: (tigerMailReleaseIMP): New method that makes sure that the final release happens on the main thread.
(-[WebView release]):
New method that just calls [super release];
(+[WebView initialize]):
When running under Tiger mail, replace the release method with tigerMailReleaseIMP.
- 6:51 AM BuildingOnWindows edited by
- Feedback on my experience building webkit: missing cygwin packages (diff)
Jun 25, 2008:
- 6:52 PM Changeset in webkit [34804] by
-
- 3 edits in trunk/WebKitSite
2008-06-25 Maciej Stachowiak <mjs@apple.com>
Not reviewed, web site fix.
Remove blank lines in an attempt to fix feeds.
- blog/wp-content/themes/webkit/index.php:
- blog/wp-content/themes/webkit/links.php:
- 6:10 PM Changeset in webkit [34803] by
-
- 1 edit1 move in trunk/LayoutTests
2008-06-25 Jean-Charles Verdié <jcverdie@pleyo.com>
Reviewed by Geoffrey Garen.
- https://bugs.webkit.org/show_bug.cgi?id=19581 Disable hanging test
- dom/xhtml/level2/html/HTMLFrameElement09.xhtml: Removed.
- dom/xhtml/level2/html/HTMLFrameElement09.xhtml-disabled: Copied from LayoutTests/dom/xhtml/level2/html/HTMLFrameElement09.xhtml.
- 5:22 PM Changeset in webkit [34802] by
-
- 6 edits8 adds in trunk
WebKitTools:
2008-06-25 Beth Dakin <Beth Dakin>
Reviewed by Sam Weinig.
This patch adds support to the AccessibilityController to query the
following attributes specifically, without a full attribute dump:
AXRole, AXTitle, and AXDescription.
- DumpRenderTree/AccessibilityController.cpp: (allAttributesForFocusedElementCallback): (roleOfFocusedElementCallback): (titleOfFocusedElementCallback): (descriptionOfFocusedElementCallback): (AccessibilityController::staticFunctions):
- DumpRenderTree/AccessibilityController.h:
- DumpRenderTree/mac/AccessibilityControllerMac.mm: (AccessibilityController::allAttributesForFocusedElement): (concatenateAttributeAndValue): (AccessibilityController::roleOfFocusedElement): (AccessibilityController::titleOfFocusedElement): (AccessibilityController::descriptionOfFocusedElement):
LayoutTests:
2008-06-25 Beth Dakin <Beth Dakin>
Reviewed by Sam Weinig.
New tests that exercise the ability to query the following
accessibility attributes individually: role, title, and
description.
- accessibility/aria-describedby-on-input-expected.txt: Added.
- accessibility/aria-describedby-on-input.html: Added.
- accessibility/aria-labelledby-on-input-expected.txt: Added.
- accessibility/aria-labelledby-on-input.html: Added.
- accessibility/aria-roles-expected.txt: Added.
- accessibility/aria-roles.html: Added.
- accessibility/document-attributes.html:
- accessibility/resources: Added.
- accessibility/resources/cake.png: Added.
- 4:44 PM Changeset in webkit [34801] by
-
- 3 edits in trunk/WebCore
2008-06-25 Sam Weinig <sam@webkit.org>
Reviewed by Brady Eidson.
Move XMLHttpRequestState enum into XMLHttpRequest and rename to State.
- xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::readyState): (WebCore::XMLHttpRequest::changeState): (WebCore::XMLHttpRequest::open):
- xml/XMLHttpRequest.h: (WebCore::XMLHttpRequest::create): (WebCore::XMLHttpRequest::):
- 2:44 PM Changeset in webkit [34800] by
-
- 6 edits1 copy in trunk
Fixes an ASSERT in the profiler when starting multiple profiles
with the same name inside the same function/program.
Reviewed by Kevin McCullough.
- profiler/Profile.cpp: (KJS::Profile::Profile): Initialize m_stoppedCallDepth to zero. (KJS::Profile::stopProfiling): Set the current node to the parent, because we are in a call that will not get a didExecute call. (KJS::Profile::removeProfile): Increment m_stoppedCallDepth to account for didExecute not being called for profile. (KJS::Profile::willExecute): Increment m_stoppedCallDepth if stopped. (KJS::Profile::didExecute): Decrement m_stoppedCallDepth if stopped and greater than zero, and return early.
- profiler/Profile.h: Added stoppedProfiling().
- profiler/Profiler.cpp: (KJS::Profiler::findProfile): Removed. (KJS::Profiler::startProfiling): Don't return early for stopped profiles. (KJS::Profiler::stopProfiling): Skipp stopped profiles. (KJS::Profiler::didFinishAllExecution): Code clean-up.
- profiler/Profiler.h: Removed findProfile.
- 2:22 PM Changeset in webkit [34799] by
-
- 10 edits4 adds in trunk
WebCore:
2008-06-25 Justin Garcia <justin.garcia@apple.com>
Reviewed by John.
<rdar://problem/5994480> Line break lost on some pastes
Merging the the first paragraph of inserted content with the content that came
before the selection that was pasted into would also move content after
the selection that was pasted into if:
1) Only one paragraph was being pasted, and it was not wrapped in a block
2) The selection that was pasted into ended at the end of a block
3) The next paragraph didn't start at the start of a block.
Insert a line break just after the inserted content to separate it from what
comes after and prevent that from happening.
Doing this exposed a bug in deletion where it would insert an unnecessary placeholder
when deleting a paragraph that started or ended with an input element. This was
because its m_startBlock and m_endBlock were still computed with the old deprecated
enclosingBlockFlowOrTableElement().
- editing/DeleteSelectionCommand.cpp: (WebCore::DeleteSelectionCommand::initializePositionData): Use the new method for getting an enclosing block. (WebCore::DeleteSelectionCommand::doApply): The new method for getting an enclosing block will return 0 if it reaches the root editable element before finding a block, so if we're deleting inside an inline editable root, m_start/endBlock will be 0. Removed an early return for this case (we already have test coverage for it).
- editing/ReplaceSelectionCommand.cpp: (WebCore::ReplaceSelectionCommand::doApply): Insert a line break just after the inserted content to separate it from what comes after.
- dom/Node.h: Removed enclosingBlockFlowOrTableElement().
- dom/Node.cpp: Ditto.
LayoutTests:
2008-06-25 Justin Garcia <justin.garcia@apple.com>
Reviewed by John.
<rdar://problem/5994480> Line break lost on some pastes
These demonstrate fixes:
- editing/inserting/5994480.html: Added.
- editing/inserting/5994480-expected.txt: Added.
- editing/inserting/5994480-2.html: Added.
- editing/inserting/5994480-2-expected.txt: Added.
The changes made in this fix caused more of the unrendered text from the original
file to be preserved and show up in the test results. We insert a line break after
inserted content to separate it from content that comes after and prevent it from
being merged. In these what came after was unrendered whitespace that was previously
clobbered by the merge:
- platform/mac/editing/pasteboard/paste-match-style-001-expected.txt:
- platform/mac/editing/pasteboard/paste-text-010-expected.txt:
- platform/mac/editing/pasteboard/smart-paste-001-expected.txt:
- platform/mac/editing/style/style-boundary-005-expected.txt:
- 1:51 PM Changeset in webkit [34798] by
-
- 1 edit in trunk/BugsSite/ChangeLog
Fixed date.
- 11:49 AM Changeset in webkit [34797] by
-
- 2 edits in trunk/BugsSite
Make PrettyPatch handle diffs with no Index or diff headers
Part of Bug 19290: More patches not handled by PrettyPatch.rb
<https://bugs.webkit.org/show_bug.cgi?id=19290>
Reviewed by Adam.
- PrettyPatch/PrettyPatch.rb: (PrettyPatch.DIFF_HEADER_FORMATS): Added regular expression to match on "+++ " lines for patches with no "Index" or "diff" header. (PrettyPatch.FileDiff.initialize): Look for filename on "+++ " line when the first line of a patch has no "Index" or "diff" header. (PrettyPatch.FileDiff.parse): Added haveSeenDiffHeader state variable to determine when no "Index" or "diff" header has been found, but a new patch has started with a "--- " line.
- 11:21 AM Changeset in webkit [34796] by
-
- 3 edits in trunk/WebCore
2008-06-25 Anders Carlsson <andersca@apple.com>
Reviewed by Dave Hyatt.
Fix refcount leak in CSSVariablesRule.
- css/CSSParser.cpp: (WebCore::CSSParser::createVariablesRule):
- css/CSSVariablesRule.h: (WebCore::CSSVariablesRule::create): (WebCore::CSSVariablesRule::setDeclaration):
- 10:31 AM Changeset in webkit [34795] by
-
- 3 edits2 adds in trunk
WebCore:
2008-06-25 Anders Carlsson <andersca@apple.com>
Reviewed by Mitz.
<rdar://problem/6007111>
https://bugs.webkit.org/show_bug.cgi?id=19516
DOM modification causes Access Violation (NULL pointer?)
Null check the document element.
- html/HTMLParser.cpp: (WebCore::HTMLParser::handleError):
LayoutTests:
2008-06-25 Anders Carlsson <andersca@apple.com>
Reviewed by Mitz.
<rdar://problem/6007111>
https://bugs.webkit.org/show_bug.cgi?id=19516
DOM modification causes Access Violation (NULL pointer?)
- fast/dom/HTMLHtmlElement/duplicate-html-element-crash-expected.txt: Added.
- fast/dom/HTMLHtmlElement/duplicate-html-element-crash.html: Added.
- 9:36 AM Changeset in webkit [34794] by
-
- 23 edits9 adds in trunk
WebCore:
Reviewed by Dave Hyatt.
- fix <rdar://problem/5873639> REGRESSION (r31620): css2.1/t1506-c525-font-wt-00-b fails on Windows
- fix https://bugs.webkit.org/show_bug.cgi?id=18863 <rdar://problem/5908890> weight mappings with @font-face aren't consistent
Tests: fast/css/font-face-locally-installed.html
fast/css/font-face-multiple-faces.html
- WebCore.vcproj/WebCore.vcproj: Added FontTraitsMask.h.
- WebCore.xcodeproj/project.pbxproj: Ditto.
- css/CSSFontFace.h: Made CSSFontFace store descriptors from the @font-face rule, as follows: (WebCore::CSSFontFace::create): Added a FontTraitsMask argument. (WebCore::CSSFontFace::traitsMask): Added this accessor. (WebCore::CSSFontFace::addRange): Added. (WebCore::CSSFontFace::ranges): Added. (WebCore::CSSFontFace::UnicodeRange::UnicodeRange): (WebCore::CSSFontFace::UnicodeRange::from): (WebCore::CSSFontFace::UnicodeRange::to): (WebCore::CSSFontFace::CSSFontFace): Added a FontTraitsMask and a vector of UnicodeRanges as member variables.
- css/CSSFontFaceSource.cpp: Changed the hash key from the font size alone to the font size and the synthetic style bits, needed if the same source supplies different synthesized versions. (WebCore::CSSFontFaceSource::pruneTable): (WebCore::CSSFontFaceSource::getFontData):
- css/CSSFontFaceSource.h:
- css/CSSFontSelector.cpp: (WebCore::CSSFontSelector::~CSSFontSelector): Added code to delete the contents of the font face, locally-installed font face and segmented font tables. (WebCore::CSSFontSelector::addFontFaceRule): Changed this function to not create segmented font faces, but instead just collect font faces and annotate them with descriptors (traits and unicode ranges). (WebCore::compareFontFaces): Added. Used in getFontData() to sort the font faces by proximity to the desired traits. (WebCore::CSSFontSelector::getFontData): Changed to create the segmented font face here and cache it.
- css/CSSFontSelector.h:
- css/CSSSegmentedFontFace.cpp: Changed to keep a vector of font faces instead of font face ranges, as font faces now know their Unicode ranges. (WebCore::CSSSegmentedFontFace::~CSSSegmentedFontFace): (WebCore::CSSSegmentedFontFace::isLoaded): (WebCore::CSSSegmentedFontFace::isValid): (WebCore::CSSSegmentedFontFace::appendFontFace): (WebCore::CSSSegmentedFontFace::getFontData): Removed the synthetic traits parameters, and instead changed to set them on each FontData separately based on the difference between the desired traits and the font face's traits.
- css/CSSSegmentedFontFace.h:
- platform/graphics/FontCache.h: Removed fontExists() and added getTraitsInFamily().
- platform/graphics/FontDescription.cpp: (WebCore::FontDescription::traitsMask): Added.
- platform/graphics/FontDescription.h:
- platform/graphics/FontTraitsMask.h: Added.
- platform/graphics/GlyphPageTreeNode.cpp: (WebCore::GlyphPageTreeNode::initializePage): Changed to fill in with glyphs from all fonts in the segmented font, using each font in turn to fill in characters not covered by earlier fonts.
- platform/graphics/gtk/FontCacheGtk.cpp: (WebCore::FontCache::getTraitsInFamily): Added a stub.
- platform/graphics/mac/FontCacheMac.mm: (WebCore::FontCache::getTraitsInFamily): Added.
- platform/graphics/qt/FontCacheQt.cpp: (WebCore::FontCache::getTraitsInFamily): Added a stub.
- platform/graphics/win/FontCacheWin.cpp: (WebCore::TraitsInFamilyProcData::TraitsInFamilyProcData): Added. (WebCore::traitsInFamilyEnumProc): Added. (WebCore::FontCache::getTraitsInFamily): Added.
- platform/graphics/wx/FontCacheWx.cpp: (WebCore::FontCache::getTraitsInFamily): Added a stub.
- platform/mac/WebFontCache.h:
- platform/mac/WebFontCache.mm: (toTraitsMask): Added. (+[WebFontCache getTraits:inFamily:]): Added.
LayoutTests:
Reviewed by Dave Hyatt.
- tests for https://bugs.webkit.org/show_bug.cgi?id=18863 <rdar://problem/5908890> weight mappings with @font-face aren't consistent
- fast/css/font-face-locally-installed.html: Added.
- fast/css/font-face-multiple-faces.html: Added.
- platform/mac/fast/css/font-face-locally-installed-expected.checksum: Added.
- platform/mac/fast/css/font-face-locally-installed-expected.png: Added.
- platform/mac/fast/css/font-face-locally-installed-expected.txt: Added.
- platform/mac/fast/css/font-face-multiple-faces-expected.checksum: Added.
- platform/mac/fast/css/font-face-multiple-faces-expected.png: Added.
- platform/mac/fast/css/font-face-multiple-faces-expected.txt: Added.
- platform/win/Skipped: Removed css2.1/t1506-c525-font-wt-00-b.html.
- 1:38 AM Changeset in webkit [34793] by
-
- 2 edits in trunk/JavaScriptCore
2008-06-25 Cameron Zwarich <cwzwarich@uwaterloo.ca>
Reviewed by Alexey Proskuryakov.
Attempt to fix Windows debug build. The compiler gives a warning when
Structured Exception Handling and destructors are used in the same
function. Using manual locking and unlocking instead of constructors
and destructors should fix the warning.
- kjs/Shell.cpp: (main):
- 12:15 AM Changeset in webkit [34792] by
-
- 4 edits in trunk/JavaScriptCore
Forgot to address a review comment about better names for tracked objects, doing it now.
- kjs/JSGlobalData.cpp: (KJS::JSGlobalData::JSGlobalData):
- kjs/JSGlobalData.h:
- kjs/nodes.cpp: (KJS::ParserRefCounted::ParserRefCounted): (KJS::ParserRefCounted::ref): (KJS::ParserRefCounted::deref): (KJS::ParserRefCounted::hasOneRef): (KJS::ParserRefCounted::deleteNewObjects):
- 12:07 AM Changeset in webkit [34791] by
-
- 11 edits in trunk/JavaScriptCore
Reviewed by Geoff.
Remove more threadInstance() calls.
- kjs/JSFunction.cpp: (KJS::JSFunction::getParameterName): (KJS::IndexToNameMap::unMap): (KJS::Arguments::deleteProperty):
- kjs/JSFunction.h: Access nullIdentifier without going to thread specific storage.
- JavaScriptCore.exp:
- kjs/JSGlobalData.cpp: (KJS::JSGlobalData::JSGlobalData):
- kjs/JSGlobalData.h:
- kjs/Parser.cpp: (KJS::Parser::parse):
- kjs/Parser.h: (KJS::ParserRefCountedData::ParserRefCountedData): (KJS::Parser::parse):
- kjs/grammar.y:
- kjs/nodes.cpp: (KJS::ParserRefCounted::ParserRefCounted): (KJS::ParserRefCounted::ref): (KJS::ParserRefCounted::deref): (KJS::ParserRefCounted::hasOneRef): (KJS::ParserRefCounted::deleteNewObjects): (KJS::Node::Node): (KJS::StatementNode::StatementNode): (KJS::BreakpointCheckStatement::BreakpointCheckStatement): (KJS::ConstDeclNode::ConstDeclNode): (KJS::BlockNode::BlockNode): (KJS::ForInNode::ForInNode): (KJS::ScopeNode::ScopeNode): (KJS::ProgramNode::ProgramNode): (KJS::ProgramNode::create): (KJS::EvalNode::EvalNode): (KJS::EvalNode::create): (KJS::FunctionBodyNode::FunctionBodyNode): (KJS::FunctionBodyNode::create):
- kjs/nodes.h: (KJS::ExpressionNode::): (KJS::NullNode::): (KJS::BooleanNode::): (KJS::NumberNode::): (KJS::ImmediateNumberNode::): (KJS::StringNode::): (KJS::RegExpNode::): (KJS::ThisNode::): (KJS::ResolveNode::): (KJS::ElementNode::): (KJS::ArrayNode::): (KJS::PropertyNode::): (KJS::PropertyListNode::): (KJS::ObjectLiteralNode::): (KJS::BracketAccessorNode::): (KJS::DotAccessorNode::): (KJS::ArgumentListNode::): (KJS::ArgumentsNode::): (KJS::NewExprNode::): (KJS::EvalFunctionCallNode::): (KJS::FunctionCallValueNode::): (KJS::FunctionCallResolveNode::): (KJS::FunctionCallBracketNode::): (KJS::FunctionCallDotNode::): (KJS::PrePostResolveNode::): (KJS::PostIncResolveNode::): (KJS::PostDecResolveNode::): (KJS::PostfixBracketNode::): (KJS::PostIncBracketNode::): (KJS::PostDecBracketNode::): (KJS::PostfixDotNode::): (KJS::PostIncDotNode::): (KJS::PostDecDotNode::): (KJS::PostfixErrorNode::): (KJS::DeleteResolveNode::): (KJS::DeleteBracketNode::): (KJS::DeleteDotNode::): (KJS::DeleteValueNode::): (KJS::VoidNode::): (KJS::TypeOfResolveNode::): (KJS::TypeOfValueNode::): (KJS::PreIncResolveNode::): (KJS::PreDecResolveNode::): (KJS::PrefixBracketNode::): (KJS::PreIncBracketNode::): (KJS::PreDecBracketNode::): (KJS::PrefixDotNode::): (KJS::PreIncDotNode::): (KJS::PreDecDotNode::): (KJS::PrefixErrorNode::): (KJS::UnaryOpNode::UnaryOpNode): (KJS::UnaryPlusNode::): (KJS::NegateNode::): (KJS::BitwiseNotNode::): (KJS::LogicalNotNode::): (KJS::BinaryOpNode::BinaryOpNode): (KJS::ReverseBinaryOpNode::ReverseBinaryOpNode): (KJS::MultNode::): (KJS::DivNode::): (KJS::ModNode::): (KJS::AddNode::): (KJS::SubNode::): (KJS::LeftShiftNode::): (KJS::RightShiftNode::): (KJS::UnsignedRightShiftNode::): (KJS::LessNode::): (KJS::GreaterNode::): (KJS::LessEqNode::): (KJS::GreaterEqNode::): (KJS::InstanceOfNode::): (KJS::InNode::): (KJS::EqualNode::): (KJS::NotEqualNode::): (KJS::StrictEqualNode::): (KJS::NotStrictEqualNode::): (KJS::BitAndNode::): (KJS::BitOrNode::): (KJS::BitXOrNode::): (KJS::LogicalAndNode::): (KJS::LogicalOrNode::): (KJS::ConditionalNode::): (KJS::ReadModifyResolveNode::): (KJS::AssignResolveNode::): (KJS::ReadModifyBracketNode::): (KJS::AssignBracketNode::): (KJS::AssignDotNode::): (KJS::ReadModifyDotNode::): (KJS::AssignErrorNode::): (KJS::CommaNode::): (KJS::VarDeclCommaNode::): (KJS::ConstStatementNode::): (KJS::SourceElements::SourceElements): (KJS::EmptyStatementNode::): (KJS::DebuggerStatementNode::): (KJS::ExprStatementNode::): (KJS::VarStatementNode::): (KJS::IfNode::): (KJS::IfElseNode::): (KJS::DoWhileNode::): (KJS::WhileNode::): (KJS::ForNode::): (KJS::ContinueNode::): (KJS::BreakNode::): (KJS::ReturnNode::): (KJS::WithNode::): (KJS::LabelNode::): (KJS::ThrowNode::): (KJS::TryNode::): (KJS::ParameterNode::): (KJS::FuncExprNode::): (KJS::FuncDeclNode::): (KJS::CaseClauseNode::): (KJS::ClauseListNode::): (KJS::CaseBlockNode::): (KJS::SwitchNode::): Changed ParserRefCounted to hold a JSGlobalData pointer, and used it to replace threadInstance calls.