Timeline


and

03/25/09:

19:39 Changeset [41999] by oliver@apple.com
  • 2 edits in trunk/JavaScriptCore

Fix exception handling for instanceof in the interpreter.

Reviewed by Geoff Garen

19:34 Changeset [41998] by ggaren@apple.com
  • 2 edits in trunk/JavaScriptCore

2009-03-25 Geoffrey Garen <ggaren@apple.com>

Reviewed by Cameron Zwarich.


Fixed <rdar://problem/6724011> Write to freed memory in JSC::Label::deref
when reloading http://helpme.att.net/speedtest/

  • bytecompiler/BytecodeGenerator.h: Reversed the declaration order for m_labelScopes and m_labels to reverse their destruction order. m_labelScopes has references to memory within m_labels, so its destructor needs to run first.
19:12 Changeset [41997] by ggaren@apple.com
  • 3 edits in trunk/WebCore

2009-03-25 Geoffrey Garen <ggaren@apple.com>

Reviewed by Oliver Hunt and Darin Adler.


Fixed <rdar://problem/6603167> Crash in WebKit!JSC::JSGlobalObject::resetPrototype
during Stress test (#3 & #7 WER crashes for Safari 4 Beta)


The problem was that allocation of the global object would, for just a
moment, leave the global object's prototype unprotected from GC. This
bug doesn't apply to non-global DOM objects because their prototypes are
cached and marked by the global object.

No test case because the crashing condition is hard to deterministically
produce in a normal build, and in a Windows Release build with
COLLECT_ON_EVERY_ALLOCATION set to 1, existing tests crash/hang.

  • bindings/js/JSDOMWindowShell.cpp: (WebCore::JSDOMWindowShell::setWindow):
  • bindings/js/WorkerScriptController.cpp: (WebCore::WorkerScriptController::initScript): Protect the global object's prototype from GC during construction, since the global object does not yet point to it, and therefore won't mark it.
18:38 Changeset [41996] by dino@apple.com
  • 9 edits
    10 adds in trunk

2009-03-25 Dean Jackson <dino@apple.com>

Reviewed by Simon Fraser

https://bugs.webkit.org/show_bug.cgi?id=23361

When using hardware compositing, some images can be directly
rendered by the hardware - no need to draw them into a separate
context, therefore saving memory.
Only images with certain style properties can be directly
composited - basically anything that is not a simple image requires
the usual rendering path (eg. if the image has borders).

Test: compositing/direct-image-compositing.html

  • manual-tests/resources/simple_image.png: Added.
  • manual-tests/simple-image-compositing.html: Added.
  • platform/graphics/Image.h: (WebCore::Image::startAnimation):
    • move this to public
  • rendering/RenderImage.cpp: (WebCore::RenderImage::imageChanged):
    • poke compositing layer if image has changed

(WebCore::RenderImage::notifyFinished):

  • let the compositing layer know that it can render the image
  • rendering/RenderImage.h:
  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::rendererContentChanged):
  • rendering/RenderLayer.h:
  • rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::canUseInnerContentLayer): (WebCore::RenderLayerBacking::detectDrawingOptimizations): (WebCore::RenderLayerBacking::rendererContentChanged):
  • rendering/RenderLayerBacking.h:
    • code to hook up direct compositing of images where possible
16:41 Changeset [41995] by mrowe@apple.com
  • 2 edits in trunk/WebKitTools

Update test result search path for Windows now that it has updated versions of ICU, libxml2, and friends.

Rubber-stamped by Steve Falkenburg.

  • Scripts/run-webkit-tests:
16:06 Changeset [41994] by andersca@apple.com
  • 2 edits in trunk/WebKit/mac

2009-03-25 Anders Carlsson <andersca@apple.com>

Reviewed by Darin Adler.

<rdar://problem/6714964>
CrashTracer: [REGRESSION] 51 crashes in Safari at com.apple.WebKit • WebNetscapePluginStream::deliverData + 775


Don't release m_deliveryData since it's a RetainPtr. Also, use adoptNS instead of releasing newDeliveryData manually.


  • Plugins/WebBaseNetscapePluginStream.mm: (WebNetscapePluginStream::deliverData):
15:37 Changeset [41993] by simon.fraser@apple.com
  • 8 edits in trunk/LayoutTests

2009-03-25 Simon Fraser <simon.fraser@apple.com>

Reviewed by Anders Carlsson.

Update layout test results for
https://bugs.webkit.org/show_bug.cgi?id=24809

  • fast/css/getComputedStyle/computed-style-expected.txt:
  • fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • platform/mac/fast/css/getComputedStyle/computed-style-expected.txt:
  • platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • platform/win/fast/css/getComputedStyle/computed-style-expected.txt:
  • platform/win/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • svg/css/getComputedStyle-basic-expected.txt:
15:24 Changeset [41992] by levin@chromium.org
  • 2 edits in trunk/WebCore

2009-03-25 David Levin <levin@chromium.org>

Reviewed by Dimitri Glazkov.

Chromium build fix. Fix #include in V8NodeFilterCondition.cpp due to the
rename of V8NodeFilter to V8NodeFilterCondition.

  • bindings/v8/V8NodeFilterCondition.cpp:
15:15 Changeset [41991] by eric@webkit.org
  • 5 edits in trunk/WebCore

Reviewed by Darin Adler.

Remove dead code and style cleanup
https://bugs.webkit.org/show_bug.cgi?id=24684

  • html/CanvasStyle.cpp: (WebCore::CanvasStyle::CanvasStyle): Coverty was annoyed that we didn't initialize all of our members. I agree, but I didn't want to paste all 8 members each time, so I just cleaned up the existing constructors and left them.
  • page/FocusController.cpp: (WebCore::FocusController::setFocusedNode): "node" was checked just above and is already known to be non-null
  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::insertOnlyThisLayer): We were already using parentLayer w/o a NULL check above, so just add an explicit ASSERT and use it w/o NULL check (WebCore::RenderLayer::resize): element is already ASSERTed above, no need to null check it here
  • rendering/RenderTableSection.cpp: (WebCore::RenderTableSection::addCell): currentCell.cell was just assigned to the value "cell" which is known to be non-null, no need to null check again.
15:14 Changeset [41990] by eric@webkit.org
  • 3 edits in trunk/WebCore

Reviewed by Darin Adler.

Move ASSERT(foo) to before where foo-> is used
https://bugs.webkit.org/show_bug.cgi?id=24684

  • platform/chromium/PasteboardChromium.cpp: (WebCore::Pasteboard::writeImage): Move ASSERTs to the top of the function, code was using "node" before ASSERT(node), once I moved ASSERT(node) to the top of the function it made sense to move the rest of them there too.
  • rendering/SVGRenderSupport.cpp: (WebCore::prepareToRenderSVGContent): move ASSERT(object) to *before* we use "object" :)
15:14 Changeset [41989] by eric@webkit.org
  • 2 edits in trunk/WebCore

Reviewed by Simon Fraser.

Make TextTokenizer ASSERT that the buffer was freed
https://bugs.webkit.org/show_bug.cgi?id=24684

  • loader/TextDocument.cpp: (WebCore::TextTokenizer::TextTokenizer): (WebCore::TextTokenizer::~TextTokenizer): (WebCore::TextTokenizer::finish): Make it clear by adding a ~TextTokenizer that finish() will always be called and the memory never leaked.
15:14 Changeset [41988] by eric@webkit.org
  • 2 edits in trunk/WebCore

Reviewed by Darin Adler.

Fix case where lBreak.obj->isBR() when lBreak.obj was NULL
https://bugs.webkit.org/show_bug.cgi?id=24684

I don't have a test case where we were taking the wrong path here
However, adding an ASSERT(lBreak.obj) before this usage caused
multiple bidi tests to fail, so lBreak.obj can be null here.

  • rendering/bidi.cpp: (WebCore::RenderBlock::findNextLineBreak): lBreak.obj can be null, so we can't call ->isBR() on it unconditionally.
15:11 Changeset [41987] by simon.fraser@apple.com
  • 3 edits
    4 adds in trunk

2009-03-25 Simon Fraser <simon.fraser@apple.com>

Reviewed by Darin Adler

https://bugs.webkit.org/show_bug.cgi?id=24817

When the slider range is zero, avoid a divide by zero, which caused the
thumb to be positioned off in the weeds, which broke painting.

Test: media/video-empty-source.html

  • rendering/RenderSlider.cpp: (WebCore::SliderRange::proportionFromValue): (WebCore::SliderRange::valueFromProportion): (WebCore::sliderPosition): (WebCore::RenderSlider::setValueForPosition):
15:04 Changeset [41986] by eric@webkit.org
  • 6 edits in trunk/WebCore

Reviewed by Simon Fraser.

Style cleanup and dead code removal in dom, editing
https://bugs.webkit.org/show_bug.cgi?id=24684

  • dom/ContainerNode.cpp: (WebCore::ContainerNode::getUpperLeftCorner): (WebCore::ContainerNode::getLowerRightCorner): (WebCore::ContainerNode::getRect): Coverty was (rightly) confused as to what the hell "o" was being used for and whether or not it would ever be NULL. I added some ASSERTS so that people (and machines) would be less confused about the logic in getUpperLeftCorner/getLowerRightCorner
  • dom/Document.cpp: (WebCore::Document::recalcStyle): Remove dead code, this block already checked that change == Force
  • editing/ApplyStyleCommand.cpp: (WebCore::ApplyStyleCommand::removeInlineStyle): Coverty correctly identified that traversePreviousNodePostOrder can return NULL, thus prev will be null, and we don't really explicitly handle it (like we probably should) It's OK though, because we end up creating a null position object, which may not have been what we intended, but we certainly don't crash.
  • editing/InsertParagraphSeparatorCommand.cpp: (WebCore::InsertParagraphSeparatorCommand::doApply): Remove dead code, insertionPosition.node() is already checked to be non-null above.
  • editing/markup.cpp: (WebCore::appendStartMarkup): removed dead code, annotate is already known to be true at this point in the file !annotate was checked above, and break; was called.
15:04 Changeset [41985] by eric@webkit.org
  • 4 edits in trunk/WebCore

Reviewed by Simon Fraser.

CSS dead code removal and cleanup from Coverty errors
https://bugs.webkit.org/show_bug.cgi?id=24684

  • css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty): Every other place in the code we check settings() for NULL, so I made these places check too, even though we should never be resolving style against a document which has no frame (which I believe is the only time settings() can be null)
  • css/CSSStyleSheet.cpp: (WebCore::CSSStyleSheet::styleSheetChanged): Removing dead code, "root" can never be null here.
  • css/SVGCSSStyleSelector.cpp: (WebCore::colorFromSVGColorCSSValue): (WebCore::CSSStyleSelector::applySVGProperty): Extra returns in the old macros caused dead code. Removing the old macros and use modern ones instead. :) Extra null checks to value were not needed. Added an ASSERT at the top of the function to make it clear that value will never be NULL. Added colorFromSVGColorCSSValue to clean up the code a little.
15:04 Changeset [41984] by eric@webkit.org
  • 3 edits in trunk/WebCore

Reviewed by Simon Fraser.

Font fallback cleanup and added ASSERT for GlyphPageTreeNode
https://bugs.webkit.org/show_bug.cgi?id=24684

  • css/CSSFontSelector.cpp: (WebCore::compareFontFaces): Coverty was concerned that it was possible to index off the end of weightFallbackRuleSets I can't read the code well enough to tell, so I tried to make the code clearer and added an ASSERT.
  • platform/graphics/GlyphPageTreeNode.cpp: (WebCore::GlyphPageTreeNode::initializePage): Coverty believes we can crash here due to j being larger than GlyphPage::size. I think to is already known to be < GlyphPage::size due to the min() statement above, but not being sure I added an ASSERT.
15:04 Changeset [41983] by eric@webkit.org
  • 9 edits in trunk/WebCore

Reviewed by Simon Fraser.

Coverty inspired fixes in Animations/Transforms
https://bugs.webkit.org/show_bug.cgi?id=24684

  • page/animation/AnimationBase.h: Fix animate() signatures to match so that the virtual methods actually override one another. :)
  • page/animation/AnimationController.cpp: (WebCore::AnimationControllerPrivate::removeFromStartTimeResponseWaitList): Attempt to fix this method, prevAnimation was never set to anything but NULL, as far as I can tell the author originally intended to update it at the end of the loop, which is what I changed this code to do.
  • page/animation/ImplicitAnimation.cpp: (WebCore::ImplicitAnimation::animate): Make method signature match AnimationBase::animate
  • page/animation/ImplicitAnimation.h:
  • page/animation/KeyframeAnimation.cpp: (WebCore::KeyframeAnimation::animate): Make method signature match AnimationBase::animate
  • page/animation/KeyframeAnimation.h:
  • platform/graphics/transforms/PerspectiveTransformOperation.cpp: (WebCore::PerspectiveTransformOperation::blend): if (blendToIdentity) already returned above.
  • platform/graphics/transforms/RotateTransformOperation.cpp: (WebCore::RotateTransformOperation::blend): if (blendToIdentity) already returned above.
14:31 Changeset [41982] by staikos@webkit.org
  • 3 edits in trunk/WebCore

2009-03-25 Eli Fidler <eli.fidler@torchmobile.com>

Reviewed by George Staikos.

Fix compiler warnings regarding assignments in if statements.

14:25 Changeset [41981] by mitz@apple.com
  • 3 edits
    2 adds in trunk

WebCore:

Reviewed by Dave Hyatt.

  • fix <rdar://problem/6472150> repro crash in RenderBlock::rightmostPosition(bool, bool) const at mercotte.fr using menus

Test: fast/inline/continuation-positioned-reparenting.html

  • rendering/RenderInline.cpp: (WebCore::RenderInline::splitFlow): When repurposing the existing container as the "pre" block, clear its positioned objects list, because positioned descendants may end up in a different block after the split.

LayoutTests:

Reviewed by Dave Hyatt.

  • test for <rdar://problem/6472150> repro crash in RenderBlock::rightmostPosition(bool, bool) const at mercotte.fr using menus
  • fast/inline/continuation-positioned-reparenting-expected.txt: Added.
  • fast/inline/continuation-positioned-reparenting.html: Added.
12:52 Changeset [41980] by simon.fraser@apple.com
  • 3 edits
    4 adds in trunk

2009-03-24 Simon Fraser <simon.fraser@apple.com>

Reviewed by Dave Hyatt

https://bugs.webkit.org/show_bug.cgi?id=24784

Length values in transform operations need to take zoom into account.

Test: fast/transforms/transforms-with-zoom.html

  • css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::createTransformOperations):
12:36 Applications using WebKit edited by staikos@kde.org
(diff)
12:23 Changeset [41979] by hyatt@apple.com
  • 9 edits in trunk

WebCore:

2009-03-25 David Hyatt <hyatt@apple.com>

Reviewed by Simon Fraser.

https://bugs.webkit.org/show_bug.cgi?id=24809, background-clip/origin don't use the correct
values. Add support for the new values (while preserving the old values for backwards
compatibility).

Changed some existing test cases to use the new values.

  • css/CSSParser.cpp: (WebCore::CSSParser::parseFillProperty):
  • css/CSSPrimitiveValueMappings.h: (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): (WebCore::CSSPrimitiveValue::operator EFillBox):
  • css/CSSValueKeywords.in:

LayoutTests:

2009-03-25 David Hyatt <hyatt@apple.com>

Reviewed by Simon Fraser.

Change a few test cases to use the new values just to verify that they work.

https://bugs.webkit.org/show_bug.cgi?id=24809

  • fast/backgrounds/size/backgroundSize17.html:
  • fast/backgrounds/size/backgroundSize18.html:
  • fast/backgrounds/size/backgroundSize19.html:
  • fast/gradients/simple-gradients.html:
11:18 Changeset [41978] by brettw@chromium.org
  • 3 edits
    4 adds in trunk

WebCore:
2009-03-25 Brett Wilson <brettw@dhcp-172-22-71-191.mtv.corp.google.com>

Reviewed by Dimitri Glazkov.

Fix complex text opacity on the Chromium Windows port.
https://bugs.webkit.org/show_bug.cgi?id=24757

Test: fast/text/complex-text-opacity.html

  • platform/graphics/chromium/FontChromiumWin.cpp: (WebCore::): (WebCore::TransparencyAwareFontPainter::TransparencyAwareFontPainter::TransparencyAwareFontPainter): (WebCore::TransparencyAwareFontPainter::TransparencyAwareFontPainter::init): (WebCore::TransparencyAwareFontPainter::TransparencyAwareFontPainter::initializeForGDI): (WebCore::TransparencyAwareFontPainter::TransparencyAwareFontPainter::~TransparencyAwareFontPainter): (WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::TransparencyAwareGlyphPainter): (WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::~TransparencyAwareGlyphPainter): (WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::estimateTextBounds): (WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::drawGlyphs): (WebCore::TransparencyAwareFontPainter::TransparencyAwareUniscribePainter::hdc): (WebCore::TransparencyAwareFontPainter::TransparencyAwareUniscribePainter::TransparencyAwareUniscribePainter): (WebCore::TransparencyAwareFontPainter::TransparencyAwareUniscribePainter::~TransparencyAwareUniscribePainter): (WebCore::TransparencyAwareFontPainter::TransparencyAwareUniscribePainter::estimateTextBounds): (WebCore::Font::drawGlyphs): (WebCore::Font::drawComplexText):

LayoutTests:
2009-03-25 Brett Wilson <brettw@dhcp-172-22-71-191.mtv.corp.google.com>

Reviewed by Dimitri Glazkov.

Fix complex text opacity on the Chromium Windows port.
https://bugs.webkit.org/show_bug.cgi?id=24757

  • fast/text/complex-text-opacity.html: Added.
  • platform/mac/fast/text/complex-text-opacity-expected.checksum: Added.
  • platform/mac/fast/text/complex-text-opacity-expected.png: Added.
  • platform/mac/fast/text/complex-text-opacity-expected.txt: Added.
10:30 Changeset [41977] by kdecker@apple.com
  • 3 edits in trunk/WebKit/mac

Reviewed by Kevin Decker.


<rdar://problem/6453738> call SetWindow when user creates a new tab


CoreGraphics plug-ins now receive an NPP_SetWindow call when moving to a background tab.
Flash is excluded from this change in behavior, as it has historical WebKit-specific code
that isn't compatible with this change.

  • Plugins/WebNetscapePluginView.h:

Added an _isFlash ivar.

  • Plugins/WebNetscapePluginView.mm: (-[WebNetscapePluginView _createPlugin]):

Set the new _isFlash ivar based on the bundle identifier.

(-[WebNetscapePluginView saveAndSetNewPortStateForUpdate:]):

When using the CG drawing model and in a non-drawable state, set the portState
to NULL and return early.

(-[WebNetscapePluginView updateAndSetWindow]):

When using the CG drawing model, call -setWindowIfNecessary even if the portState is NULL.
Flash is an exception to this, due to its historical behavior.

(-[WebNetscapePluginView setWindowIfNecessary]):

Removed an assertion that was no longer true. The [NSView focus] view
is no longer guaranteed to be 'self' at this point.
Also modified the debug logging for CG plug-ins to include the size of the
window's clipRect, which was useful in verifying the correct behavior of this patch.

10:07 Changeset [41976] by hyatt@apple.com
  • 3 edits
    4 adds in trunk

WebCore:

2009-03-25 David Hyatt <hyatt@apple.com>

Reviewed by Eric Seidel

Fix for bug 23198, border images should not clip to border radii. The border-image should just ignore
the border-radius, since the assumption is that any desired rounding will be built into the border-image
itself.

Note that I do not agree with this change, but I am matching the spec.

Added fast/borders/border-image-border-radius.html

  • rendering/RenderBoxModelObject.cpp: (WebCore::RenderBoxModelObject::paintNinePieceImage):

LayoutTests:

2009-03-25 David Hyatt <hyatt@apple.com>

Reviewed by Eric Seidel

Test case for bug 23198.

  • fast/borders/border-image-border-radius.html: Added.
  • platform/mac/fast/borders/border-image-border-radius-expected.checksum: Added.
  • platform/mac/fast/borders/border-image-border-radius-expected.png: Added.
  • platform/mac/fast/borders/border-image-border-radius-expected.txt: Added.
08:09 Changeset [41975] by kov@webkit.org
  • 2 edits in trunk/WebCore

2009-03-25 Gustavo Noronha Silva <gns@gnome.org>

Reviewed by Holger Freyther.

https://bugs.webkit.org/show_bug.cgi?id=24750
[GTK] requests download instead of displaying page

Fix the Content-Type headers we get from soup, so that we set a
proper media type on the ResourceResponse.

  • platform/network/soup/ResourceHandleSoup.cpp: (WebCore::fillResponseFromMessage):
07:49 Changeset [41974] by kov@webkit.org
  • 2 edits in trunk/WebCore

2009-03-25 Gustavo Noronha Silva <gns@gnome.org>

Reviewed by Holger Freyther.

https://bugs.webkit.org/show_bug.cgi?id=24600
[GTK] responses with status code >= 400 should not be given special treatment

Do not special case requests that have HTTP responses >=

  1. Redirects are handled automatically by libsoup, but the rest of the responses should be treated like any other.
  • platform/network/soup/ResourceHandleSoup.cpp: (WebCore::): (WebCore::gotHeadersCallback): (WebCore::gotChunkCallback): (WebCore::finishedCallback):
07:36 Changeset [41973] by darin@apple.com
  • 5 edits in trunk/WebCore

2009-03-25 Darin Adler <darin@apple.com>

Reviewed by John Sullivan.

Tidy up LegacyWebArchive a bit. And don't include favicons in web archives when
they are being used only for selections, not an entire document.

  • WebCore.base.exp: Remove exported function that's not used in WebKit.
  • loader/archive/cf/LegacyWebArchive.cpp: (WebCore::LegacyWebArchive::createPropertyListRepresentation): Made a static member function so it can share private things with other member functions. Added some FIXME comments to a branch of code I think is dead. Changed boolean argument into a named one. Renamed to match other similar functions. (WebCore::LegacyWebArchive::createResourceResponseFromPropertyListData): Ditto. (WebCore::LegacyWebArchive::createResource): Ditto. (WebCore::LegacyWebArchive::create): Merged the create and init functions. (WebCore::LegacyWebArchive::rawDataRepresentation): Added some assertions because we should never fail to write (we can fail to read). (WebCore::LegacyWebArchive::createResourceResponseFromMacArchivedData): Made a static member function as above. (WebCore::LegacyWebArchive::createFromSelection): Ditto. (WebCore::LegacyWebArchive::create): Iterate the vector with indices rather than iterators. Only include the favicon if the first node is the document since we don't want to include the favicon when copying and pasting.
  • loader/archive/cf/LegacyWebArchive.h: Made one of the create functions private. Made the Mac-specific functions be static member functions. Made other helpers be static member functions. Removed the nit function.
  • loader/archive/cf/LegacyWebArchiveMac.mm: (WebCore::LegacyWebArchive::createResourceResponseFromMacArchivedData): Updated comment and made this a static member function. (WebCore::LegacyWebArchive::createPropertyListRepresentation): Ditto. Also made it so we only type cast in one place.
07:34 Changeset [41972] by darin@apple.com
  • 12 edits
    2 adds in trunk

WebCore:

2009-03-25 Darin Adler <darin@apple.com>

Reviewed by David Hyatt.

Bug 24740: crash in RenderSlider::setPositionFromValue when calling pause() after setting <video> to display: none
https://bugs.webkit.org/show_bug.cgi?id=24740
rdar://problem/6679873

Bug 12104: Native Slider: When the thumb's height is specified as a percentage, it is not centered properly
https://bugs.webkit.org/show_bug.cgi?id=12104

Test: media/video-display-none-crash.html

The problem here was that RenderSlider was trying to position its thumb in a way that
requires it to call updateLayout inside rendering code. The right way to position a
child renderer is to do layout, so I had to write a layout function. And then fix a few
other small problems shown by the same test case.

  • rendering/RenderSlider.cpp: Made defaultTrackLength have internal linkage. Renamed HTMLSliderThumbElement to SliderThumbElement because we only use the HTML prefix for public DOM classes, not elements used as implementation details. Made SliderThumbElement function members private and got rid of unneeded default argument value for shadowParent. (WebCore::SliderRange::SliderRange): Added. Parses precision, max, and min attributes. (WebCore::SliderRange::clampValue): Added. Does standard clamping based on the above. (WebCore::SliderRange::valueFromElement): Added. Reads the value from the element in a way that clamps to the range. (WebCore::sliderPosition): Added. Computes the slider position: a double. (WebCore::SliderThumbElement::SliderThumbElement): Removed unneeded explicit initialization of m_initialClickPoint. (WebCore::SliderThumbElement::defaultEventHandler): Call setValueForPosition instead of calling setCurrentPosition and valueChanged. (WebCore::RenderSlider::RenderSlider): Remove unneeded explicit initialization of m_thumb. (WebCore::RenderSlider::styleDidChange): Remove unneeded second argument to createThumbStyle. (WebCore::RenderSlider::createThumbStyle): Remove unneeded second argument. Get rid of code setting the position to relative and setting the left and top. We now handle positioning in a custom layout function. (WebCore::RenderSlider::layout): Rewrote to handle positioning of the thumb as layout. (WebCore::RenderSlider::updateFromElement): Added code to immediately update the value in the element if it's out of range. This clamping used to be done as a side effect of setPositionFromValue. Also, this has nothing to do with the renderer, so at some point it could be moved into HTMLInputElement. Removed call to setPositionFromValue and instead just rely on the call to setNeedsLayout. Fix the setNeedsLayout call to be a normal setNeedsLayout(true), not a setNeedsLayout(true, false), because we do want this to be propagated to the parent -- it's not called during layout. (WebCore::RenderSlider::setValueForPosition): Refactor to use the new SliderRange class. Also don't call setCurrentPosition; instead just call setNeedsLayout. (WebCore::RenderSlider::currentPosition): Use the actual position of the renderer rather than the style to find the position; that means this needs to be done after layout is done. Also removed unneeded runtime checks and replaced them with assertions, after checking all callers to see they already guarantee this. (WebCore::RenderSlider::trackSize): Removed unneeded runtime checks and replaced them with assertions, after checking all callers to see they already guarantee this. (WebCore::RenderSlider::inDragMode): Added a null check for m_thumb so this won't crash if called early on a brand new RenderSlider.
  • rendering/RenderSlider.h: Made all functions private except for forwardEvent and inDragMode. Renamed HTMLSliderThumbElement to SliderThumbElement because we only use the HTML prefix for public DOM classes, not elements used as implementation details. Made the mouseEventIsInThumb function non-virtual. Removed the return value and argument from setPositionFromValue. Removed valueChanged and setCurrentPosition. Removed the oldStyle argument to createThumbStyle (see above). Made SliderThumbElement a friend so it can use some private member functions.

LayoutTests:

2009-03-25 Darin Adler <darin@apple.com>

Reviewed by David Hyatt.

Bug 24740: crash in RenderSlider::setPositionFromValue when calling pause() after setting <video> to display: none
https://bugs.webkit.org/show_bug.cgi?id=24740
rdar://problem/6679873

Bug 12104: Native Slider: When the thumb's height is specified as a percentage, it is not centered properly
https://bugs.webkit.org/show_bug.cgi?id=12104

  • media/video-display-none-crash-expected.txt: Added.
  • media/video-display-none-crash.html: Added.
  • platform/mac/fast/forms/box-shadow-override-expected.txt: Updated since a slider's thumb is no longer relative-positioned and hence no longer gets its own layer.
  • platform/mac/fast/forms/input-appearance-height-expected.txt: Ditto.
  • platform/mac/fast/forms/slider-padding-expected.txt: Ditto.
  • platform/mac/fast/forms/slider-thumb-shared-style-expected.txt: Ditto.
  • platform/mac/fast/forms/slider-thumb-stylability-expected.txt: Ditto.
  • platform/mac/media/audio-controls-rendering-expected.txt: Ditto.
  • platform/mac/media/video-controls-rendering-expected.txt: Ditto.
  • platform/mac/media/video-display-toggle-expected.txt: Ditto.
07:31 Changeset [41971] by kov@webkit.org
  • 2 edits in trunk/WebKit/gtk

2009-03-25 Gustavo Noronha Silva <gns@gnome.org>

Reviewed by Holger Freyther.

https://bugs.webkit.org/show_bug.cgi?id=15793
[GTK] tooltip position doesn't update when hovering consecutive links

Work-around tooltips not updating their location when the elements
are consecutive, by clearing the tooltip when handling
mouseDidMoveOverElement.

  • WebCoreSupport/ChromeClientGtk.cpp: (WebKit::ChromeClient::mouseDidMoveOverElement):
06:01 Changeset [41970] by staikos@webkit.org
  • 5 edits in trunk/WebCore

2009-03-25 Eli Fidler <eli.fidler@torchmobile.com>

Reviewed by George Staikos.

Fix ambiguous else cases by adding braces to nested if()s with elses.

05:00 Changeset [41969] by xan@webkit.org
  • 3 edits in trunk/WebKit/gtk

2009-03-23 Alejandro Garcia Castro <alex@igalia.com>

Reviewed by Holger Freyther.

[Gtk] Current API does not allow us to open target="_blank" links
in new tabs instead of windows
https://bugs.webkit.org/show_bug.cgi?id=23932

Added a signal to the API (new-window-policy-decision-requested)
that allows the browser to decide the policy for the new window
request, if the signal is not handled we open the new window as
usual.

  • WebCoreSupport/FrameLoaderClientGtk.cpp: (WebKit::getNavigationAction): (WebKit::FrameLoaderClient::dispatchDecidePolicyForNewWindowAction): (WebKit::FrameLoaderClient::dispatchDecidePolicyForNavigationAction):
  • webkit/webkitwebview.cpp:

03/24/09:

21:18 Changeset [41968] by mrowe@apple.com
  • 2 edits in trunk/WebKitTools

Fix the Tiger build some more.

21:06 Changeset [41967] by mrowe@apple.com
  • 2 edits in trunk/WebKitTools

Fix the Tiger build.

20:29 Changeset [41966] by mrowe@apple.com
  • 4 edits in trunk

Explicitly map NSNotFound to -1 so that the result of-characterIndexForPointX:Y: does not differ between 32- and 64-bit.

Reviewed by Jon "The Most Boring Man in the World" Honeycutt.

  • DumpRenderTree/mac/TextInputController.m:

(-[TextInputController characterIndexForPointX:Y:]):

Update test result for change to explicitly map NSNotFound to -1 in textInputController.characterIndexForPoint.

  • platform/mac/fast/dom/character-index-for-point-expected.txt:
20:13 Changeset [41965] by mrowe@apple.com
  • 2 edits in trunk/LayoutTests

Skip some more tests that are failing.

Rubber-stamped by Oliver Hunt.

  • platform/mac-snowleopard/Skipped:
19:47 Changeset [41964] by staikos@webkit.org
  • 2 edits in trunk/WebCore

2009-03-24 Eli Fidler <eli.fidler@torchmobile.com>

Reviewed by George Staikos.

Move variable into proper platform block to quiet warning.

19:14 Changeset [41963] by eric.carlson@apple.com
  • 3 edits in trunk/WebCore

2009-03-24 Eric Carlson <eric.carlson@apple.com>

Reviewed by Antti Koivisto.

Fix for <rdar://problem/6719375> Deal with QTKit loadstate changes when playing streaming movies

  • WebCore/html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::setNetworkState): Deal with media engine reviving after having network state of NETWORK_NO_SOURCE.
  • WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm: (WebCore::MediaPlayerPrivate::updateStates): Reset m_readyState at each state change since some types of movies currently cause QTKit's load state to bounce around. QTMovieLoadStatePlaythroughOK corresponds to HaveFutureData, not HaveEnoughData.
17:57 Changeset [41962] by adele@apple.com
  • 7 edits in trunk

WebCore:

2009-03-24 Adele Peterson <adele@apple.com>

Reviewed by Darin Adler.

Fix for https://bugs.webkit.org/show_bug.cgi?id=24707
<rdar://problem/6593021> Deleting with a caret in a blank, quoted line decreases the quoting, but does not delete the line

  • editing/TypingCommand.cpp: (WebCore::TypingCommand::deleteKeyPressed): After breaking out of an empty mail blockquote, we still want continue with the deletion so actual content will get deleted, and not just the quote style.

LayoutTests:

2009-03-24 Adele Peterson <adele@apple.com>

Reviewed by Darin Adler.

Updated tests for https://bugs.webkit.org/show_bug.cgi?id=24707
<rdar://problem/6593021> Deleting with a caret in a blank, quoted line decreases the quoting, but does not delete the line

  • editing/deleting/2610675-1-expected.txt:
  • editing/deleting/2610675-1.html:
  • editing/deleting/2610675-2-expected.txt:
  • editing/deleting/2610675-2.html:
17:30 Changeset [41961] by darin@apple.com
  • 2 edits in trunk/WebCore

2009-03-24 Darin Adler <darin@apple.com>

Reviewed by Brady Eidson.

<rdar://problem/6624662> REGRESSION (r39904): can't save certain web pages as web archive (ones without favicons!)

  • loader/archive/cf/LegacyWebArchive.cpp: (WebCore::LegacyWebArchive::create): Added a null check.
17:02 Changeset [41960] by darin@chromium.org
  • 2 edits in trunk/WebCore

2009-03-24 Adam Langley <agl@google.com>

Reviewed by Darin Fisher.

https://bugs.webkit.org/show_bug.cgi?id=24685

The Skia drawLine function takes subpixel values and attempts to draw
a line with subpixel precision. This is complex and slow for drawing
scrollbars which use only vertical and horizontal lines.

This changes the Chromium Linux scrollbar code to use drawIRect.

  • platform/chromium/ScrollbarThemeChromiumLinux.cpp: (WebCore::ScrollbarThemeChromium::invalidateOnMouseEnterExit): (WebCore::drawVertLine): (WebCore::drawHorizLine): (WebCore::drawBox): (WebCore::ScrollbarThemeChromium::paintTrackPiece): (WebCore::ScrollbarThemeChromium::paintThumb):
16:36 Changeset [41959] by mrowe@apple.com
  • 2 edits in trunk/LayoutTests

Skip fast/forms/search-zoomed.html as it currently fails due to <rdar://problem/6718460>.

Rubber-stamped by Sam Weinig.

  • platform/mac-snowleopard/Skipped:
16:25 Changeset [41958] by simon.fraser@apple.com
  • 1 edit in trunk/WebCore/ChangeLog

Fix the list of files touched in r41951 in the Changelog.

16:18 Changeset [41957] by mrowe@apple.com
  • 2 edits in trunk/LayoutTests

Skip some more media tests for now.

  • platform/mac-snowleopard/Skipped:
16:18 Changeset [41956] by mrowe@apple.com
  • 2 edits in trunk/WebKitTools

Use a different platform search path for tests and skip lists, so that Tiger doesn't end up
using the Leopard skip list. Tests and skip lists are now looked for in the directory for
the current OS and the generic "mac" directory. Tests and skip lists for newer OS versions are
ignored.

Reviewed by Sam Weinig.

  • Scripts/run-webkit-tests:
15:30 Changeset [41955] by pam@chromium.org
  • 1 edit
    26 adds in trunk/LayoutTests

2009-03-24 Pamela Greene <pam@chromium.org>

Reviewed by Sam Weinig.

Add tests of font choices and metrics, to isolate those dependencies.

https://bugs.webkit.org/show_bug.cgi?id=24566

  • fonts: Added.
  • fonts/cursive.html: Added.
  • fonts/default.html: Added.
  • fonts/fantasy.html: Added.
  • fonts/monospace.html: Added.
  • fonts/sans-serif.html: Added.
  • fonts/serif.html: Added.
  • platform/mac/fonts: Added.
  • platform/mac/fonts/cursive-expected.checksum: Added.
  • platform/mac/fonts/cursive-expected.png: Added.
  • platform/mac/fonts/cursive-expected.txt: Added.
  • platform/mac/fonts/default-expected.checksum: Added.
  • platform/mac/fonts/default-expected.png: Added.
  • platform/mac/fonts/default-expected.txt: Added.
  • platform/mac/fonts/fantasy-expected.checksum: Added.
  • platform/mac/fonts/fantasy-expected.png: Added.
  • platform/mac/fonts/fantasy-expected.txt: Added.
  • platform/mac/fonts/monospace-expected.checksum: Added.
  • platform/mac/fonts/monospace-expected.png: Added.
  • platform/mac/fonts/monospace-expected.txt: Added.
  • platform/mac/fonts/sans-serif-expected.checksum: Added.
  • platform/mac/fonts/sans-serif-expected.png: Added.
  • platform/mac/fonts/sans-serif-expected.txt: Added.
  • platform/mac/fonts/serif-expected.checksum: Added.
  • platform/mac/fonts/serif-expected.png: Added.
  • platform/mac/fonts/serif-expected.txt: Added.
15:22 Changeset [41954] by staikos@webkit.org
  • 2 edits in trunk/JavaScriptCore

2009-03-24 Eli Fidler <eli.fidler@torchmobile.com>

Reviewed by George Staikos.

Correct warnings which in some environments are treated as errors.

14:40 Changeset [41953] by ddkilzer@apple.com
  • 3 edits
    3 adds in trunk

Bug 23310: Setting an absolute path (/abs) on an <iframe> with no src doesn't resolve the URL properly

<https://bugs.webkit.org/show_bug.cgi?id=23310>

Reviewed by Darin Adler.

WebCore:

Test: fast/frames/iframe-no-src-set-location.html

  • dom/Document.cpp: (WebCore::Document::completeURL): If m_baseURL is empty or is about:blank and we have a parent document, use the parent document's URL for the base when completing a new URL.

LayoutTests:

  • fast/frames/iframe-no-src-set-location-expected.txt: Added.
  • fast/frames/iframe-no-src-set-location.html: Added.
  • fast/frames/resources/iframe-no-src-set-location-pass.html: Copied from LayoutTests/fast/dom/Document/early-document-access-expected.txt.
14:07 Changeset [41952] by simon.fraser@apple.com
  • 3 edits
    2 adds in trunk

2009-03-24 Simon Fraser <simon.fraser@apple.com>

Reviewed by Dave Hyatt

https://bugs.webkit.org/show_bug.cgi?id=24659

When hit-testing 3d-transformed layers, it doesn't make sense to project the hitTestRect
into the coordinate space of the layer, and doing so can result in pathalogical quads
that break hit testing. In that case, simply use the same bounds as used for painting,
which are the composited bounds for this layer.

Test: transforms/3d/hit-testing/rotated-hit-test.html

  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::hitTestLayer):
14:03 Changeset [41951] by simon.fraser@apple.com
  • 3 edits in trunk/WebCore

2009-03-24 Simon Fraser <simon.fraser@apple.com>

Reviewed by Dave Hyatt

https://bugs.webkit.org/show_bug.cgi?id=24436

When compositing is enabled, painting and hit testing end up using different
clipping roots, because, for painting, every composited layer is a clipping root,
but for hit testing only layers with transforms are. To fix this, we use
temporary clip rects for hit testing, if the page is in compositing mode.

  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::hitTestLayer):
13:46 Changeset [41950] by simon.fraser@apple.com
  • 2 edits in trunk/WebCore

2009-03-24 Simon Fraser <simon.fraser@apple.com>

Reviewed by Dan Bernstein

https://bugs.webkit.org/show_bug.cgi?id=24782

Fix regression with CSS clip rects with non-length values, by reverting to
the original code, but passing the zoom multiplier through convertToLength().

Also make stylistic change in createTransformOperations(), renaming 'inStyle'
to 'style.

Tested by existing tests.

  • css/CSSStyleSelector.cpp: (WebCore::convertToLength): (WebCore::CSSStyleSelector::applyProperty): (WebCore::CSSStyleSelector::createTransformOperations):
13:29 Changeset [41949] by bfulgham@webkit.org
  • 2 edits in trunk/WebKit/win

2009-03-24 Brent Fulgham <bfulgham@webkit.org>

Reviewed by Adam Roben.

https://bugs.webkit.org/show_bug.cgi?id=24779
Conditionalize CFNetwork-specific code in WebView to permit
support for other network backends.

  • WebView.cpp: (WebView::setCacheModel): Add CFNETWORK check around CFNetwork specific cache implementation. (updateSharedSettingsFromPreferencesIfNeeded): Add CFNETWORK check around use of CFHTTPCookie code.
13:23 Changeset [41948] by hyatt@apple.com
  • 3 edits
    4 adds in trunk

WebCore:

2009-03-24 David Hyatt <hyatt@apple.com>

Reviewed by Simon Fraser

https://bugs.webkit.org/show_bug.cgi?id=21789, overflow:hidden elements should clip their foreground contents
to a border-radius.

This patch makes non-self-painting overflow layers and control clips work with border-radius. RenderLayers
that should be clipped by overflow ancestors with border-radius are still broken.

Added fast/clip/overflow-border-radius-clip.html

  • rendering/RenderBox.cpp: (WebCore::RenderBox::pushContentsClip):

LayoutTests:

2009-03-24 David Hyatt <hyatt@apple.com>

Reviewed by Simon Fraser

Test for https://bugs.webkit.org/show_bug.cgi?id=21789

  • fast/clip/overflow-border-radius-clip.html: Added.
  • platform/mac/fast/clip/overflow-border-radius-clip-expected.checksum: Added.
  • platform/mac/fast/clip/overflow-border-radius-clip-expected.png: Added.
  • platform/mac/fast/clip/overflow-border-radius-clip-expected.txt: Added.
13:05 Changeset [41947] by hyatt@apple.com
  • 1 edit in trunk/WebCore/rendering/RenderReplaced.cpp

Fix stray ; that snuck in right before landing.

12:52 Changeset [41946] by kevino@webkit.org
  • 2 edits in trunk/JavaScriptCore

Reviewed by Darin Adler.

Explicitly define HAVE_LANGINFO_H on Darwin. Fixes the wx build bot jscore
test failure.

https://bugs.webkit.org/show_bug.cgi?id=24780

12:35 Changeset [41945] by hyatt@apple.com
  • 5 edits
    4 adds in trunk

WebCore:

2009-03-24 David Hyatt <hyatt@apple.com>

Reviewed by Simon Fraser

https://bugs.webkit.org/show_bug.cgi?id=21789, overflow:hidden elements should clip their foreground contents.


This first patch makes overflow:hidden properly clip the foreground contents of overflow:hidden replaced elements. Common
replaced elements now default to overflow:hidden in the UA stylesheet (this is what the spec specifically recommends be
done).


Added fast/replaced/border-radius-clip.html

  • css/html4.css:
  • rendering/RenderReplaced.cpp: (WebCore::RenderReplaced::paint):
  • rendering/RenderWidget.cpp: (WebCore::RenderWidget::paint):

LayoutTests:

2009-03-24 David Hyatt <hyatt@apple.com>

Reviewed by Simon Fraser

Test for https://bugs.webkit.org/show_bug.cgi?id=21789

  • fast/replaced/border-radius-clip.html: Added.
  • platform/mac/fast/replaced/border-radius-clip-expected.checksum: Added.
  • platform/mac/fast/replaced/border-radius-clip-expected.png: Added.
  • platform/mac/fast/replaced/border-radius-clip-expected.txt: Added.
11:25 Changeset [41944] by adele@apple.com
  • 3 edits in trunk/WebCore

2009-03-24 Adele Peterson <adele@apple.com>

RS by Mark Rowe.

Only build these Mail quirks checks in on the Mac.

  • dom/Document.cpp: (WebCore::disableRangeMutation):
  • html/HTMLElement.cpp: (WebCore::HTMLElement::inEitherTagList):
10:55 Changeset [41943] by bfulgham@webkit.org
  • 2 edits in trunk/WebCore

2009-03-24 Brent Fulgham <bfulgham@webkit.org>

Build fix, no review.

Remove ResourceLoaderCFNet.cpp from build list for Cairo Releas
and Debug targets.

  • WebCore.vcproj/WebCore.vcproj:
10:36 Changeset [41942] by eric.carlson@apple.com
  • 9 edits in trunk

2009-03-24 Eric Carlson <eric.carlson@apple.com>

Update media tests broken by r41907.

  • fast/dom/Window/window-properties-expected.txt:
  • http/tests/media/video-play-stall-seek.html:
  • http/tests/media/video-play-stall.html:

2009-03-24 Eric Carlson <eric.carlson@apple.com>

Fix layout tests broken by r41907.

  • html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::setReadyState): Don't set "was playing" based on the new ready state
10:18 Changeset [41941] by dimich@chromium.org
  • 2 edits in trunk/WebCore

2009-03-24 Dmitry Titov <dimich@chromium.org>

Reviewed by Dimitri Glazkov.

https://bugs.webkit.org/show_bug.cgi?id=24689
Fix Chromium compilation errors.

  • bindings/v8/WorkerContextExecutionProxy.cpp: (WebCore::WorkerContextExecutionProxy::FindOrCreateEventListener): (WebCore::WorkerContextExecutionProxy::RemoveEventListener):
10:08 Changeset [41940] by dglazkov@chromium.org
  • 2 edits in trunk/WebCore

2009-03-24 Yury Semikhatsky <yurys@chromium.org>

Reviewed by Darin Adler.

https://bugs.webkit.org/show_bug.cgi?id=24759
Add missing methods Element.prototype.removeMatchingStyleClasses and
Node.prototype.enclosingNodeOrSelfWithNodeNameInArray to SourceFrame content
iframe. These methods are called by Element.prototype.removeStyleClass and
Node.prototype.enclosingNodeOrSelfWithNodeName.

  • inspector/front-end/SourceFrame.js: (WebInspector.SourceFrame.prototype._loaded):
10:03 Changeset [41939] by dglazkov@chromium.org
  • 24 edits in trunk/WebCore

2009-03-24 Mark Mentovai <mark@chromium.org>

Reviewed by Mark Rowe.

https://bugs.webkit.org/show_bug.cgi?id=24653
WebKit should be buildable without prefix header injection.
Adds missing #includes and forward declarations as needed.

  • editing/SmartReplaceCF.cpp:
  • platform/graphics/mac/ColorMac.mm:
  • platform/graphics/mac/FontCacheMac.mm:
  • platform/graphics/mac/FontCustomPlatformData.h:
  • platform/graphics/mac/FontMac.mm:
  • platform/graphics/mac/FontMacATSUI.mm:
  • platform/graphics/mac/FontPlatformData.h:
  • platform/graphics/mac/FontPlatformDataMac.mm:
  • platform/graphics/mac/GraphicsContextMac.mm:
  • platform/graphics/mac/SimpleFontDataMac.mm:
  • platform/mac/FoundationExtras.h:
  • platform/mac/LocalCurrentGraphicsContext.h:
  • platform/mac/WebCoreSystemInterface.h:
  • platform/mac/WebCoreSystemInterface.mm:
  • platform/mac/WebCoreTextRenderer.h:
  • platform/mac/WebCoreTextRenderer.mm:
  • platform/mac/WebFontCache.h:
  • platform/mac/WebFontCache.mm:
  • platform/text/PlatformString.h:
  • platform/text/mac/ShapeArabic.c:
  • platform/text/mac/StringMac.mm:
  • rendering/RenderThemeChromiumMac.h:
09:24 Changeset [41938] by mitz@apple.com
  • 4 edits
    3 adds in trunk

WebCore:

Reviewed by Darin Adler.

  • fix <rdar://problem/6107874> by capping the nesting depth of "block-level" elements generated by the parser

Test: fast/parser/block-nesting-cap.html

  • html/HTMLParser.cpp: (WebCore::HTMLParser::HTMLParser): (WebCore::HTMLParser::insertNode): (WebCore::HTMLParser::pushBlock): (WebCore::HTMLParser::popOneBlockCommon): (WebCore::HTMLParser::freeBlock):
  • html/HTMLParser.h:

LayoutTests:

Reviewed by Darin Adler.

  • test for <rdar://problem/6107874>

Test that the nesting depth of "block-level" elements generated by
the parser is capped

  • fast/parser/block-nesting-cap-expected.txt: Added.
  • fast/parser/block-nesting-cap.html: Added.
  • fast/parser/resources/block-nesting-cap.js: Added.
00:50 Changeset [41937] by mitz@apple.com
  • 2 edits in trunk/WebKit/mac

Reviewed by Oliver Hunt.

  • speculative fix for <rdar://problem/6630134> Crash at Editor::compositionRange()
  • WebView/WebHTMLView.mm: (-[WebHTMLView markedRange]): Null-check the Frame like most other methods in this class.

03/23/09:

21:16 Changeset [41936] by bolsinga@apple.com
  • 2 edits in trunk/WebCore

2009-03-23 Greg Bolsinga <bolsinga@apple.com>

Reviewed by David Kilzer.

https://bugs.webkit.org/show_bug.cgi?id=24771


DOMTimeStamps are based upon 1970.

  • platform/mac/GeolocationServiceMac.mm: (-[WebCoreCoreLocationObserver locationManager:didUpdateToLocation:fromLocation:]):
20:45 Changeset [41935] by eric@webkit.org
  • 2 edits in trunk/WebCore

Build fix, no review.

  • rendering/RenderObject.cpp: (WebCore::RenderObject::createVisiblePosition): change .container to .isNotNull()
20:19 Changeset [41934] by slewis@apple.com
  • 2 edits in trunk/WebKitTools

2009-03-23 Stephanie <slewis@apple.com>

Fix root build.

  • DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
19:25 Changeset [41933] by eric@webkit.org
  • 4 edits in trunk/WebCore

Reviewed by Darin Adler.

Rename Position::container to m_anchorNode and make it private
https://bugs.webkit.org/show_bug.cgi?id=24760

More code cleanup for Position.

Change all uses of m_container to node()
Eventually most uses of node() should change to anchorNode() to designate
that it's the node the Position is anchored to, but not necessarily the
container of the position (it could be the before/after neighbor).

Remove any code which sets m_container, and change it to use a new
Position::moveToPosition function which takes a node and offset.
It never makes sense to change the node and leave the offset.

  • dom/Position.h: (WebCore::Position::Position): (WebCore::Position::clear): (WebCore::Position::anchorNode): (WebCore::Position::node): (WebCore::Position::moveToPosition): (WebCore::Position::moveToOffset): (WebCore::Position::isNull): (WebCore::Position::isNotNull): (WebCore::operator==):
  • dom/Range.cpp: (WebCore::Range::create): (WebCore::Range::compareBoundaryPoints):
  • dom/RangeBoundaryPoint.h: (WebCore::RangeBoundaryPoint::container): (WebCore::RangeBoundaryPoint::set): (WebCore::RangeBoundaryPoint::setOffset): (WebCore::RangeBoundaryPoint::setToChild): (WebCore::RangeBoundaryPoint::setToStart): (WebCore::RangeBoundaryPoint::setToEnd):
19:06 Changeset [41932] by eric@webkit.org
  • 3 edits
    3 adds in trunk

Reviewed by David Hyatt.

document.write() should be able to make a document strict mode
https://bugs.webkit.org/show_bug.cgi?id=24336

Remove an implicit write of "<html>" on the first document.write call
this was added as part of a KDE import http://trac.webkit.org/changeset/798
with no layout test or explanation. I can't think of any reason why
an implicit <html> write is necessary (or correct), so I'm removing it and
adding a test for the correct behavior. The parser will add any necessary
HTMLHTMLElements during the write() anyway.

Our behavior is now tested by fast/dom/Document/document-write-doctype
and matches IE, FF fails this new test. Mozilla bug filed:
https://bugzilla.mozilla.org/show_bug.cgi?id=483908

  • dom/Document.cpp: (WebCore::Document::write):
18:59 Changeset [41931] by oliver@apple.com
  • 4 edits in trunk/JavaScriptCore

Fix className() for API defined class

Reviewed by Cameron Zwarich

18:31 Changeset [41930] by weinig@apple.com
  • 9 edits in trunk

WebCore:

2009-03-23 Sam Weinig <sam@webkit.org>

Reviewed by Dan Bernstein.

Fix for <rdar://problem/6140966>
Empty Caches does not clear the Cross-site XMLHttpRequest preflight cache

  • WebCore.base.exp:
  • WebCore.xcodeproj/project.pbxproj:
  • loader/CrossOriginPreflightResultCache.cpp: (WebCore::CrossOriginPreflightResultCache::empty):
  • loader/CrossOriginPreflightResultCache.h:

WebKit/mac:

2009-03-23 Sam Weinig <sam@webkit.org>

Reviewed by Dan Bernstein.

Fix for <rdar://problem/6140966>
Empty Caches does not clear the Cross-site XMLHttpRequest preflight cache

  • Misc/WebCache.mm: (+[WebCache empty]):

WebKit/win:

2009-03-23 Sam Weinig <sam@webkit.org>

Reviewed by Dan Bernstein.

Fix for <rdar://problem/6140966>
Empty Caches does not clear the Cross-site XMLHttpRequest preflight cache

  • WebCache.cpp: (WebCache::empty): Also add application cache emptying to match the mac.
17:53 Changeset [41929] by darin@apple.com
  • 1 edit in trunk/WebCore/rendering/RenderObject.cpp

Tweak comment.

17:50 Changeset [41928] by darin@apple.com
  • 10 edits
    2 adds in trunk

WebCore:

2009-03-23 Darin Adler <darin@apple.com>

Reviewed by Adele Peterson.

Bug 24726: hit testing doesn't work right when the click is on anonymous content
https://bugs.webkit.org/show_bug.cgi?id=24726
rdar://problem/6696992

Test: editing/selection/hit-test-anonymous.html

  • rendering/RenderBR.cpp: (WebCore::RenderBR::positionForPoint): Call createVisiblePosition instead of creating a VisiblePosition directly. It will handle finding non-anonymous content nearby if node() is 0.
  • rendering/RenderBlock.cpp: (WebCore::positionForPointRespectingEditingBoundaries): Ditto. (WebCore::positionForPointWithInlineChildren): Ditto. (WebCore::RenderBlock::positionForPoint): Ditto.
  • rendering/RenderBox.cpp: (WebCore::RenderBox::positionForPoint): Ditto.
  • rendering/RenderObject.cpp: (WebCore::RenderObject::positionForPoint): Ditto. (WebCore::RenderObject::createVisiblePosition): Added.
  • rendering/RenderObject.h: Added createVisiblePosition.
  • rendering/RenderReplaced.cpp: (WebCore::RenderReplaced::positionForPoint): Call createVisiblePosition.
  • rendering/RenderSVGInlineText.cpp: (WebCore::RenderSVGInlineText::positionForPoint): Ditto.
  • rendering/RenderText.cpp: (WebCore::RenderText::positionForPoint): Ditto.

LayoutTests:

2009-03-23 Darin Adler <darin@apple.com>

Reviewed by Adele Peterson.

Bug 24726: hit testing doesn't work right when the click is on anonymous content
https://bugs.webkit.org/show_bug.cgi?id=24726
rdar://problem/6696992

  • editing/selection/hit-test-anonymous-expected.txt: Added.
  • editing/selection/hit-test-anonymous.html: Added.
17:41 Changeset [41927] by slewis@apple.com
  • 2 edits in trunk/WebKitTools

2009-03-23 Stephanie Lewis <slewis@apple.com>

Reviewed by Mark Rowe.

Add production configuration for creating roots of WebKitTools.

  • DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
17:34 Changeset [41926] by adele@apple.com
  • 2 edits in trunk/WebCore

2009-03-23 Adele Peterson <adele@apple.com>

Reviewed by Darin Adler & Dave Hyatt.

Fix for <rdar://problem/6621310> REGRESSION(35185): Apple Travel HTML emails missing some style after Safari 4 upgrade

Leopard Mail doesn't expect <style> to be in the body. This change reverts back to the old behavior of
moving <style> to <head> for that version of Mail.

  • html/HTMLElement.cpp: (WebCore::HTMLElement::inEitherTagList):
17:33 Changeset [41925] by adele@apple.com
  • 7 edits in trunk

WebCore:

2009-03-23 Adele Peterson <adele@apple.com>

Reviewed by Mark Rowe & Dave Hyatt.

Merge some of the individual Mail quirks into two settings that we can check for future quirks.

  • WebCore.base.exp:
  • dom/Document.cpp: (WebCore::disableRangeMutation): (WebCore::Document::nodeChildrenChanged): (WebCore::Document::nodeWillBeRemoved): (WebCore::Document::textInserted): (WebCore::Document::textRemoved): (WebCore::Document::textNodesMerged): (WebCore::Document::textNodeSplit):
  • page/Settings.cpp: (WebCore::Settings::Settings): (WebCore::Settings::setNeedsLeopardMailQuirks): (WebCore::Settings::setNeedsTigerMailQuirks):
  • page/Settings.h: (WebCore::Settings::needsLeopardMailQuirks): (WebCore::Settings::needsTigerMailQuirks):

WebKit/mac:

2009-03-23 Adele Peterson <adele@apple.com>

Reviewed by Mark Rowe & Dave Hyatt.

Merge some of the individual Mail quirks into two settings that we can check for future quirks.

  • WebView/WebView.mm: (runningLeopardMail): (runningTigerMail): (-[WebView _preferencesChangedNotification:]):
17:18 Changeset [41924] by oliver@apple.com
  • 4 edits in trunk

Make testapi run as part of the standard JavaScriptCore tests.

Reviewed by Geoff Garen.

We only run testapi on the mac as currently windows webkit doesn't
place all the necessary files for testapi, and we also test the
JSC/CF APIs as well.

16:46 Changeset [41923] by adachan@apple.com
  • 8 edits in trunk/WebCore

https://bugs.webkit.org/show_bug.cgi?id=24762
Support text-indent in <option> elements on windows platform.

Reviewed by Adele Peterson.

  • css/themeWin.css:
  • platform/PopupMenuStyle.h: We don't honor font specified on <option> elements right now. Make this explicit via windows themed default stylesheet. (WebCore::PopupMenuStyle::PopupMenuStyle): Also store text-indent and text-direction. (WebCore::PopupMenuStyle::textIndent): (WebCore::PopupMenuStyle::textDirection):
  • platform/win/PopupMenuWin.cpp: (WebCore::PopupMenu::paint): Adjust the text's x-coordinate if text-indent is supported for options and text-indent is specified with LTR direction.
  • rendering/RenderMenuList.cpp: (WebCore::RenderMenuList::updateOptionsWidth): Take text-indent into account if theme supports text-indent for options. (WebCore::RenderMenuList::itemStyle): Use new PopupMenuStyle constructor on windows. (WebCore::RenderMenuList::menuStyle): Ditto.
  • rendering/RenderTextControlSingleLine.cpp: (WebCore::RenderTextControlSingleLine::menuStyle): Ditto.
  • rendering/RenderTheme.h: (WebCore::RenderTheme::popupOptionSupportsTextIndent): Added. Default is false since we are only supporting it in windows for now.
  • rendering/RenderThemeWin.h: (WebCore::RenderThemeWin::popupOptionSupportsTextIndent): Returns true for windows.
16:14 Changeset [41922] by weinig@apple.com
  • 4 edits in trunk/WebCore

2009-03-23 Sam Weinig <sam@webkit.org>

Reviewed by Anders Carlsson.

Fix for https://bugs.webkit.org/show_bug.cgi?id=24699
REGRESSION: Java Applets broken
<rdar://problem/6707494>

Fix loading Java applets without a codeBase. Only pass the base (up to the
the last path component) of the baseURL to the plug-in.

  • html/HTMLAppletElement.cpp: (WebCore::HTMLAppletElement::createRenderer):
  • platform/KURL.cpp: (WebCore::KURL::baseAsString):
  • platform/KURL.h:
15:15 Changeset [41921] by darin@apple.com
  • 2 edits in trunk/WebCore

2009-03-23 Darin Adler <darin@apple.com>

Reviewed by Sam Weinig.

  • platform/KURL.h: Removed now-incorrect comments. None of the parts include the separator characters any more, now that query doesn't include the "?", so the comments explaining which do and do not are no-longer helpful.
14:25 Changeset [41920] by levin@chromium.org
  • 6 edits
    2 moves in trunk/WebCore

2009-03-23 David Levin <levin@chromium.org>

Reviewed by Dimitri Glazkov.

https://bugs.webkit.org/show_bug.cgi?id=24764

Renamed files V8NodeFilter -> V8NodeFilterCondition to reflect
class names. Also fixed some headers that got mangled in search/replace
operations.

No change in behavior, so no test.

  • bindings/v8/V8NodeFilter.h: Removed.
  • bindings/v8/V8NodeFilterCondition.cpp: Renamed from WebCore/bindings/v8/V8NodeFilter.cpp.
  • bindings/v8/V8NodeFilterCondition.h: Added.
  • bindings/v8/custom/V8ClipboardCustom.cpp:
  • bindings/v8/custom/V8DocumentCustom.cpp:
  • bindings/v8/custom/V8ElementCustom.cpp:
  • bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
  • bindings/v8/custom/V8NavigatorCustom.cpp:
13:48 Changeset [41919] by darin@chromium.org
  • 4 edits in trunk/WebCore

2009-03-23 Darin Fisher <darin@chromium.org>

Reviewed by Antti Koivisto.

https://bugs.webkit.org/show_bug.cgi?id=24741

Adds a unique across-browser-sessions identifier to FormData, which may
be used by ResourceHandle as a secondary cache key to enable cached
form submissions.

At issue: two otherwise identical form submissions may result in
completely independent responses, which may each be appropriate to
store and reuse from cache.

  • html/HTMLFormElement.cpp: Added call to FormData::setIdentifier so that we only enable cached form submissions for those generated by HTML. This way we do not bother with POSTs generated by XMLHttpRequest. (WebCore::generateFormDataIdentifier): (WebCore::HTMLFormElement::createFormData):
  • platform/network/FormData.cpp: Initialize m_identifier to 0, which means the unspecified identifier. So by default there is no identifier and nothing changes. (WebCore::FormData::FormData):
  • platform/network/FormData.h: Added m_identifier with setter and getter. (WebCore::FormData::setIdentifier): (WebCore::FormData::identifier):
13:39 Changeset [41918] by simon.fraser@apple.com
  • 7 edits
    2 adds in trunk

2009-03-23 Simon Fraser <simon.fraser@apple.com>

Reviewed by Antti Koivisto

https://bugs.webkit.org/show_bug.cgi?id=24733

Fix media controller with full-page zoom. Previously, the media controller
shadow nodes never saw style changes on the RenderMedia, so did not respond
to zooming at all. Now, we update the style on the shadow renderers
whenever RenderMedia gets a style change. Also fix the video thumb in
the theme to be scaled properly.

Test: media/video-controls-zoomed.html

  • rendering/MediaControlElements.cpp: (WebCore::MediaControlShadowRootElement::updateStyle): (WebCore::MediaTextDisplayElement::MediaTextDisplayElement): (WebCore::MediaTextDisplayElement::updateStyle): (WebCore::MediaControlInputElement::MediaControlInputElement): (WebCore::MediaControlInputElement::updateStyle):
  • rendering/MediaControlElements.h:
  • rendering/RenderMedia.cpp: (WebCore::RenderMedia::styleDidChange):
  • rendering/RenderMedia.h:
  • rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::adjustSliderThumbSize):
13:27 Changeset [41917] by darin@chromium.org
  • 4 edits in trunk/WebCore

2009-03-23 Mike Belshe <mike@belshe.com>

Reviewed by Darin Adler.

https://bugs.webkit.org/show_bug.cgi?id=24739

Rework StringImpl::create methods to try to allocate a single buffer
rather than allocating both the StringImpl class and a separate data
buffer.

  • platform/text/StringImpl.cpp:
  • platform/text/StringImpl.h:
12:05 Changeset [41916] by darin@apple.com
  • 3 edits in trunk/WebCore

2009-03-23 Darin Adler <darin@apple.com>

Reviewed by Antti Koivisto.

Based on a patch by Nico Weber <nicolasweber@gmx.de>

Bug 24755: LayoutTests/http/tests/misc/url-in-utf16le.html regression
https://bugs.webkit.org/show_bug.cgi?id=24755

  • platform/text/TextEncoding.cpp: (WebCore::TextEncoding::isUTF7Encoding): Added. Checks if the current encoding is UTF7 without loading extended codecs. (WebCore::TextEncoding::encodingForFormSubmission): Use isUTF7Encoding() instead of comparing with UTF7Encoding(). Eliminate the explicit check of noExtendedTextEncodingNameUsed() because that's now handled by the functions that this function calls instead.
  • platform/text/TextEncoding.h: Added isUTF7Encoding function. Also tweaked formatting a bit.
12:02 Changeset [41915] by pkasting@chromium.org
  • 4 edits in trunk/WebCore

2009-03-20 Peter Kasting <pkasting@google.com>

Reviewed by Darin Fisher.

https://bugs.webkit.org/show_bug.cgi?id=24720
RenderThemeChromium should draw something for Slider parts instead of
dropping them on the floor.

  • platform/chromium/ChromiumBridge.h:
  • rendering/RenderThemeChromiumWin.cpp: (WebCore::RenderThemeChromiumWin::adjustSliderThumbSize): (WebCore::RenderThemeChromiumWin::paintSliderTrack): (WebCore::RenderThemeChromiumWin::determineSliderThumbState): (WebCore::RenderThemeChromiumWin::getThemeData):
  • rendering/RenderThemeChromiumWin.h: (WebCore::RenderThemeChromiumWin::paintSliderThumb):
11:56 Changeset [41914] by simon.fraser@apple.com
  • 5 edits
    10 adds in trunk

2009-03-23 Simon Fraser <simon.fraser@apple.com>

Reviewed by Darin Adler

https://bugs.webkit.org/show_bug.cgi?id=24736

Fix three mostly-unrelated problems with full-page zoom:

  • dom/Document.cpp: (WebCore::Document::elementFromPoint): Document::elementFromPoint() needs to take full-page zoom into account.
  • dom/MouseRelatedEvent.cpp: (WebCore::MouseRelatedEvent::receivedTarget): Take full-page zoom into account when computing offsetX/offsetY.
  • html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::listBoxDefaultEventHandler): Don't use offsetX/offsetY when hit testing list boxes; offsets were broken with full-page zoom, and using pageX/pageY is easier because we don't have to worry about the event target, and we already have a point in absolute coordinates.

Tests: fast/forms/listbox-hit-test-zoomed.html

fast/forms/search-zoomed.html
fast/forms/slider-zoomed.html

11:54 Changeset [41913] by darin@chromium.org
  • 2 edits in trunk/WebCore

2009-03-23 Glen Murphy <glen@chromium.org>

Reviewed by Darin Fisher.

https://bugs.webkit.org/show_bug.cgi?id=24657

Fix Skia drawing of highly scaled bitmaps; the conversion to
IntRect produced visible layout test failures in highly scaled
coordinate systems.

Test: svg/custom/image-small-width-height.svg

  • WebCore\platform\graphics\skia\ImageSkia.cpp:
11:27 Changeset [41912] by ddkilzer@apple.com
  • 5 edits in trunk

Provide JavaScript exception information after slow script timeout

Reviewed by Oliver Hunt.

JavaScriptCore:

  • runtime/Completion.cpp: (JSC::evaluate): Set the exception object as the Completion object's value for slow script timeouts. This is used in WebCore when reporting the exception.
  • runtime/ExceptionHelpers.cpp: (JSC::InterruptedExecutionError::toString): Added. Provides a description message for the exception when it is reported.

WebCore:

  • bindings/js/ScriptController.cpp: (WebCore::ScriptController::evaluate): Changed to report exceptions for the Interrupted completion type as well.
10:55 Changeset [41911] by simon.fraser@apple.com
  • 3 edits
    4 adds in trunk

2009-03-23 Simon Fraser <simon.fraser@apple.com>

Reviewed by Dan Bernstein

https://bugs.webkit.org/show_bug.cgi?id=24753

The rect for CSS 'clip' needs to have zooming applied to it.

Test: fast/css/clip-zooming.html

  • css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty):
09:47 Changeset [41910] by darin@apple.com
  • 2 edits in trunk/WebKit/mac

2009-03-23 Darin Adler <darin@apple.com>

  • WebView/WebTextIterator.h: Fixed a spelling error in a comment.
08:13 Changeset [41909] by kov@webkit.org
  • 3 edits in trunk/JavaScriptCore

2009-03-23 Gustavo Noronha Silva <gns@gnome.org> and Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com>

Reviewed by Adam Roben.

https://bugs.webkit.org/show_bug.cgi?id=24674
Crashes in !PLATFORM(MAC)'s formatLocaleDate, in very specific situations

Make sure strftime never returns 2-digits years to avoid ambiguity
and a crash. We wrap this new code option in HAVE_LANGINFO_H,
since it is apparently not available in all platforms.

  • runtime/DatePrototype.cpp: (JSC::formatLocaleDate):
  • wtf/Platform.h:
08:07 Changeset [41908] by eric.carlson@apple.com
  • 2 edits in trunk/WebCore

2009-03-23 Eric Carlson <eric.carlson@apple.com>

Reviewed by Adam Roben.

<rdar://problem/6704282>
https://bugs.webkit.org/show_bug.cgi?id=24719
QTMovieWinTimer logic inversion

Fix logic inversion in the Win32 timer used by QTMovieWin that caused it to always
use SetTimer, even when the intervals was below USER_TIMER_MINIMUM. A side effect of
this was that a movie timer would sometimes be blocked for significant amounts of time
because WM_TIMER messages are not processed when the thread's message queue has any
higher priority messages, and WebCore/Win's timer uses PostMessage for low interval
timers. Also change SetTimer call to use HWND and custom message instead of
timer function since the timer already has an HWND for processing PostMessage.

Not possible to make a test for this because it is so timing dependant.

  • platform/graphics/win/QTMovieWinTimer.cpp: (TimerWindowWndProc): (setSharedTimerFireDelay):
08:02 Changeset [41907] by eric.carlson@apple.com
  • 55 edits
    12 adds in trunk

2009-03-23 Eric Carlson <eric.carlson@apple.com>

Reviewed by Adele Peterson.

https://bugs.webkit.org/show_bug.cgi?id=24588


Update media element implementation to current HTML5 spec

New tests:

media/media-constants.html
media/video-seek-no-src-exception.html
media/video-source-add-src.html
media/video-src-invalid-remove.html
media/video-src-plus-source.html
media/video-timeupdate-during-playback.html

  • dom/EventNames.h: Remove obsolute events, add new ones.
  • html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::HTMLMediaElement): Initialize new member vars. (WebCore::HTMLMediaElement::attributeChanged): Trigger load() only when we don't have a source. (WebCore::HTMLMediaElement::removedFromDocument): Deal with state name changes. (WebCore::HTMLMediaElement::scheduleProgressEvent): New, create a progress event and add it to the event queue to be dispatch when the timer fires. (WebCore::HTMLMediaElement::scheduleEvent): New, create a generic event and add it to the event queue to be dispatch when the timer fires. (WebCore::HTMLMediaElement::enqueueEvent): Add an event to the queue and ticke the asynch event timer. (WebCore::HTMLMediaElement::asyncEventTimerFired): Dispatch all pending events. (WebCore::HTMLMediaElement::loadTimerFired): Either trigger the initial load or try to load the next <source> url. (WebCore::HTMLMediaElement::load): Minor style change. (WebCore::HTMLMediaElement::loadInternal): The first part of the spec load algorithm, cleanup the current load (if any) and set up state for a new load. (WebCore::HTMLMediaElement::selectMediaResource): Deal with no 'src' or <source>, post 'loadstart' event, and initiate load from 'src' if present. (WebCore::HTMLMediaElement::loadNextSourceChild): Initiate load from next <source> url, or trigger noneSupported() if no more to consider. (WebCore::HTMLMediaElement::loadResource): Instantiate a new MediaPlayer and ask it to load a url. (WebCore::HTMLMediaElement::startProgressEventTimer): Start the repeating progress event timer. (WebCore::HTMLMediaElement::noneSupported): Post error event and set up state when no valid media url was found. (WebCore::HTMLMediaElement::mediaEngineError): Post error event and set up state when no valid media engine failed with a decode error or a network error. (WebCore::HTMLMediaElement::mediaPlayerNetworkStateChanged): (WebCore::HTMLMediaElement::setNetworkState): Updated for new spec network states. (WebCore::HTMLMediaElement::mediaPlayerReadyStateChanged): (WebCore::HTMLMediaElement::setReadyState): Updated for new spec ready state. (WebCore::HTMLMediaElement::progressEventTimerFired): Bail if the network is not active. (WebCore::HTMLMediaElement::seek): Return INVALID_STATE_ERR exception if state is too low or if player hasn't been set up yet. This is necessary becase load() is async. Clear the flag we use to guard against sending 'ended' more than once. (WebCore::HTMLMediaElement::duration): Don't bother calling media engine before it has metadata. (WebCore::HTMLMediaElement::setDefaultPlaybackRate): Remove exception param, 0 is no longer an invalid rate. (WebCore::HTMLMediaElement::setPlaybackRate): Remove exception param, 0 is no longer an invalid rate. Cache rate being set so we can use it later if media engine isn't ready now. (WebCore::HTMLMediaElement::play): Remove exception param, play() before load() now just starts loading asynchronously. (WebCore::HTMLMediaElement::playInternal): Remove exception param. Fire 'waiting' or 'playing' event depending on current state. (WebCore::HTMLMediaElement::pause): Remove exception param, pause() before load() now just starts loading asynchronously. (WebCore::HTMLMediaElement::pauseInternal): Remove exception param. (WebCore::HTMLMediaElement::setVolume): dispatchEventAsync -> scheduleEvent (WebCore::HTMLMediaElement::setMuted): dispatchEventAsync -> scheduleEvent (WebCore::HTMLMediaElement::togglePlayState): Remove exception param. (WebCore::HTMLMediaElement::beginScrubbing): pause() doesn't take an exception param. (WebCore::HTMLMediaElement::startPlaybackProgressTimer): New, starts timer that fires 4 times per second when the movie is playing to timeupdate so we can post 'timeupdate' events. (WebCore::HTMLMediaElement::playbackProgressTimerFired): Timer proc. (WebCore::HTMLMediaElement::scheduleTimeupdateEvent): Bottleneck around scheduling a 'timeupdate' event because we both fire them them when the spec says we should and when the media engine says that time has jumped, but we don't want to fire more than one at a given movie time. We also use this bottleneck to keep track of the last time one was posted so we won't fire too often during playback. (WebCore::HTMLMediaElement::canPlay): readyState now tracks whether or not we have metadata. (WebCore::HTMLMediaElement::havePotentialSourceChild): New, checks to see if there are a <source> element with a 'src' attribute that we have not tried to load yet. (WebCore::HTMLMediaElement::nextSourceChild): New, returns the url and content type of the next <source> element that we haven't tried to load. (WebCore::HTMLMediaElement::mediaPlayerTimeChanged): Schedule 'seeked' event when seeking completes. Set a flag when we post the 'ended' event, clear it when time changed and we aren't at the end since some media engines call this proc more than once when playback reaches the end and stops, but we don't want to post 'ended' more than once. (WebCore::HTMLMediaElement::mediaPlayerDurationChanged): New, added so media engine can inform when the movie duration changes and we can post 'durationchanged' event. (WebCore::HTMLMediaElement::mediaPlayerRateChanged): New, added so media engine can inform when the rate changed and we can updated our cached rate. This is useful because we only want to know post periodic 'timeupdate' events when the movie is actually playing, and because we want to know the actual playback rate when it differs from what we tried to set. (WebCore::HTMLMediaElement::mediaPlayerSizeChanged): New, added so media engine can inform when a movie's intrinsic size changes and we can inform the renderer. (WebCore::HTMLMediaElement::potentiallyPlaying): Renamed from activelyPlaying since the spec now uses "actively playing" for this concept. Update logic for new state names and un-comment calls to stoppedDueToErrors() and pausedForUserInteraction() since the spec says those condiditons are part of the answer. (WebCore::HTMLMediaElement::endedPlayback): Update logic for new state names. (WebCore::HTMLMediaElement::stoppedDueToErrors): New, spec says this logic should be part of the determination of "potentially playing". (WebCore::HTMLMediaElement::pausedForUserInteraction): New, placeholder for when (if) user agent supports this spec concept. (WebCore::HTMLMediaElement::updatePlayState): Stop timer used to fire periodic 'timeupdate' events when we pauses the movie. Set the media engine rate before calling play() in case it wasn't set up when the rate was changed. (WebCore::HTMLMediaElement::stopPeriodicTimers): New, stop the progress event and 'timeupate' event timers. (WebCore::HTMLMediaElement::userCancelledLoad): New, logic pulled out of documentWillBecomeInactive and updated for the current spec. (WebCore::HTMLMediaElement::documentWillBecomeInactive): Moved some logic to userCancelledLoad. (WebCore::HTMLMediaElement::documentDidBecomeActive): Update comments. (WebCore::HTMLMediaElement::initialURL): Update for refactoring of code that determines the initial url.
  • html/HTMLMediaElement.h: Change ReadyState and NetworkState enums to match names in the spec, update for changes in .cpp. (WebCore::HTMLMediaElement::):
  • html/HTMLMediaElement.idl: Update ready state and network state constants for spec changes. defaultPlaybackRate, playbackRate, play(), and pause() no longer raise exceptions.
  • html/HTMLSourceElement.cpp: (WebCore::HTMLSourceElement::insertedIntoDocument): Update for network state name changes.
  • html/HTMLVideoElement.cpp: (WebCore::HTMLVideoElement::updatePosterImage): Update for ready state name changes.
  • html/MediaError.h: (WebCore::MediaError::): add MEDIA_ERR_NONE_SUPPORTED.
  • html/MediaError.idl: add MEDIA_ERR_NONE_SUPPORTED.
  • loader/MediaDocument.cpp: (WebCore::MediaDocument::defaultEventHandler): play() and pause() don't take an exception.
  • platform/graphics/MediaPlayer.cpp: (WebCore::NullMediaPlayerPrivate::readyState): Update for newtork state name changes. (WebCore::MediaPlayer::sizeChanged): New, so engine can report intrinsic size changes. (WebCore::MediaPlayer::rateChanged): New, so engine can report rate changes. (WebCore::MediaPlayer::durationChanged): New, so engine can report duration changes.
  • platform/graphics/MediaPlayer.h: Update NetworkState and ReadyState enum names to match spec states. (WebCore::MediaPlayerClient::mediaPlayerDurationChanged): New. (WebCore::MediaPlayerClient::mediaPlayerRateChanged): New. (WebCore::MediaPlayerClient::mediaPlayerSizeChanged): New. (WebCore::MediaPlayer::):
  • platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp: (WebCore::MediaPlayerPrivate::MediaPlayerPrivate): Update for network/ready state name changes. (WebCore::MediaPlayerPrivate::load): Ditto. (WebCore::MediaPlayerPrivate::updateStates): Ditto. (WebCore::MediaPlayerPrivate::loadingFailed): Ditto.
  • platform/graphics/mac/MediaPlayerPrivateQTKit.h: Update for network/ready state name changes. Remove endPointTimer, it is no longer necessary. Add m_enabledTrackCount and m_duration. (WebCore::MediaPlayerPrivate::metaDataAvailable):
  • platform/graphics/mac/MediaPlayerPrivateQTKit.mm: (WebCore::MediaPlayerPrivate::MediaPlayerPrivate): No more m_endPointTimer or m_endTime. Initialize m_enabledTrackCount and m_duration. Update for network/ready state name changes. (WebCore::MediaPlayerPrivate::load): Update for network/ready state name changes. (WebCore::MediaPlayerPrivate::play): No more m_endPointTimer. (WebCore::MediaPlayerPrivate::pause): Ditto. (WebCore::MediaPlayerPrivate::currentTime): No more m_endTime. (WebCore::MediaPlayerPrivate::seek): Ditto. (WebCore::MediaPlayerPrivate::doSeek): Ditto, plus don't call setRate(0) when the rate is already zero. (WebCore::MediaPlayerPrivate::setEndTime): No more m_endTime. (WebCore::MediaPlayerPrivate::updateStates): Update for network/ready state name changes. Return different errors depending on what causes a failure. Watch for and report duration changes. (WebCore::MediaPlayerPrivate::rateChanged): Report rate changes. (WebCore::MediaPlayerPrivate::sizeChanged): Report size changes. (WebCore::MediaPlayerPrivate::didEnd): No more endpoint timer. (WebCore::MediaPlayerPrivate::setVisible): Update for network/ready state name changes. (WebCore::MediaPlayerPrivate::disableUnsupportedTracks): Don't return number of unsupported tracks, store in m_enabledTrackCount so we can use it to help determine causes of failure.
  • platform/graphics/qt/MediaPlayerPrivatePhonon.cpp: (WebCore::MediaPlayerPrivate::MediaPlayerPrivate): Update for network/ready state name changes. (WebCore::MediaPlayerPrivate::load): Ditto. (WebCore::MediaPlayerPrivate::duration): Ditto. (WebCore::MediaPlayerPrivate::updateStates): Ditto. (WebCore::MediaPlayerPrivate::naturalSize): Ditto.
  • platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp: (WebCore::MediaPlayerPrivate::MediaPlayerPrivate): No more m_endPointTimer. Update for network/ready state name changes. (WebCore::MediaPlayerPrivate::load): Update for network/ready state name changes. No more m_endPointTimer. (WebCore::MediaPlayerPrivate::play): No more m_endPointTimer. (WebCore::MediaPlayerPrivate::pause): Ditto. (WebCore::MediaPlayerPrivate::setEndTime): Ditto. (WebCore::MediaPlayerPrivate::updateStates): Update for network/ready state name changes. (WebCore::MediaPlayerPrivate::didEnd): No more m_endPointTimer.
  • platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h:
  • rendering/MediaControlElements.cpp: (WebCore::MediaControlPlayButtonElement::defaultEventHandler): Update for network/ready state name changes. (WebCore::MediaControlSeekButtonElement::defaultEventHandler): Ditto.

2009-03-23 Eric Carlson <eric.carlson@apple.com>

Reviewed by Adele Peterson.


https://bugs.webkit.org/show_bug.cgi?id=24588
Bug 24588: Update media element implementation to current spec

  • media/media-constants-expected.txt: Test all media constants.
  • media/media-constants.html: Ditto.
  • media/remove-from-document-expected.txt: Updated for spec changes.
  • media/remove-from-document-no-load.html: Ditto.
  • media/remove-from-document.html: Ditto.
  • media/unsupported-rtsp-expected.txt: Ditto.
  • media/unsupported-rtsp.html: Ditto.
  • media/video-currentTime-set-expected.txt: Ditto.
  • media/video-currentTime-set.html: Ditto.
  • media/video-error-does-not-exist-expected.txt: Ditto.
  • media/video-error-does-not-exist.html: Ditto.
  • media/video-load-networkState-expected.txt: Ditto.
  • media/video-load-networkState.html: Ditto.
  • media/video-load-readyState-expected.txt: Ditto.
  • media/video-load-readyState.html: Ditto.
  • media/video-loop-expected.txt: Ditto.
  • media/video-loop.html: Ditto.
  • media/video-pause-empty-events-expected.txt: Ditto.
  • media/video-pause-empty-events.html: Ditto.
  • media/video-play-empty-events-expected.txt: Ditto.
  • media/video-play-empty-events.html: Ditto.
  • media/video-play-pause-events-expected.txt: Ditto.
  • media/video-play-pause-events.html: Ditto.
  • media/video-play-pause-exception-expected.txt: Ditto.
  • media/video-play-pause-exception.html: Ditto.
  • media/video-seek-no-src-exception-expected.txt: Test that seeking whene there is no 'src' attribute throws an INVALID_STATE_ERR exception.
  • media/video-seek-no-src-exception.html:
  • media/video-seek-past-end-playing-expected.txt: Ditto.
  • media/video-seek-past-end-playing.html: Ditto.
  • media/video-seeking-expected.txt: Ditto.
  • media/video-seeking.html: Ditto.
  • media/video-source-add-src-expected.txt: Test that adding a 'src' attribute does nothing when a <source> element has already been chosen.
  • media/video-source-add-src.html:
  • media/video-src-change-expected.txt: Ditto.
  • media/video-src-change.html: Ditto.
  • media/video-src-invalid-remove-expected.txt: Test that removing invalid 'src' attribute triggers <source> elements loading.
  • media/video-src-invalid-remove.html:
  • media/video-src-plus-source-expected.txt: Test that a <source> element is not used when a bogus 'src' attribute is present.
  • media/video-src-plus-source.html:
  • media/video-src-remove-expected.txt: Ditto.
  • media/video-src-remove.html: Ditto.
  • media/video-test.js: (findMediaElement): (testExpected): (waitForEvent): (failTest):
  • media/video-timeupdate-during-playback-expected.txt: Test that 'timeupdate' events are posted while an element is playing but not while paused.
  • media/video-timeupdate-during-playback.html:
  • platform/mac/Skipped: Skip media/video-error-abort.html for now, need to figure out how to test now that the 'loadstart' event is now fired asynchronously.
  • platform/win/Skipped
05:43 Changeset [41906] by xan@webkit.org
  • 2 edits in trunk

2009-03-21 Xan Lopez <xlopez@igalia.com>

Reviewed by Holger Freyther.

Require gnome-keyring 2.26.0, since we were depending on an
unreleased trunk revision between 2.25.91 and 2.26.0.

  • configure.ac:

03/22/09:

23:01 Changeset [41905] by oliver@apple.com
  • 4 edits in trunk/JavaScriptCore

Fix exception handling in API

Reviewed by Cameron Zwarich.

We can't just use the ExecState exception slot for returning exceptions
from class introspection functions provided through the API as many JSC
functions will explicitly clear the ExecState exception when returning.

21:31 Changeset [41904] by oliver@apple.com
  • 1 edit in trunk/JavaScriptCore/jit/JITStubs.cpp

Fix instanceof implementation to handle API object overriding hasInstance

Reviewed by Cameron Zwarich.

We can only take the fast paths for instanceof if the object doesn't override
hasInstance, so we have to check for that.

20:46 Changeset [41903] by mitz@apple.com
  • 2 edits in trunk/WebKit/mac

Reviewed by John Sullivan.

  • fix <rdar://problem/6640741> Messages not displaying after the Safari 4 beta was installed

Mail assumes that if -[WebArchive subresources] is not nil, then it
contains at least one object.

  • WebView/WebArchive.mm: (-[WebArchive subresources]): Preserve the behavior of returning nil if there are no subresources.
14:12 Companies and Organizations that have contributed to WebKit edited by alp@atoker.com
Add Nuanti (diff)
12:50 Changeset [41902] by simon.fraser@apple.com
  • 2 edits in trunk/WebCore

2009-03-22 Simon Fraser <simon.fraser@apple.com>

Reviewed by Dan Bernstein

https://bugs.webkit.org/show_bug.cgi?id=24665

Image-map code in RenderImage could result in RenderImage::nodeAtPoint()
setting HitTestResult::innerNode(), but returning false, which violates
hit testing rules. Use a temporary HitTestResult so that we only fill in
result when we know we've hit.

  • rendering/RenderImage.cpp: (WebCore::RenderImage::nodeAtPoint):
12:45 Changeset [41901] by kevino@webkit.org
  • 2 edits in trunk/WebCore

wxGTK build fix. Add missing header.

11:43 Changeset [41900] by simon.fraser@apple.com
  • 3 edits
    2 adds in trunk

2009-03-22 Simon Fraser <simon.fraser@apple.com>

Reviewed by Dan Bernstein

https://bugs.webkit.org/show_bug.cgi?id=24743

Fix hit testing regression from r41840. We need to pass the temporary
HitTestResult when testing sublayers, then only copy to 'result' when
the layer is known to have been hit.

Test: fast/layers/zindex-hit-test.html

  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::hitTestLayer):
10:35 Changeset [41899] by simon.fraser@apple.com
  • 11 edits in trunk/WebCore

2009-03-20 Simon Fraser <simon.fraser@apple.com>

Reviewed by Darin Adler

https://bugs.webkit.org/show_bug.cgi?id=24733

Fix hit testing on video controls after full page zoom by fixing wider issue
with event->pageX(), pageY() with zooming. pageX and pageY are "fixed" to be
invariant under zooming (for JavaScript), so we keep an actual page point around
in MouseEvent::absoluteLocation() to avoid the need to factor in zooming everywhere.

  • dom/MouseRelatedEvent.cpp: (WebCore::MouseRelatedEvent::initCoordinates): (WebCore::MouseRelatedEvent::computePageLocation):
  • dom/MouseRelatedEvent.h: (WebCore::MouseRelatedEvent::absoluteLocation): (WebCore::MouseRelatedEvent::setAbsoluteLocation): Member var, and getter and setter for absoluteLocation. New method, computePageLocation(), to compute the actual page point, and call it when creating and initting mouse-related events.
  • dom/Node.cpp: (WebCore::Node::dispatchMouseEvent): (WebCore::Node::dispatchWheelEvent): Keep non-adjusted pageX and pageY around, and call setAbsoluteLocation() on the event to replace a potentially rounded point.
  • html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::defaultEventHandler): Clean up slider handling code.
  • html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::listBoxDefaultEventHandler): Add FIXME comment for use of offsetX/offsetY.
  • page/ContextMenuController.cpp: (WebCore::ContextMenuController::handleContextMenuEvent): Use absoluteLocation() when hit testing for context menus.
  • rendering/RenderFrameSet.cpp: (WebCore::RenderFrameSet::userResize): Use absoluteLocation() when resizing frames.
  • rendering/RenderMedia.cpp: (WebCore::RenderMedia::forwardEvent): Use absoluteLocation() when hit testing media controls.
  • rendering/RenderSlider.cpp: (WebCore::HTMLSliderThumbElement::defaultEventHandler): (WebCore::RenderSlider::mouseEventIsInThumb): Use absoluteLocation() when handling slider events.

(WebCore::RenderSlider::forwardEvent):
Factor some code out of HTMLInputElement::defaultEventHandler().

  • rendering/RenderTextControlSingleLine.cpp: (WebCore::RenderTextControlSingleLine::forwardEvent): Use absoluteLocation() when hit testing search field buttons, which fixees bugs in the search field with zooming.
00:34 Changeset [41898] by levin@chromium.org
  • 1 edit
    5 adds in trunk/WebCore

2009-03-21 David Levin <levin@chromium.org>

Reviewed by Dimitri Glazkov.

https://bugs.webkit.org/show_bug.cgi?id=24727
Add V8XMLHttpRequest*.

  • bindings/v8/V8XMLHttpRequestUtilities.cpp: Added.
  • bindings/v8/V8XMLHttpRequestUtilities.h: Added.
  • bindings/v8/custom/V8XMLHttpRequestConstructor.cpp: Added.
  • bindings/v8/custom/V8XMLHttpRequestCustom.cpp: Added.
  • bindings/v8/custom/V8XMLHttpRequestUploadCustom.cpp: Added.
00:34 Changeset [41897] by levin@chromium.org
  • 1 edit
    2 adds in trunk/WebCore

2009-03-21 David Levin <levin@chromium.org>

Reviewed by Dimitri Glazkov.

https://bugs.webkit.org/show_bug.cgi?id=24725
Add V8NodeFilter.

  • bindings/v8/V8NodeFilter.cpp: Added.
  • bindings/v8/V8NodeFilter.h: Added.

03/21/09:

20:01 Changeset [41896] by cwzwarich@webkit.org
  • 2 edits in trunk/JavaScriptCore

2009-03-21 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Oliver Hunt.

Bug 20049: testapi failure: MyObject - 0 should be NaN but instead is 1.
<https://bugs.webkit.org/show_bug.cgi?id=20049>
<rdar://problem/6079127>

In this case, the test is wrong. According to the ECMA spec, subtraction
uses ToNumber, not ToPrimitive. Change the test to match the spec.

  • API/tests/testapi.js:
19:52 Changeset [41895] by oliver@apple.com
  • 3 edits in trunk/JavaScriptCore

Ensure that JSObjectMakeFunction doesn't produce incorrect line numbers.

Reviewed by Cameron Zwarich.

Also make test api correctly propagate failures.

18:40 Changeset [41894] by oliver@apple.com
  • 2 edits in trunk/WebKitTools

Make build-jsc build testapi and minidom in addition to jsc itself.

Reviewed by Mark Rowe.

18:40 Changeset [41893] by oliver@apple.com
  • 3 edits in trunk/JavaScriptCore

Improve testapi by making it report failures in a way we can pick up
from our test scripts.

Reviewed by Mark Rowe.

11:34 Changeset [41892] by mitz@apple.com
  • 2 edits in trunk/WebCore

Rubber-stamped by Kevin Decker

  • remove some redundant #include statements
  • bindings/js/JSDOMWindowBase.cpp:
11:15 Changeset [41891] by xan@webkit.org
  • 2 edits in trunk/JavaScriptCore

Revert "2009-03-20 Mike Hommey <glandium@debian.org>"

This reverts commit 2ee472cbd180a196c08f3386b2b976d540a1d9e2.

Breaks JIT on x86 (at least linux) massively.

11:15 Changeset [41890] by xan@webkit.org
  • 4 edits in trunk

Revert "2009-03-20 Mike Hommey <glandium@debian.org>"

This reverts commit cb79d9c35d714a9e463a188a5cb295033715308e.

Breaks JIT on x86 (at least linux) massively.

Note: See TracTimeline for information about the timeline view.