Timeline



Mar 6, 2007:

11:42 PM Changeset in webkit [20009] by hyatt
  • 17 edits
    1 add
    1 delete in trunk/WebCore

This patch reworks the WebCore memory cache to significantly reduce the amount of memory consumed by
images in the cache and to enhance the accuracy of the cache size as an absolute bound for the objects
contained within it. WebCore's memory use over time should significantly improve as a result of these
changes.

Cached resources now have both an encoded size (the original data stream) and a decoded size (an estimate of
the amount of memory consumed by an expanded version of that resource, e.g., the decoded frames of an image).
Both sizes now count towards the total size of the object and towards the allowed memory cache total.

By including both totals the reported size of resources will now be larger, and the cache will therefore become
much more aggressive about flushing.

Objects are stored in size-adjusted and popularity-aware LRU lists as before, but encoded size is now always
used when determining the correct LRU list.

The flush algorithm for the memory cache has been rewritten to first destroy decoded data before evicting
resources. By being able to compact its resources without evicting them, the memory cache can now hold many more
unique resources (encoded) in the same amount of space. Depending on how much of a hit we want to take from
re-decoding images, the memory cache could in theory have its size significantly reduced now while still holding
more resources than it did at the larger size!

Reviewed by mjs

  • WebCore.xcodeproj/project.pbxproj:
  • loader/Cache.cpp: (WebCore::Cache::requestResource): (WebCore::Cache::prune): (WebCore::Cache::remove): (WebCore::Cache::lruListFor): (WebCore::Cache::adjustSize):
  • loader/Cache.h:
  • loader/CachedCSSStyleSheet.cpp: (WebCore::CachedCSSStyleSheet::data):
  • loader/CachedImage.cpp: (WebCore::CachedImage::CachedImage): (WebCore::CachedImage::allReferencesRemoved): (WebCore::CachedImage::clear): (WebCore::CachedImage::data): (WebCore::CachedImage::destroyDecodedData): (WebCore::CachedImage::decodedSize): (WebCore::CachedImage::decodedSizeChanged): (WebCore::CachedImage::shouldPauseAnimation):
  • loader/CachedImage.h:
  • loader/CachedResource.cpp: (WebCore::CachedResource::CachedResource): (WebCore::CachedResource::deref): (WebCore::CachedResource::setEncodedSize):
  • loader/CachedResource.h: (WebCore::CachedResource::allReferencesRemoved): (WebCore::CachedResource::size): (WebCore::CachedResource::encodedSize): (WebCore::CachedResource::decodedSize): (WebCore::CachedResource::destroyDecodedData):
  • loader/CachedScript.cpp: (WebCore::CachedScript::data):
  • loader/CachedXSLStyleSheet.cpp: (WebCore::CachedXSLStyleSheet::data):
  • platform/graphics/BitmapImage.cpp: (WebCore::BitmapImage::BitmapImage): (WebCore::BitmapImage::~BitmapImage): (WebCore::BitmapImage::destroyDecodedData): (WebCore::BitmapImage::pruneDecodedDataIfNeeded): (WebCore::BitmapImage::cacheFrame): (WebCore::BitmapImage::setNativeData): (WebCore::BitmapImage::shouldAnimate): (WebCore::BitmapImage::advanceAnimation):
  • platform/graphics/BitmapImage.h: (WebCore::BitmapImage::decodedSize):
  • platform/graphics/Image.cpp: (WebCore::Image::Image):
  • platform/graphics/Image.h: (WebCore::Image::destroyDecodedData): (WebCore::Image::decodedSize): (WebCore::Image::imageObserver):
  • platform/graphics/ImageAnimationObserver.h: Removed.
  • platform/graphics/ImageObserver.h: Added. (WebCore::ImageObserver::~ImageObserver):
  • platform/graphics/svg/SVGImage.cpp: (WebCore::SVGImage::SVGImage):
  • platform/graphics/svg/SVGImage.h:
10:03 PM Changeset in webkit [20008] by ap
  • 7 edits
    1 add in trunk

Reviewed by Sam Weinig.

http://bugs.webkit.org/show_bug.cgi?id=12987
Fix and import 4XPath test_numeric_expr.html

  • xml/XPathPredicate.cpp: (WebCore::XPath::Negative::doEvaluate): Convert the argument to number. (WebCore::XPath::NumericOp::doEvaluate): Convert the arguments to numbers. Use a correct operation for mod.
  • xml/XPathStep.cpp: (WebCore::XPath::Step::nodesInAxis): Do not append parent node if there is none.
  • xml/XPathValue.cpp: (WebCore::XPath::Value::toNumber): Do not convert to DeprecatedString just to trim whitespace and to convert to double.
  • platform/DeprecatedString.cpp: (WebCore::DeprecatedStringData::makeAscii): Added a FIXME about unreliable makeAscii() behavior.
9:55 PM Changeset in webkit [20007] by bdash
  • 1 edit in trunk/LayoutTests/fast/dom/select-selectedIndex-bug-12942-expected.txt

Fix broken layout test results.

9:36 PM Changeset in webkit [20006] by mjs
  • 2 edits in trunk/WebCore

Reviewed by Adele.

<rdar://problem/4619663> REGRESSION (NativePopup): Popup menu doesn't draw at the correct vertical position (9816)


  • platform/mac/PopupMenuMac.mm: (WebCore::PopupMenu::show): Make a temporary dummy view with the passed in rect, since AppKit will use the view bounds to determine what area to exclude when popping up a menu moved to the top of the screen.
9:25 PM Changeset in webkit [20005] by bdash
  • 2 edits in trunk/WebKitLibraries

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

Build fix. Rebuild against 10.4 SDK.

  • libWebKitSystemInterface.a:
8:25 PM Changeset in webkit [20004] by ggaren
  • 33 edits in trunk

JavaScriptCore:

Reviewed by Maciej Stachowiak.


Fixed all known crashers exposed by run-webkit-tests --threaded. This covers:

<rdar://problem/4565394> | http://bugs.webkit.org/show_bug.cgi?id=12585

PAC file: after closing a window that contains macworld.com, new window
crashes (KJS::PropertyMap::mark()) (12585)

<rdar://problem/4571215> | http://bugs.webkit.org/show_bug.cgi?id=9211

PAC file: Crash occurs when clicking on the navigation tabs at http://www.businessweek.com/ (9211)

<rdar://problem/4557926>

PAC file: Crash occurs when attempting to view image in slideshow mode
at http://d.smugmug.com/gallery/581716 ( KJS::IfNode::execute (KJS::
ExecState*) + 312) if you use a PAC file

(1) Added some missing JSLocks, along with related ASSERTs.


(2) Fully implemented support for objects that can only be garbage collected
on the main thread. So far, only WebCore uses this. We can add it to API
later if we learn that it's needed.


The implementation uses a "main thread only" flag inside each object. When
collecting on a secondary thread, the Collector does an extra pass through
the heap to mark all flagged objects before sweeping. This solution makes
the common case -- flag lots of objects, but never collect on a secondary
thread -- very fast, even though the uncommon case of garbage collecting
on a secondary thread isn't as fast as it could be. I left some notes
about how to speed it up, if we ever care.


For posterity, here are some things I learned about GC while investigating:


  • Each collect must either mark or delete every heap object. "Zombie" objects, which are neither marked nor deleted, raise these issues:
  • On the next pass, the conservative marking algorithm might mark a zombie, causing it to mark freed objects.
  • The client might try to use a zombie, which would seem live because its finalizer had not yet run.
  • A collect on the main thread is free to delete any object. Presumably, objects allocated on secondary threads have thread-safe finalizers.
  • A collect on a secondary thread must not delete thread-unsafe objects.
  • The mark function must be thread-safe.


Line by line comments:

  • API/JSObjectRef.h: Added comment specifying that the finalize callback may run on any thread.
  • bindings/npruntime.cpp: (_NPN_GetStringIdentifier): Added JSLock.
  • bindings/objc/objc_instance.h:
  • bindings/objc/objc_instance.mm: (ObjcInstance::~ObjcInstance): Use an autorelease pool. The other callers to CFRelease needed one, too, but they were dead code, so I removed them instead. (This fixes a leak seen while running run-webkit-tests --threaded, although I don't think it's specifically a threading issue.)


  • kjs/collector.cpp: (KJS::Collector::collectOnMainThreadOnly): New function. Tells the collector to collect a value only if it's collecting on the main thread. (KJS::Collector::markMainThreadOnlyObjects): New function. Scans the heap for "main thread only" objects and marks them.
  • kjs/date_object.cpp: (KJS::DateObjectImp::DateObjectImp): To make the new ASSERTs happy, allocate our globals on the heap, avoiding a seemingly unsafe destructor call at program exit time.
  • kjs/function_object.cpp: (FunctionPrototype::FunctionPrototype): ditto
  • kjs/interpreter.cpp: (KJS::Interpreter::mark): Removed boolean parameter, which was an incomplete and arguably hackish way to implement markMainThreadOnlyObjects() inside WebCore.
  • kjs/interpreter.h:
  • kjs/identifier.cpp: (KJS::identifierTable): Added some ASSERTs to check for thread safety problems.
  • kjs/list.cpp: Added some ASSERTs to check for thread safety problems. (KJS::allocateListImp): (KJS::List::release): (KJS::List::append): (KJS::List::empty): Make the new ASSERTs happy.
  • kjs/object.h: (KJS::JSObject::JSObject): "m_destructorIsThreadSafe" => "m_collectOnMainThreadOnly". I removed the constructor parameter because m_collectOnMainThreadOnly, like m_marked, is a Collector bit, so only the Collector should set or get it.
  • kjs/object_object.cpp: (ObjectPrototype::ObjectPrototype): Make the ASSERTs happy.
  • kjs/regexp_object.cpp: (RegExpPrototype::RegExpPrototype): ditto
  • kjs/ustring.cpp: Added some ASSERTs to check for thread safety problems. (KJS::UCharReference::ref): (KJS::UString::Rep::createCopying): (KJS::UString::Rep::create): (KJS::UString::Rep::destroy): (KJS::UString::null): Make the new ASSERTs happy.
  • kjs/ustring.h: (KJS::UString::Rep::ref): Added some ASSERTs to check for thread safety problems. (KJS::UString::Rep::deref):
  • kjs/value.h: (KJS::JSCell::JSCell):

JavaScriptGlue:

Reviewed by Maciej Stachowiak.

Fixed all known crashers exposed by run-webkit-tests --threaded while using
a PAC file (for maximum carnage). See JavaScriptCore ChangeLog for
more details.

  • JSBase.cpp: (JSBase::Release): Lock when deleting, because we may be deleting an object (like a JSRun) that holds thread-unsafe data.
  • JSUtils.cpp: (CFStringToUString): Don't lock, because our caller locks. Also, locking inside a function that returns thread-unsafe data by copy will only mask threading problems.
  • JavaScriptGlue.cpp: (JSRunEvaluate): Added missing JSLock. (JSRunCheckSyntax): Converted to JSLock.
  • JavaScriptGlue.xcodeproj/project.pbxproj:

WebCore:

Reviewed by Maciej Stachowiak.

Fixed all known crashers exposed by run-webkit-tests --threaded [*]. See
JavaScriptCore ChangeLog for more details.

  • bindings/js/kjs_binding.cpp: (KJS::domNodesPerDocument): Added thread safety ASSERT. (KJS::ScriptInterpreter::mark): Removed obsolete logic for marking unsafe objects when collecting on a secondary thread. The Collector takes care of this now.
  • bindings/js/kjs_binding.h: (KJS::DOMObject::DOMObject): Used new API for specifying that WebCore objects should be garbage collected on the main thread only.
  • bindings/js/kjs_window.cpp: (KJS::ScheduledAction::execute): Moved JSLock to cover implementedsCall() call, which, for some subclasses, ends up allocating garbage collected objects. (This fix was speculative. I didn't actually see a crash from this.) (KJS::Window::timerFired): Added JSLock around ScheduleAction destruction, since it destroys a KJS::List.
  • bindings/objc/WebScriptObject.mm: (-[WebScriptObject setException:]): Added JSLock. (This fix was speculative. I didn't actually see a crash from this.)
  • bridge/mac/WebCoreScriptDebugger.mm: (-[WebCoreScriptCallFrame evaluateWebScript:]): Added JSLock. (This fix was speculative. I didn't actually see a crash from this.)
  • dom/Document.cpp: (WebCore::Document::~Document): Added JSLock around modification to domNodesPerDocument(), which can be accessed concurrently during garbage collection.
  • dom/Node.cpp: (WebCore::Node::setDocument): ditto.


[*] fast/js/toString-stack-overflow.html is an exception. --threaded mode
crashes this test because it causes the garbage collector to run frequently,
and this test crashes if you happen to garbage collect while it's running.
This is a known issue with stack overflow during the mark phase. It's
not related to threading.

8:18 PM Changeset in webkit [20003] by kdecker
  • 2 edits in trunk/WebKitLibraries

Reviewed by Brady

Fixed: <rdar://problem/4126976> private keys imported by WebKit should not be accessible by all applications

  • libWebKitSystemInterface.a:
8:16 PM Changeset in webkit [20002] by bdash
  • 2 edits in trunk/LayoutTests

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

Add dumpAsText to test to match expected results.

  • fast/dom/Window/window-location-replace-functions.html:
8:07 PM Changeset in webkit [20001] by bdash
  • 4 edits
    2 adds in trunk

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

Reviewed by Sam Weinig.

Fix http://bugs.webkit.org/show_bug.cgi?id=12942
Bug 12942: ASSERTION FAILURE: qantas.com.au changing selected item in <select> via JS

Test: fast/dom/select-selectedIndex-bug-12942.html.

  • html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::recalcListItems): Reset m_lastOnChangeIndex when recalculating list items.
  • html/HTMLSelectElement.h:

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

Reviewed by Sam Weinig.

Test for http://bugs.webkit.org/show_bug.cgi?id=12942
Bug 12942: ASSERTION FAILURE: qantas.com.au changing selected item in <select> via JS

  • fast/dom/select-selectedIndex-bug-12942-expected.txt: Added.
  • fast/dom/select-selectedIndex-bug-12942.html: Added.
8:05 PM Changeset in webkit [20000] by beidson
  • 1 edit in trunk/WebCore/ChangeLog

Rubberstamped by Kevin Decker

20,000!

  • ChangeLog: Point out revision 20,000
8:04 PM Changeset in webkit [19999] by kjk
  • 3 edits in trunk/WebCore

Not reviewed.

Gdk build fix.

  • loader/gdk/FrameLoaderClientGdk.cpp: update userAgent() signature. (WebCore::FrameLoaderClientGdk::userAgent):
  • loader/gdk/FrameLoaderClientGdk.h: ditto.
7:40 PM Changeset in webkit [19998] by bdash
  • 3 edits
    4 adds in trunk

2007-03-06 Mitz Pettel <mitz@webkit.org>

Reviewed by Adele.

Test: fast/forms/select-change-listbox-size.html

  • html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::parseMappedAttribute): Reattach on list box size change.

2007-03-06 Mitz Pettel <mitz@webkit.org>

Reviewed by Adele.

  • fast/forms/select-change-listbox-size-expected.checksum: Added.
  • fast/forms/select-change-listbox-size-expected.png: Added.
  • fast/forms/select-change-listbox-size-expected.txt: Added.
  • fast/forms/select-change-listbox-size.html: Added.
7:35 PM Changeset in webkit [19997] by bdash
  • 37 edits
    8 adds in trunk

2007-03-06 Mitz Pettel <mitz@webkit.org>

Reviewed by Dave Hyatt.

Tests: fast/repaint/content-into-overflow.html

fast/repaint/overflow-into-content.html

Changed repaintAfterLayoutIfNeeded() to take, in addition to the clipped overflow
rect, the unclipped border box plus outline, and to repaint any areas that
were added or removed from that box, in addition to any areas added or removed
from the clipped overflow rect.

  • platform/graphics/svg/SVGResourceMarker.cpp: (WebCore::SVGResourceMarker::draw):
  • rendering/RenderBlock.cpp: (WebCore::RenderBlock::layoutBlock):
  • rendering/RenderBox.cpp: (WebCore::RenderBox::absoluteClippedOverflowRect): Renamed getAbsoluteRepaintRect() to this.
  • rendering/RenderBox.h:
  • rendering/RenderFlexibleBox.cpp: (WebCore::RenderFlexibleBox::layoutBlock):
  • rendering/RenderFlow.cpp: (WebCore::RenderFlow::absoluteClippedOverflowRect):
  • rendering/RenderFlow.h:
  • rendering/RenderForeignObject.cpp: (WebCore::RenderForeignObject::layout):
  • rendering/RenderHTMLCanvas.cpp: (WebCore::RenderHTMLCanvas::layout):
  • rendering/RenderImage.cpp: (WebCore::RenderImage::layout):
  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::RenderLayer): (WebCore::RenderLayer::checkForRepaintOnResize): (WebCore::RenderLayer::updateLayerPositions):
  • rendering/RenderLayer.h:
  • rendering/RenderObject.cpp: (WebCore::RenderObject::repaint): (WebCore::RenderObject::repaintAfterLayoutIfNeeded): (WebCore::RenderObject::getAbsoluteRepaintRectWithOutline): (WebCore::RenderObject::absoluteClippedOverflowRect): (WebCore::RenderObject::absoluteOutlineBox):
  • rendering/RenderObject.h:
  • rendering/RenderPath.cpp: (WebCore::RenderPath::layout): (WebCore::RenderPath::absoluteClippedOverflowRect): (WebCore::RenderPath::absoluteRects): (WebCore::RenderPath::drawMarkersIfNeeded):
  • rendering/RenderPath.h:
  • rendering/RenderSVGContainer.cpp: (WebCore::RenderSVGContainer::layout): (WebCore::RenderSVGContainer::absoluteClippedOverflowRect): (WebCore::RenderSVGContainer::absoluteRects):
  • rendering/RenderSVGContainer.h:
  • rendering/RenderSVGHiddenContainer.cpp: (WebCore::RenderSVGHiddenContainer::absoluteClippedOverflowRect):
  • rendering/RenderSVGHiddenContainer.h:
  • rendering/RenderSVGImage.cpp: (WebCore::RenderSVGImage::imageChanged): (WebCore::RenderSVGImage::absoluteClippedOverflowRect): (WebCore::RenderSVGImage::absoluteRects):
  • rendering/RenderSVGImage.h:
  • rendering/RenderSVGText.cpp: (WebCore::RenderSVGText::absoluteClippedOverflowRect): (WebCore::RenderSVGText::layout): (WebCore::RenderSVGText::absoluteRects):
  • rendering/RenderSVGText.h:
  • rendering/RenderTable.cpp: (WebCore::RenderTable::layout):
  • rendering/RenderTableCell.cpp: (WebCore::RenderTableCell::absoluteClippedOverflowRect):
  • rendering/RenderTableCell.h:
  • rendering/RenderTableCol.cpp: (WebCore::RenderTableCol::absoluteClippedOverflowRect):
  • rendering/RenderTableCol.h:
  • rendering/RenderTableRow.cpp: (WebCore::RenderTableRow::absoluteClippedOverflowRect):
  • rendering/RenderTableRow.h:
  • rendering/RenderText.cpp: (WebCore::RenderText::absoluteClippedOverflowRect):
  • rendering/RenderText.h:

2007-03-06 Mitz Pettel <mitz@webkit.org>

Reviewed by Dave Hyatt.

  • fast/repaint/bugzilla-6278-expected.checksum:
  • fast/repaint/bugzilla-6278-expected.png:
  • fast/repaint/content-into-overflow-expected.checksum: Added.
  • fast/repaint/content-into-overflow-expected.png: Added.
  • fast/repaint/content-into-overflow-expected.txt: Added.
  • fast/repaint/content-into-overflow.html: Added.
  • fast/repaint/overflow-into-content-expected.checksum: Added.
  • fast/repaint/overflow-into-content-expected.png: Added.
  • fast/repaint/overflow-into-content-expected.txt: Added.
  • fast/repaint/overflow-into-content.html: Added.
7:30 PM Changeset in webkit [19996] by bdash
  • 1 edit
    2 adds in trunk/LayoutTests

2007-03-06 Ian Eng <ian.eng.webkit@gmail.com>

Reviewed by Maciej.

  • fast/dom/Window/window-location-replace-functions-expected.txt: Added.
  • fast/dom/Window/window-location-replace-functions.html: Added.
7:15 PM Changeset in webkit [19995] by bdash
  • 2 edits in trunk/WebCore

2007-03-06 Ian Eng <ian.eng.webkit@gmail.com>

Reviewed by Maciej.

  • bindings/js/kjs_window.cpp: Disallow replacing functions in LocationTable, and return early without updating URL.
6:27 PM Changeset in webkit [19994] by ggaren
  • 2 edits in trunk/JavaScriptCore

Reviewed by Maciej Stachowiak.


2% speedup on super accurate JS iBench.

(KJS::Collector::collect): Removed anti-optimization to call
pthread_is_threaded_np() before calling pthread_main_np(). Almost all
apps have more than one thread, so the extra call is actually worse.
Interestingly, even the single-threaded testkjs shows a speed gain
from removing the pthread_is_threaded_np() short-circuit. Not sure why.

6:22 PM Changeset in webkit [19993] by kmccullo
  • 3 edits
    2 adds in trunk

LayoutTests:

Reviewed by Darin.

<http://bugs.webkit.org/show_bug.cgi?id=12686>
REGRESSION: Bloglines.com Feeds tab cannot expand folders in TOT

  • Now all class constructors implement implementsHasInstance.
  • fast/dom/dom-instanceof-expected.txt: Added.
  • fast/dom/dom-instanceof.html: Added.

WebCore:

Reviewed by Darin.

<http://bugs.webkit.org/show_bug.cgi?id=12686>
REGRESSION: Bloglines.com Feeds tab cannot expand folders in TOT

  • Now all class constructors implement implementsHasInstance.
  • bindings/scripts/CodeGeneratorJS.pm:
4:51 PM Changeset in webkit [23034] by andersca
  • 2 edits in branches/WindowsMerge/WebKitWin

WebKitWin:

Reviewed by Adam.

  • WebFrame.cpp: (WebFrame::makeDocumentView): Call resetMultipleFormSubmissionProtection() so that submitting the same form from separate loads works.
4:36 PM Changeset in webkit [23033] by beidson
  • 2 edits in branches/WindowsMerge/WebKitWin

Reviewed by Adam

Adapt to an API change in CFURLDownload


  • WebDownload.cpp: (WebDownload::init):
4:35 PM Changeset in webkit [23032] by aroben
  • 2 edits in branches/WindowsMerge/WebCore

Fixing the build while semi-blind is fun.

  • platform/win/TemporaryLinkStubs.cpp: (WebCore::supportedKeySizes): Need a namespace. (WebCore::signedPublicKeyAndChallengeString): Ditto.
4:27 PM Changeset in webkit [19992] by zimmermann
  • 9 edits in trunk/WebCore

Reviewed by Rob & Oliver.

Preparations for the new SVG text engine.

Handle baseline-shift / kerning css values correctly.
Recognize missing svg presentation attribute "font-size-adjust".
Add all missing svg<->css property mappings in mapToEntry().

Doesn't affect any layout test (as these properties are not used w/o my text patch).
While I'm at it, unify the macro names (RS_ -> SVG_RS_) & cleanup style a bit.

4:19 PM Changeset in webkit [23031] by aroben
  • 2 edits in branches/WindowsMerge/WebCore

It works better if you use valid C++ syntax.

  • platform/win/TemporaryLinkStubs.cpp:
4:19 PM Changeset in webkit [23030] by aroben
  • 2 edits in branches/WindowsMerge/WebCore

Build fix.

  • platform/win/TemporaryLinkStubs.cpp: Added missing stubs.
4:11 PM Changeset in webkit [19991] by justing
  • 17 edits
    8 adds in trunk

LayoutTests:

Reviewed by kevin


<http://bugs.webkit.org/show_bug.cgi?id=12245>
FCKeditor: Remove Format sometimes doesn't work
<rdar://problem/4786404>
Underline style is not removed from selection after performing Remove Format

Added:

  • editing/execCommand/4786404-1-expected.checksum: Added.
  • editing/execCommand/4786404-1-expected.png: Added.
  • editing/execCommand/4786404-1-expected.txt: Added.
  • editing/execCommand/4786404-1.html: Added.
  • editing/execCommand/4786404-2-expected.checksum: Added.
  • editing/execCommand/4786404-2-expected.png: Added.
  • editing/execCommand/4786404-2-expected.txt: Added.
  • editing/execCommand/4786404-2.html: Added. Demonstrate fixes:
  • editing/execCommand/4920488-expected.checksum:
  • editing/execCommand/4920488-expected.png:
  • editing/execCommand/4920488-expected.txt:
  • editing/execCommand/4920742-1-expected.checksum:
  • editing/execCommand/4920742-1-expected.png:
  • editing/execCommand/4920742-1-expected.txt:
  • editing/execCommand/remove-formatting-2-expected.checksum:
  • editing/execCommand/remove-formatting-2-expected.png:
  • editing/execCommand/remove-formatting-2-expected.txt: Ditto, also added a FIXME:
  • editing/execCommand/remove-formatting-expected.checksum:
  • editing/execCommand/remove-formatting-expected.png:
  • editing/execCommand/remove-formatting-expected.txt:
  • editing/execCommand/remove-formatting.html:

WebCore:

Reviewed by kevin


<http://bugs.webkit.org/show_bug.cgi?id=12245>
FCKeditor: Remove Format sometimes doesn't work
<rdar://problem/4786404>
Underline style is not removed from selection after performing Remove Format

  • editing/Editor.cpp: (WebCore::Editor::removeFormattingAndStyle): Re-wrote this.
3:45 PM Changeset in webkit [19990] by zimmermann
  • 1 edit
    8 adds in trunk/LayoutTests

Reviewed by Oliver.

Add new <use> layout tests. (forgot in last commit)

3:40 PM Changeset in webkit [19989] by zimmermann
  • 3 edits in trunk/WebCore

Reviewed by Oliver.

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

Guard against registering pending resources with empty id.
Be careful with calling recalcStyle() in SVGUseElement, when change is "Detach" we
have to use special code, as calling attach() on the shadow tree root element will crash,
because it has no (direct) parent node, only a shadow parent node element.

2:38 PM Changeset in webkit [19988] by kdecker
  • 6 edits
    2 adds in trunk

Reviewed by Adele.

Fixed: <rdar://problem/5041660> REGRESSION: <keygen> element broken, prevents users from signing up for Thawte email certs


  • bindings/objc/DOM.mm: (WebCore::createElementClassMap): Added <keygen> to the DOM bindings so it can be accessed from Objective-C.
  • css/html4.css: Apply the look of the <select> element to <keygen>.
  • html/HTMLElementFactory.cpp: (WebCore::keygenConstructor): Added. (WebCore::createFunctionMap): Added keygen.
  • html/HTMLSelectElement.cpp: Made const typeAheadTimeout variable static const. (WebCore::HTMLSelectElement::HTMLSelectElement): Fix both HTMLSelectElement constructors to initialize the same number of member variables. The fact that some fields were not initialized could (and would) crash the keygen element when selecting different items. Also removed m_typedString(String()) from the constructor initialization because this is not needed.
1:48 PM Changeset in webkit [19987] by zimmermann
  • 3 edits in trunk/LayoutTests

Reviewed by Mitz.
Remove an alert() which got accidently added in my last commit.

11:35 AM Changeset in webkit [19986] by sullivan
  • 3 edits in trunk/WebKit

Reviewed by Darin


Made WebAuthenticationHandler.h SPI so Safari can call it directly.

  • WebKit.exp: added .objc_class_name_WebPanelAuthenticationHandler
  • WebKit.xcodeproj/project.pbxproj: changed status of WebAuthenticationHandler.h from "project" to "private"
11:29 AM Changeset in webkit [19985] by kmccullo
  • 3 edits in trunk/WebKit

Reviewed by Darin.

  • Rename a function to clarify its purpose.
  • WebView/WebView.mm: (+[WebView registerURLSchemeAsLocal:]):
  • WebView/WebViewPrivate.h:
11:28 AM Changeset in webkit [19984] by kmccullo
  • 4 edits in trunk/WebCore

Reviewed by Darin.

  • Rename a function to clarify its purpose.
  • WebCore.exp:
  • loader/FrameLoader.cpp: (WebCore::FrameLoader::registerURLSchemeAsLocal):
  • loader/FrameLoader.h:
9:05 AM Changeset in webkit [23029] by sfalken
  • 1 edit in branches/WindowsMerge/WebKitWin/WebKit.vcproj/VERSION

Bump version for submit

9:02 AM Changeset in webkit [19983] by sfalken
  • 1 copy in tags/Safari-521.35.6b

New tag.

8:17 AM Changeset in webkit [19982] by brmorris
  • 3 edits in S60/trunk/WebKit

yinxcai, reviewed by <Sachin>

DESC: ASOG-6YTLNA -- Remove BROWSER_OSS_ENGINE flag from webkit.iby and webkitresources.iby
http://bugs.webkit.org/show_bug.cgi?id=12935

3:08 AM Changeset in webkit [23028] by sfalken
  • 2 edits in branches/WindowsMerge/WebKitWin

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

Rubber-stamped by Adam.


Fix disney.com more. Disney redirects to disney.go.com.

  • WebView.cpp: (WebView::userAgentForKURL): Added disney.go.com
2:27 AM Changeset in webkit [19981] by aroben
  • 2 edits in trunk/WebCore

Build fix.

  • WebCore.exp: Updated symbols.
2:02 AM Changeset in webkit [23027] by aroben
  • 6 edits in branches/WindowsMerge

WebCoreWin:

Reviewed by Anders.

Always keep rounding hacks on.

  • platform/win/FileChooserWin.cpp: (WebCore::FileChooser::basenameForWidth): Tell StringTruncator to keep rounding hacks on.
  • platform/win/WebCoreTextRenderer.cpp: (WebCore::WebCoreTextFloatWidth): Ditto.

WebKitWin:

Reviewed by Anders.

Always keep rounding hacks on to be consistent.

  • WebDragClient.cpp: (createDragImageForLink): Tell StringTruncator to keep rounding hacks on.
  • WebKitGraphics.cpp: (CenterTruncateStringToWidth): Ditto. (RightTruncateStringToWidth): Ditto.
1:57 AM Changeset in webkit [19980] by aroben
  • 4 edits in trunk/WebCore

Reviewed by Anders.

Added a parameter to all StringTruncator methods to specify whether
rounding hacks should be on or off.

No layout test possible.

  • platform/StringTruncator.cpp: (WebCore::stringWidth): Added disableRoundingHacks parameter. (WebCore::truncateString): Ditto. (WebCore::StringTruncator::centerTruncate): Ditto. (WebCore::StringTruncator::rightTruncate): Ditto. (WebCore::StringTruncator::width): Ditto.
  • platform/StringTruncator.h: Ditto.
  • platform/mac/FileChooserMac.mm: (WebCore::FileChooser::basenameForWidth): Pass in false to centerTruncate so that the truncation matches the way the text will be rendered.
1:32 AM Changeset in webkit [23026] by sfalken
  • 2 edits in branches/WindowsMerge/WebKitWin

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

Reviewed by Adam.


Allow custom user agents per site.


This fixes:


http://www.disney.com
http://www.yahoo.com
http://mail.google.com
iTunes store links (w/ latest unsubmitted CFNetwork from our root share)

  • WebView.cpp: (WebView::userAgentForKURL): Check URL host against a list of known offenders, return them what they're looking for.
1:05 AM Changeset in webkit [19979] by andersca
  • 8 edits in trunk

LayoutTests:

Reviewed by Maciej.

<rdar://problem/5035045>
REGRESSION: WebKit browser doesn't display image at http://www.metoffice.gov.uk/weather/satellite/index.html


Add some tests where image elements have id _and_ name elements.


  • fast/dom/HTMLDocument/document-special-properties-expected.txt:
  • fast/dom/HTMLDocument/document-special-properties.html:

WebCore:

Reviewed by Maciej.

<rdar://problem/5035045>
REGRESSION: WebKit browser doesn't display image at http://www.metoffice.gov.uk/weather/satellite/index.html


It turns out WinIE does allow you to access images by their id as special document properties. However, this is only
allowed when the element also has a name attribute. The value of the name attribute is ignored and can even be empty!


  • bindings/js/kjs_html.cpp: (KJS::JSHTMLDocument::namedItemGetter): Return jsUndefined() if the collection is empty.


  • html/HTMLImageElement.cpp: (WebCore::HTMLImageElement::parseMappedAttribute): (WebCore::HTMLImageElement::insertedIntoDocument): (WebCore::HTMLImageElement::removedFromDocument):
  • html/HTMLImageElement.h: Add the id attribute value to the extra named item map.


  • html/HTMLNameCollection.cpp: (WebCore::HTMLNameCollection::traverseNextItem): Check for images with name attributes that match, as well as elements with id attributes that match where the element also has a name attribute.
12:50 AM Changeset in webkit [23025] by andersca
  • 5 edits in branches/WindowsMerge

WebKitWin:

Reviewed by Adam.


Pass the user agent on.


  • WebFrame.cpp: (WebFrame::userAgent):
  • WebFrame.h:
12:37 AM Changeset in webkit [19978] by andersca
  • 10 edits in trunk

WebCore:

Reviewed by Adam.

WebCore part of patch to make it possible to have different user agents for different URLs.

  • bindings/js/kjs_navigator.cpp: (KJS::Navigator::getValueProperty):
  • bindings/js/kjs_proxy.cpp: (WebCore::KJSProxy::initScriptIfNeeded):
  • loader/DocumentLoader.cpp: (WebCore::DocumentLoader::setLoading):
  • loader/FrameLoader.cpp: (WebCore::FrameLoader::userAgent): (WebCore::FrameLoader::loadResourceSynchronously): (WebCore::FrameLoader::applyUserAgent):
  • loader/FrameLoader.h:
  • loader/FrameLoaderClient.h:
  • platform/graphics/svg/SVGImageEmptyClients.h: (WebCore::SVGEmptyFrameLoaderClient::userAgent):

WebKit:

Reviewed by Adam.

Update for WebCore changes.


  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm: (WebFrameLoaderClient::userAgent):

Mar 5, 2007:

11:04 PM Changeset in webkit [19977] by kmccullo
  • 13 edits
    2 adds in trunk

LayoutTests:

Reviewed by Mark and Dave H.

  • rdar://problem/5038491 An oversite of the security fix that prevented remote from loading local is that it prevents user style sheets when the site is remote. This fixes that.
  • http/tests/security/local-user-CSS-from-remote-expected.txt: Added.
  • http/tests/security/local-user-CSS-from-remote.html: Added.

WebCore:

Reviewed by Mark and Dave H.

  • rdar://problem/5038491 An oversite of the security fix that prevented remote from loading local is that it prevents user style sheets when the site is remote. This fixes that.
  • loader/Cache.cpp: Propogate and check user style sheet flag. (WebCore::createResource): (WebCore::Cache::requestResource):
  • loader/Cache.h: Propogate user style sheet flag.
  • loader/CachedCSSStyleSheet.cpp: Propogate user style sheet flag. (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
  • loader/CachedCSSStyleSheet.h: Propogate user style sheet flag.
  • loader/DocLoader.cpp: Propogate user style sheet flag. (WebCore::DocLoader::requestResource):
  • loader/SubresourceLoader.cpp: Propogate and check user style sheet flag. (WebCore::SubresourceLoader::create):
  • loader/SubresourceLoader.h: Add check for user style sheet flag.
  • loader/loader.cpp: Propogate user style sheet flag. (WebCore::Loader::load): (WebCore::Loader::servePendingRequests):
  • loader/loader.h: Propogate user style sheet flag.

WebKitTools:

Reviewed by Mark and Dave H.

  • rdar://problem/4922454
  • This fixes a security issue by making remote referrers not able to access local resources, unless they register their schemes to be treated as local. The result is that those schemes can access local resources and cannot be accessed by remote referrers. Because this behavior is new a link-on-or-after check is made to determine if the app should use the older, less safe, behavior.
  • DumpRenderTree/DumpRenderTree.m: Add ability to set user style sheet to DRT. (+[LayoutTestController isSelectorExcludedFromWebScript:]): (+[LayoutTestController webScriptNameForSelector:]): (-[LayoutTestController setUserStyleSheetLocation:]): (-[LayoutTestController setUserStyleSheetEnabled:]):
10:33 PM Changeset in webkit [23024] by andersca
  • 2 edits in branches/WindowsMerge/WebCore

Reviewed by Adam.

<rdar://problem/5041348>
Can't watch videos at cnn.com


  • plugins/win/PluginStreamWin.cpp: (WebCore::PluginStreamWin::cancelAndDestroyStream): Change this function back to call call stop() after destroyStream(). Also, make sure to protect the stream since destroyStream can eventually, well, destroy it.
9:41 PM Changeset in webkit [19976] by bdash
  • 1 edit in tags/Safari-5522.2/WebKit/Info.plist

Versioning.

9:40 PM Changeset in webkit [19975] by bdash
  • 3 edits in tags/Safari-5522.2/WebKit

Merge in r19929.

2007-03-01 Justin Garcia <justin.garcia@apple.com>

Reviewed by harrison


<rdar://problem/4838199>
Integrate Mail and WebKit paste operations


Provide subresources used to create the fragment as a
convenience.

  • WebView/WebHTMLView.mm: (-[WebHTMLView _documentFragmentFromPasteboard:inContext:allowPlainText:chosePlainText:]): Update the calls to the changed method. (-[WebHTMLView _documentFragmentFromPasteboard:forType:inContext:subresources:]): Give the caller the subresources in the WebArchive and RTF cases.
  • WebView/WebHTMLViewPrivate.h:
9:36 PM Changeset in webkit [19974] by bdash
  • 1 copy in tags/Safari-5522.2/WebKit

New tag (part 2).

9:35 PM Changeset in webkit [19973] by bdash
  • 1 add in tags/Safari-5522.2

New tag (part 1).

5:35 PM Changeset in webkit [19972] by zimmermann
  • 142 edits
    10 adds in trunk

Reviewed by Darin.

Fix all (except one) known <use> bug. The remaining bug (12630) is not crucical at all.
Enable <use> again as default SVG feature, as discussed on webkit-dev.

Fixes: http://bugs.webkit.org/show_bug.cgi?id=12936 (Master bug used to track all current use problems.)
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12926 (transform attribute not respected in nested <use> elements)
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12267 (getElementById broken for <use>)
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12916 (use instance in symbol definition does not work)
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12917 (mouseout event does not occur after scaling use instance)
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12838 (SVG <use> DOM broken for script)

Added test: svg/custom/use-nested-transform.svg
Added test: svg/custom/struct-use-09-b.svg (not yet official W3C-SVG-1.1 testcase)
Fixes test: svg/custom/use-elementInstance-event-target.svg (rectangle now turns green on first click)

5:11 PM Changeset in webkit [19971] by beidson
  • 3 edits in trunk/WebCore

Reviewed by John

Fixes <rdar://problem/4974258>
Adds some key null checking

  • bindings/js/kjs_html.cpp: (KJS::JSHTMLElement::implementsCall): Null check doc/frame
  • bindings/objc/DOMInternal.mm: (-[WebScriptObject _initializeScriptDOMNodeImp]): Null check doc/frame
4:05 PM Changeset in webkit [19970] by zimmermann
  • 5 edits
    4 adds in trunk

Reviewed by Darin.

Path::normalAngleAtLength() / Path::pointAtLength() don't work correctly.
pointAtLength() was not implemented, basically and normalAngleAtLength()
had a bug in the tangent slope calculation.

The normalAngleAtLength() stuff can only be tested with my local textPath support.
New LayoutTest: svg/custom/path-textPath-simulation.svg

3:02 PM Changeset in webkit [19969] by oliver
  • 1 edit
    2 moves
    2 adds in trunk/LayoutTests

2007-03-05 Darin Adler <Darin Adler>

Reviewed by Oliver.

Text encoding test case

  • fast/encoding/char-encoding-expected.txt: Added.
  • fast/encoding/char-encoding.html: Added.
  • fast/encoding/charset-names-expected.txt: Moved.
  • fast/encoding/charset-names.html: Moved.
1:09 PM Changeset in webkit [23023] by andersca
  • 2 edits in branches/WindowsMerge/WebCore

Reviewed by Adam.

<rdar://problem/4987743>
Regression: java content is represented as broken images on pages


  • plugins/win/PluginPackageWin.cpp: (WebCore::PluginPackageWin::load): Make sure to set the size of the NPPluginFuncs struct correctly.
12:39 PM Changeset in webkit [19968] by ap
  • 5 edits
    1 copy
    1 add in trunk

Reviewed by Darin.

http://bugs.webkit.org/show_bug.cgi?id=12970
Fix and import 4XPath test_core_functions.html test

WebCore:

  • xml/XPathExpression.cpp: (WebCore::XPathExpression::evaluate): Fully initialize the evaluation context.
  • xml/XPathFunctions.cpp: (WebCore::XPath::FunSubstring::doEvaluate): Fixed handling of edge cases. (WebCore::XPath::FunRound::round): Reimplemented to match the spec; exposed FunRound::round() to be used in other functions.

LayoutTests:

  • fast/xpath/4XPath/Core/test_core_functions-expected.txt: Added.
  • fast/xpath/4XPath/Core/test_core_functions.html: Added. The remaining failures with id() are caused by an XML DOM problem - ID attributes declared in an internal subset are not treated as such.
  • fast/xpath/4XPath/Core/test.js: Common data for XPath tests.
12:29 PM Changeset in webkit [19967] by andersca
  • 2 edits in trunk/LayoutTests
  • plugins/get-url-with-blank-target-expected.txt: Update test result.
11:38 AM Changeset in webkit [23022] by aroben
  • 3 edits in branches/WindowsMerge/WebKitWin

Reviewed by Steve.

Added line spacing querying to FontMetrics to support line wrapping.

11:31 AM Changeset in webkit [19966] by andersca
  • 7 edits
    2 adds in trunk

LayoutTests:

Reviewed by Adam, Darin.

<rdar://problem/5025212>
In Mail, a crash occurs at WebCore::Frame::tree() when clicking on embedded flash object

  • plugins/get-url-with-blank-target-expected.txt: Added.
  • plugins/get-url-with-blank-target.html: Added.

WebKit:

Reviewed by Adam, Darin.


<rdar://problem/5025212>
In Mail, a crash occurs at WebCore::Frame::tree() when clicking on embedded flash object

  • Plugins/WebBaseNetscapePluginView.mm: (-[WebBaseNetscapePluginView loadPluginRequest:]): Handle the case where the web view returned from the delegate method is null. Also, send out an error notification in that case so we can catch it.

WebKitTools:

Reviewed by Adam, Darin.

<rdar://problem/5025212>
In Mail, a crash occurs at WebCore::Frame::tree() when clicking on embedded flash object


Add a "getURLNotify" method to the plugin object. This lets you pass a URL, a target and a callback function
to be run when the URL has finished (or failed) loading.


  • DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.c: (pluginInvoke): (handleCallback):
  • DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.h:
  • DumpRenderTree/TestNetscapePlugIn.subproj/main.c: (NPP_URLNotify):
10:37 AM Changeset in webkit [19965] by sullivan
  • 2 edits in trunk/WebKit

Reviewed by Darin and Kevin D

  • fixed <rdar://problem/5038087> Header and footer on printed page are too large after certain steps
  • WebView/WebView.mm: (-[WebView _adjustPrintingMarginsForHeaderAndFooter]): This method was modifying the margins in the NSPrintInfo object without any sort of check whether this had already been done. In some cases this can be called multiple times with the same NSPrintInfo, so now we stash information in the NSPrintInfo's dictionary such that we always start with a fresh copy of the original margins.
10:25 AM Changeset in webkit [19964] by ap
  • 12 deletes in trunk/LayoutTests/fast/xpath/4XPath/Core

Remove accidentally committed tests.

9:36 AM Changeset in webkit [19963] by ap
  • 6 edits
    2 moves
    36 adds in trunk

Reviewed by Darin.

http://bugs.webkit.org/show_bug.cgi?id=12954
XPath relative operations are implemented incorrectly

WebCore:

  • xml/XPathPredicate.cpp: (WebCore::XPath::NumericOp::doEvaluate): (WebCore::XPath::EqTestOp::compare): (WebCore::XPath::EqTestOp::doEvaluate): Reimplemented relative equality operations to match the spec.
  • xml/XPathPredicate.h: (WebCore::XPath::NumericOp::): (WebCore::XPath::EqTestOp::): Moved relative operations to EqTestOp.
  • xml/XPathGrammar.y:
  • xml/XPathParser.cpp: (WebCore::XPath::Parser::nextTokenInternal): (WebCore::XPath::Parser::lex): Adapted for the above changes.

LayoutTests:

  • fast/xpath/4XPath/Core/test_boolean_expr-expected.txt: Added.
  • fast/xpath/4XPath/Core/test_boolean_expr.html: Added.
  • fast/xpath/4XPath/Borrowed/cz_20030217-expected.txt: Added.
  • fast/xpath/4XPath/Borrowed/cz_20030217.html: Added.
  • fast/xpath/4XPath/Borrowed/kd_20010423-expected.txt: Added.
  • fast/xpath/4XPath/Borrowed/kd_20010423.html: Added.
  • fast/xpath/4XPath/Borrowed/od_20000608-expected.txt: Added.
  • fast/xpath/4XPath/Borrowed/od_20000608.html: Added.
  • fast/xpath/4XPath/Borrowed/resources/od_20000608.xml: Added.
  • fast/xpath/4XPath/Borrowed/rs_20010831-expected.txt: Added.
  • fast/xpath/4XPath/Borrowed/rs_20010831.html: Added.
  • fast/xpath/4XPath/Borrowed/sr_20021217-expected.txt: Added.
  • fast/xpath/4XPath/Borrowed/sr_20021217.html: Added. Added a bunch of XPath tests that already passed.
  • fast/xpath/4XPath/Borrowed/namespace-nodes-expected.txt: Added.
  • fast/xpath/4XPath/Borrowed/namespace-nodes.html: Added.
  • fast/xpath/namespace-nodes-expected.txt: Removed.
  • fast/xpath/namespace-nodes.html: Removed. Moved a previously imported 4XPath test.
1:41 AM Changeset in webkit [19962] by bdash
  • 1 edit in trunk/WebCore/ChangeLog

Pesky apostrophe.

1:39 AM Changeset in webkit [19961] by bdash
  • 2 edits in trunk/WebCore

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

Reviewed by Lars.

Fix http://bugs.webkit.org/show_bug.cgi?id=12947
Bug 12947: REGRESSION: ASSERTION FAILED: maxWidth >= 0 in StringTruncator.cpp:109 in WebCore::truncateString()

Handle nil window correctly in toUserSpace and toDeviceSpace. On Intel Mac's a message to nil that returns a
float will return 0.0. We use this as the divisor in calculating a scale factor, which results in NaN being
introduced into our rect.

  • platform/mac/ScreenMac.mm: (WebCore::toUserSpace): (WebCore::toDeviceSpace):
1:07 AM Changeset in webkit [19960] by rwlbuis
  • 3 edits
    5 adds in trunk

Reviewed by Darin.

http://bugs.webkit.org/show_bug.cgi?id=12868
parts of the CSS classes in this simple SVG example are not applied

Make sure the xml stylesheets are parsed in strict mode.

1:00 AM Changeset in webkit [23021] by sfalken
  • 2 edits in branches/WindowsMerge/WebCore

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

Fix build

  • plugins/win/PluginStreamWin.cpp: (WebCore::PluginStreamWin::stop): Call cancel() instead of stopLoading(), since the latter was removed.

Mar 4, 2007:

10:18 PM Changeset in webkit [19959] by ap
  • 2 edits in trunk/LayoutTests

Reviewed by Darin.

http://bugs.webkit.org/show_bug.cgi?id=12961
shouldBe() should support NaN

  • fast/js/resources/js-test-pre.js: Make shouldBe() succeed if both sides are NaN numbers.
9:40 PM Changeset in webkit [19958] by adele
  • 4 edits
    2 adds in trunk

LayoutTests:

Reviewed by Darin.

  • fast/events/keydown-keypress-preventDefault-expected.txt: Added.
  • fast/events/keydown-keypress-preventDefault.html: Added.

WebCore:

Reviewed by Darin.

Change to dispatch the keypress event during the defaultEventHandler for keydown events. This matches IE behavior.
This is preparation for fixing event dispatch with input methods (http://bugs.webkit.org/show_bug.cgi?id=10871)

Test: fast/events/keydown-keypress-preventDefault.html

  • dom/EventTargetNode.cpp: (WebCore::EventTargetNode::defaultEventHandler): Call the defaultKeyboardEventHandler for keydown events.
  • page/EventHandler.cpp: (WebCore::eventTargetNodeForDocument): Return 0 instead of false since the return type in EventTargetNode. (WebCore::EventHandler::keyEvent): Removed dispatch of keypress event, since this is now done in the default event handler. (WebCore::EventHandler::defaultKeyboardEventHandler): For keydown events, create and dispatch a keypress event.
9:34 PM Changeset in webkit [19957] by ap
  • 3 edits in trunk/WebCore

Reviewed by Nikolas Zimmermann (yay!).

http://bugs.webkit.org/show_bug.cgi?id=12962
4XPath tests crash on lang() function

Covered by 4XPath tests, to be landed later.

  • platform/StringImpl.cpp: (WebCore::StringImpl::reverseFind): Do not crash with empty strings.
  • xml/XPathFunctions.cpp: (WebCore::XPath::FunLang::doEvaluate): Do not crash when an element has no attributes. Use a proper namespace for xml:lang (not sure where "xms" came from). Rewrote the algorithm for suffix removing to match the spec.
5:33 PM Changeset in webkit [19956] by ddkilzer
  • 2 edits in trunk/JavaScriptCore

JavaScriptCore:

Reviewed by Nikolas Zimmermann.

  • wtf/Assertions.cpp: Don't #define WINVER and _WIN32_WINNT if they are already defined.
3:30 PM Changeset in webkit [19955] by andersca
  • 6 edits
    2 adds in trunk

LayoutTests:

Reviewed by Darin.

<rdar://problem/5028165>
http://bugs.webkit.org/show_bug.cgi?id=12915
REGRESSION: XMLHttpRequest.abort() does not stop loading (12915)

  • http/tests/xmlhttprequest/abort-should-cancel-load-expected.txt: Added.
  • http/tests/xmlhttprequest/abort-should-cancel-load.html: Added.

WebCore:

Reviewed by Darin.

<rdar://problem/5028165>
http://bugs.webkit.org/show_bug.cgi?id=12915
REGRESSION: XMLHttpRequest.abort() does not stop loading (12915)


  • loader/DocumentLoader.cpp: (WebCore::DocumentLoader::stopLoading): Save the value of m_loading since calling FrameLoader::stopLoading could set it to false.


  • loader/SubresourceLoader.cpp: (WebCore::SubresourceLoader::didCancel):
  • loader/SubresourceLoader.h: Get rid of didCancel now, it's not needed anymore.


  • xml/xmlhttprequest.cpp: (WebCore::XMLHttpRequest::abort): Call cancel() instead of stopLoading(). Also, set m_aborted to true so the XMLHttpRequest object won't be dereferenced in didFail when aborting.
1:24 PM Changeset in webkit [19954] by kjk
  • 6 edits in trunk

WebCore:

Reviewed by Nikolas Zimmermann.

Move ScrollView stubs to ScrollViewGdk.cpp

  • platform/gdk/FrameGdk.h: remove comment that no longer makes sense
  • platform/gdk/ScrollViewGdk.cpp: (WebCore::ScrollView::addChild): (WebCore::ScrollView::removeChild): (WebCore::ScrollView::scrollPointRecursively): (WebCore::ScrollView::inWindow): (WebCore::ScrollView::wheelEvent): (WebCore::ScrollView::updateScrollbars): (WebCore::ScrollView::updateScrollInfo): (WebCore::ScrollView::windowToContents): (WebCore::ScrollView::contentsToWindow): (WebCore::ScrollView::scrollbarUnderMouse):
  • platform/gdk/TemporaryLinkStubs.cpp:

WebKitTools:

Reviewed by Nikolas Zimmermann.

Load a url given on a command line in a way that also
works for local (file://) urls.

  • GdkLauncher/main.cpp: (main):
7:47 AM Changeset in webkit [19953] by ddkilzer
  • 1 edit
    2 moves in trunk/LayoutTests

LayoutTests:

Reviewed by Nikolas Zimmermann.

Fixed spelling of "processer" to "processor" in file names.

  • fast/xsl/xslt-processer-expected.txt: Removed.
  • fast/xsl/xslt-processer.html: Removed.
  • fast/xsl/xslt-processor-expected.txt: Added. Results progressed after fixing Bugzilla Bug 12735 (<rdar://problem/4545040>).
  • fast/xsl/xslt-processor.html: Added.

Mar 2, 2007:

6:18 PM Changeset in webkit [19952] by kmccullo
  • 39 edits
    20 adds in trunk

LayoutTests:

Reviewed by Geoff.

  • rdar://problem/4922454
  • This fixes a security issue by making remote referrers not able to access local resources, unless they register their schemes to be treated as local. The result is that those schemes can access local resources and cannot be accessed by remote referrers. Because this behavior is new a link-on-or-after check is made to determine if the app should use the older, less safe, behavior.
  • fast/loader/local-CSS-from-local-expected.txt: Added.
  • fast/loader/local-CSS-from-local.html: Added.
  • fast/loader/local-JavaScript-from-local-expected.txt: Added.
  • fast/loader/local-JavaScript-from-local.html: Added.
  • fast/loader/local-iFrame-source-from-local-expected.txt: Added.
  • fast/loader/local-iFrame-source-from-local.html: Added.
  • fast/loader/local-image-from-local-expected.txt: Added.
  • fast/loader/local-image-from-local.html: Added.
  • http/tests/security/local-CSS-from-remote-expected.txt: Added.
  • http/tests/security/local-CSS-from-remote.html: Added.
  • http/tests/security/local-JavaScript-from-remote-expected.txt: Added.
  • http/tests/security/local-JavaScript-from-remote.html: Added.
  • http/tests/security/local-iFrame-from-remote-expected.txt: Added.
  • http/tests/security/local-iFrame-from-remote.html: Added.
  • http/tests/security/local-image-from-remote-expected.txt: Added.
  • http/tests/security/local-image-from-remote.html: Added.
  • http/tests/security/resources/compass.jpg: Added.
  • http/tests/security/resources/cssStyle.css: Added.
  • http/tests/security/resources/localPage.html: Added.
  • http/tests/security/resources/localScript.js: Added.

WebCore:

Reviewed by Geoff.

  • rdar://problem/4922454
  • This fixes a security issue by making remote referrers not able to access local resources, unless they register their schemes to be treated as local. The result is that those schemes can access local resources and cannot be accessed by remote referrers. Because this behavior is new a link-on-or-after check is made to determine if the app should use the older, less safe, behavior.
  • WebCore.exp: added exported functions
  • bindings/objc/DOM.mm: consolodated function to base class (-[DOMElement image]): (-[DOMElement _imageTIFFRepresentation]):
  • dom/Document.cpp: Cache the document's ability to load local resources. (WebCore::Document::Document): (WebCore::Document::setURL): (WebCore::Document::shouldBeAllowedToLoadLocalResources): (WebCore::Document::stylesheetLoaded):
  • dom/Document.h: Cache the docuent's ability to load local resources. (WebCore::Document::getPendingSheet): (WebCore::Document::isAllowedToLoadLocalResources):
  • html/HTMLImageLoader.cpp: Moved functionality into base class. (WebCore::HTMLImageLoader::updateFromElement): (WebCore::HTMLImageLoader::dispatchLoadEvent):
  • html/HTMLLinkElement.cpp: Handles null returns correctly now.
  • html/HTMLTokenizer.cpp: Moved functionality into base class. (WebCore::HTMLTokenizer::notifyFinished):
  • ksvg2/misc/SVGImageLoader.cpp: Moved functionality into base class. (WebCore::SVGImageLoader::dispatchLoadEvent):
  • loader/Cache.cpp: Checks if the cached resource can be loaded. (WebCore::Cache::requestResource):
  • loader/CachedCSSStyleSheet.cpp: Moved functionality into base class. (WebCore::CachedCSSStyleSheet::ref): (WebCore::CachedCSSStyleSheet::error):
  • loader/CachedImage.cpp: Moved functionality into base class. (WebCore::CachedImage::CachedImage):
  • loader/CachedImage.h: Moved functionality into base class. (WebCore::CachedImage::canRender):
  • loader/CachedResource.cpp: Cache if the CachedResource should be treated as local (WebCore::CachedResource::CachedResource):
  • loader/CachedResource.h: Moved functionality into base class. (WebCore::CachedResource::errorOccurred): (WebCore::CachedResource::shouldTreatAsLocal):
  • loader/CachedScript.cpp: Moved functionality into base class. (WebCore::CachedScript::CachedScript):
  • loader/CachedScript.h: Moved functionality into base class. (WebCore::CachedScript::schedule):
  • loader/CachedXBLDocument.cpp: Moved functionality into base class. (WebCore::CachedXBLDocument::error):
  • loader/CachedXSLStyleSheet.cpp: Moved functionality into base class. (WebCore::CachedXSLStyleSheet::error):
  • loader/FrameLoader.cpp: See comments for each function below. (WebCore::FrameLoader::loadSubframe): Use new canLoad. (WebCore::FrameLoader::restrictAccessToLocal): return value of linked-on-or-after check. (WebCore::FrameLoader::setRestrictAccessToLocal): set value for linked-on-or-after check. (WebCore::localSchemes): Return set of schemes that are to be treated as local. (WebCore::FrameLoader::loadPlugin): Use new canLoad. (WebCore::FrameLoader::canLoad): Now multiple functions that each do the same work but some can take advantage of the cached values, if they were computed previously. (WebCore::FrameLoader::shouldHideReferrer): Extracted out the logic to determine if the referrer should be hidden so it is only calculated when needed. (WebCore::FrameLoader::loadResourceSynchronously): No longer calls canLoad to get hideReferrer info. (WebCore::FrameLoader::registerSchemeAsLocal): Functionality to register a scheme to be treated as local. (WebCore::FrameLoader::treatURLAsLocal): Given a URL this function determines if it should be treated as local.
  • loader/FrameLoader.h: Declared functions for this security fix. See above.
  • loader/MainResourceLoader.cpp: Optized order of bools to regain performance. (WebCore::MainResourceLoader::continueAfterContentPolicy):
  • loader/SubresourceLoader.cpp: Now restricts remote from loading local resources. (WebCore::SubresourceLoader::create):
  • page/EventHandler.cpp: Moved functionality into base class. (WebCore::selectCursor):
  • platform/KURL.cpp: KURLs need to check all the registered schemes now. (WebCore::KURL::isLocalFile):
  • rendering/HitTestResult.cpp: Moved functionality into base class. (WebCore::HitTestResult::image):
  • rendering/RenderImage.cpp: Moved functionality into base class. (WebCore::RenderImage::setCachedImage): (WebCore::RenderImage::imageChanged): (WebCore::RenderImage::paint): (WebCore::RenderImage::layout): (WebCore::RenderImage::calcAspectRatioWidth): (WebCore::RenderImage::calcAspectRatioHeight):
  • rendering/RenderImage.h: Moved functionality into base class. (WebCore::RenderImage::errorOccurred):
  • rendering/RenderListItem.cpp: Moved functionality into base class. (WebCore::RenderListItem::setStyle):
  • rendering/RenderListMarker.cpp: Moved functionality into base class. (WebCore::RenderListMarker::isImage):
  • xml/xmlhttprequest.cpp: Check doc's cached value instead of determining independently. (WebCore::XMLHttpRequest::urlMatchesDocumentDomain):

WebKit:

Reviewed by Geoff.

  • rdar://problem/4922454
  • This fixes a security issue by making remote referrers not able to access local resources, unless they register their schemes to be treated as local. The result is that those schemes can access local resources and cannot be accessed by remote referrers. Because this behavior is new a link-on-or-after check is made to determine if the app should use the older, less safe, behavior.
  • Misc/WebKitVersionChecks.h: added linked-on-or-after check
  • Misc/WebNSAttributedStringExtras.mm: Moved functionalit into the base class. (fileWrapperForElement):
  • Plugins/WebNetscapePluginStream.mm: uses new canLoad functions
  • Plugins/WebPluginContainerCheck.mm: uses new canLoad functions (-[WebPluginContainerCheck _isForbiddenFileLoad]):
  • WebView/WebView.mm: make linked-on-or-after check and cache value, exposes SPI for registering a scheme as local. (-[WebView _commonInitializationWithFrameName:groupName:]): (+[WebView registerSchemeAsLocal:]):
  • WebView/WebViewPrivate.h: exposes SPI for registering a scheme as local.
5:46 PM Changeset in webkit [19951] by justing
  • 3 edits
    4 adds in trunk

LayoutTests:

Reviewed by kevin


<rdar://problem/5028447>
REGRESSION: Gmail Editor: Copied message text pastes at the wrong font size

  • editing/pasteboard/5028447-expected.checksum: Added.
  • editing/pasteboard/5028447-expected.png: Added.
  • editing/pasteboard/5028447-expected.txt: Added.
  • editing/pasteboard/5028447.html: Added.

WebCore:

Reviewed by kevin


<rdar://problem/5028447>
REGRESSION: Gmail Editor: Copied message text pastes at the wrong font size

  • editing/markup.cpp: (WebCore::createMarkup): The style of the div that holds a fully selected body's styles didn't include styles inherited from the body's ancestors.
4:48 PM Changeset in webkit [19950] by ggaren
  • 2 edits in trunk/WebKitTools

Tweaked parse-malloc-history to work with new malloc_history output format.

  • Scripts/parse-malloc-history:
4:09 PM Changeset in webkit [23020] by aroben
  • 4 edits in branches/WindowsMerge/WebKitWin

WebKitWin:

Reviewed by Beth.

Make submenus draw using the UIDelegate.

  • Interfaces/IWebUIDelegate.idl: Added new delegate method to add custom drawing data for menus.
  • WebView.cpp: (WebView::onInitMenuPopup): Added. Calls new delegate method. (WebViewWndProc): Added handler for WM_INITMENUPOPUP, which is called for all submenus.
  • WebView.h: Added declaration.
3:02 PM Changeset in webkit [19949] by justing
  • 5 edits
    4 adds in trunk

LayoutTests:

Reviewed by harrison


<rdar://problem/4545040>
innerHTML does not HTML-escape text nodes inside PRE elements
<rdar://problem/5027857>
Pasting into Mail from Safari's view-source window renders the HTML

  • editing/pasteboard/5027857-expected.checksum: Added.
  • editing/pasteboard/5027857-expected.png: Added.
  • editing/pasteboard/5027857-expected.txt: Added.
  • editing/pasteboard/5027857.html: Added.

WebCore:

Reviewed by harrison

<rdar://problem/4545040>
innerHTML does not HTML-escape text nodes inside PRE elements
<rdar://problem/5027857>
Pasting into Mail from Safari's view-source window renders the HTML

  • editing/HTMLInterchange.cpp: (WebCore::convertHTMLTextToInterchangeFormat): Send this function the node that the text comes from as a parameter. It shouldn't convert '\n's to spaces/nbsps if the text is coming from text where newlines are preserved.
  • editing/HTMLInterchange.h:
  • editing/markup.cpp: (WebCore::startMarkup): Escape text inside the children of PREs.
2:35 PM Changeset in webkit [23019] by aroben
  • 6 edits in branches/WindowsMerge

WebCoreWin:

Reviewed by Anders.

Added optional underlining of a single character to
WebCoreTextRenderer.

No layout tests possible.

  • platform/win/WebCoreTextRenderer.cpp: (WebCore::doDrawTextAtPoint): Added. This is an extraction of the code from DrawTextAtPoint that now also contains the underlining code. (WebCore::WebCoreDrawTextAtPoint): Call the helper function. (WebCore::WebCoreDrawDoubledTextAtPoint): Ditto.
  • platform/win/WebCoreTextRenderer.h: Added optional underlinedIndex parameters.

WebKitWin:

Reviewed by Anders.

Added optional underlining of a single character to WebKitGraphics.

1:10 PM Changeset in webkit [19948] by weinig
  • 4 edits in trunk

WebCore:

Reviewed by Anders.

Try to fix the Qt build.

  • platform/qt/TemporaryLinkStubs.cpp: Add stubs. (WebCore::searchMenuNoRecentSearchesText): (WebCore::searchMenuRecentSearchesText): (WebCore::searchMenuClearRecentSearchesText): (WebCore::AXWebAreaText): (WebCore::AXLinkText): (WebCore::AXListMarkerText): (WebCore::AXImageMapText): (WebCore::AXHeadingText):

WebKitQt:

Reviewed by Anders.

Try to fix the Qt build

  • WebCoreSupport/DragClientQt.cpp: (WebCore::DragClientQt::willPerformDragDestinationAction): (WebCore::DragClientQt::dragControllerDestroyed): (WebCore::DragClientQt::createDragImageForLink):
1:06 PM Changeset in webkit [19947] by sfalken
  • 2 edits in trunk/JavaScriptCore

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

Reviewed by Anders.


Add unsigned int hash traits (matches existing unsigned long version)

  • wtf/HashTraits.h: (WTF::):
1:06 PM Changeset in webkit [19946] by harrison
  • 2 edits in trunk/WebCore

Suggested by Darin.

A more efficient solution to rdar://4961431.

  • bridge/mac/WebCoreAXObject.mm: (-[WebCoreAXObject accessibilityIsIgnored]):
11:55 AM Changeset in webkit [19945] by aroben
  • 4 edits in trunk/JavaScriptCore

Reviewed by Kevin M.

Try to fix the Qt build.

  • kjs/DateMath.cpp: (KJS::msToGregorianDateTime): Removed unnecessary "struct" keyword.
  • kjs/DateMath.h: Moved forward declarations to the top of the file before they are used.
  • kjs/date_object.cpp: (KJS::formatLocaleDate): Changed to take a const GregorianDateTime& since GregorianDateTime is Noncopyable.
11:53 AM Changeset in webkit [19944] by justing
  • 3 edits
    4 adds in trunk

LayoutTests:

Reviewed by john


<rdar://problem/5032095>
Gmail Editor: Copied text pastes on a new line instead of current line

  • editing/pasteboard/5032095-expected.checksum: Added.
  • editing/pasteboard/5032095-expected.png: Added.
  • editing/pasteboard/5032095-expected.txt: Added.
  • editing/pasteboard/5032095.html: Added.

WebCore:

Reviewed by john


<rdar://problem/5032095>
Gmail Editor: Copied text pastes on a new line instead of current line


Start merge failed to occur because positionAtStartOfInsertedContent
had a bug.

  • editing/ReplaceSelectionCommand.cpp: (WebCore::ReplaceSelectionCommand::positionAtStartOfInsertedContent): Was failing when inserting <span><div>foo/div></span>. Return the inserted content's first VisiblePosition.
9:42 AM Changeset in webkit [19943] by darin
  • 3 edits in trunk/JavaScriptCore

Reviewed by Kevin McCullough.

  • kjs/DateMath.h: Marked GregorianDateTime as noncopyable, since it has a non-trivial destructor and not the correspoding copy constructor or assignment operator. Changed the GregorianDateTime constructor to use member initialization syntax. Fixed the destructor to use the array delete operator, since timeZone is an array.
  • kjs/DateMath.cpp: (KJS::daysInYear): Changed to call isLeapYear so the rule is not repeated twice. (KJS::getUTCOffset): Added caching on PLATFORM(DARWIN), since we can rely on the notify_check function and "com.apple.system.timezone" to let us know when the offset has changed.
1:39 AM Changeset in webkit [19942] by hyatt
  • 2 edits in trunk/WebCore

Fix glyph map crasher.

12:22 AM Changeset in webkit [19941] by antti
  • 2 edits in trunk/WebCore

Reviewed by Maciej.

Fix for http://bugs.webkit.org/show_bug.cgi?id=12895
REGRESSION: imagemap: pointer cursor is shown everywhere
<rdar://problem/5028163>


Image with imagemap should never itself be URLElement in hit test results.


No layout test, cursor state can't be captured.

  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::hitTest):
Note: See TracTimeline for information about the timeline view.