Timeline



Apr 13, 2008:

11:53 PM Changeset in webkit [31859] by rwlbuis@webkit.org
  • 3 edits
    2 adds in trunk

Reviewed by Eric.

http://bugs.webkit.org/show_bug.cgi?id=18230
tspan in link not working

Implement SVG Errata: "The 'a' element may contain any
element that its parent may contain, except itself."

11:23 PM Changeset in webkit [31858] by hyatt@apple.com
  • 3 edits in trunk/WebCore

2008-04-13 David Hyatt <hyatt@apple.com>

Fix for bug 18466, WebKit exhibits slow performance on Opera DHTML benchmark. Improve layout's rect
invalidation code to only invalidate a single unioned rect once enough individual little rects have
been detected.

Reviewed by olliej

  • page/FrameView.cpp: (WebCore::FrameViewPrivate::reset): (WebCore::FrameView::layout): (WebCore::FrameView::repaintRectangle): (WebCore::FrameView::beginDeferredRepaints): (WebCore::FrameView::endDeferredRepaints):
  • page/FrameView.h:
10:51 PM Changeset in webkit [31857] by eric@webkit.org
  • 2 edits in trunk/WebCore

Reviewed by Oliver.

Fix spelling error in function name, no test case.

  • svg/SVGTextContentElement.cpp: (WebCore::SVGInlineTextBoxQueryWalker::chunkPortionCallback):
10:22 PM Changeset in webkit [31856] by eric@webkit.org
  • 2 edits in trunk/WebCore

Reviewed by Oliver.

Build fix for +SVG_ANIMATION -SVG_FOREIGN_OBJECT build, no tests.

  • svg/SVGAnimateMotionElement.cpp: (WebCore::SVGAnimateMotionElement::hasValidTarget):
7:46 PM Changeset in webkit [31855] by alp@webkit.org
  • 2 edits in trunk/WebCore

2008-04-13 Jan Michael Alonzo <jmalonzo@unpluggable.com>

Reviewed by Oliver Hunt.

http://bugs.webkit.org/show_bug.cgi?id=18239
[Gtk] Build breaks if SVG is enabled but SVG Fonts disabled

  • svg/SVGAltGlyphElement.idl: Add SVG_FONTS in Conditional
6:49 PM Changeset in webkit [31854] by jchaffraix@webkit.org
  • 2 edits in trunk/WebCore

2008-04-13 Julien Chaffraix <jchaffraix@webkit.org>

Reviewed by David.

More SVG filters build fix.

  • svg/graphics/filters/SVGFEImage.cpp: (WebCore::SVGFEImage::~SVGFEImage): (WebCore::SVGFEImage::setCachedImage):
10:47 AM Changeset in webkit [31853] by hyatt@apple.com
  • 2 edits in trunk/WebCore

2008-04-13 David Hyatt <hyatt@apple.com>

Fix build bustage on the filters SVG code path (not built by default).

  • svg/SVGFEImageElement.cpp: (WebCore::SVGFEImageElement::~SVGFEImageElement): (WebCore::SVGFEImageElement::parseMappedAttribute):
10:38 AM Changeset in webkit [31852] by alp@webkit.org
  • 2 edits in trunk/WebCore

2008-04-13 Dan Winship <danw@gnome.org>

Reviewed by Alp Toker.

http://bugs.webkit.org/show_bug.cgi?id=18391
return body data incrementally from libsoup backend

Fix libsoup backend to pass data to the loader incrementally
rather than all at once at the end.

  • platform/network/soup/ResourceHandleSoup.cpp (ResourceHandle::start): connect to "got-headers" and "got-chunk" signals on the message (gotHeadersCallback): call client->didReceiveResponse() from here (gotChunkCallback): call client->didReceiveData() from here (finishedCallback): renamed from dataCallback. mostly just calls client->didFinishLoading() now.
9:57 AM Changeset in webkit [31851] by mitz@apple.com
  • 2 edits in trunk/WebCore

Reviewed by Jessica Kahn.

  • remove duplicate condition in canHaveChildrenForEditing()
  • editing/htmlediting.cpp: (WebCore::canHaveChildrenForEditing):
8:56 AM Changeset in webkit [31850] by mitz@apple.com
  • 3 edits in trunk/WebCore

Reviewed by Darin Adler.

Test: fast/css/font-weight-1.html

  • platform/graphics/mac/FontCacheMac.mm: (WebCore::toAppKitFontWeight): Adjusted the mapping to cover the AppKit weight range from 2 to 12, because AppKit weight 1 never occurs. The new mapping matches font-weight: n00 to ISO weight Wn.
  • platform/mac/WebFontCache.mm: (betterChoice): Changed the midpoint used when deciding between two candidates that deviate from the desired weight by the same amount.
1:16 AM Changeset in webkit [31849] by hyatt@apple.com
  • 10 edits in trunk/WebCore

2008-04-12 David Hyatt <hyatt@apple.com>

Memory management cleanup for the new StyleCachedImage and StyleGeneratedImage classes. Make the back end
values hold refptrs to cached front end values. This will avoid malloc churn as RenderStyles get
re-resolved.

Reviewed by olliej

  • css/CSSCursorImageValue.cpp: (WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed): (WebCore::CSSCursorImageValue::cachedImage):
  • css/CSSCursorImageValue.h:
  • css/CSSImageGeneratorValue.cpp: (WebCore::CSSImageGeneratorValue::CSSImageGeneratorValue): (WebCore::CSSImageGeneratorValue::generatedImage):
  • css/CSSImageGeneratorValue.h:
  • css/CSSImageValue.cpp: (WebCore::CSSImageValue::CSSImageValue): (WebCore::CSSImageValue::~CSSImageValue): (WebCore::CSSImageValue::cachedImage):
  • css/CSSImageValue.h:
  • css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty): (WebCore::CSSStyleSelector::createStyleImage):
  • css/CSSStyleSelector.h:
  • rendering/RenderStyle.h: (WebCore::StyleCachedImage::cachedImage): (WebCore::StyleGeneratedImage::StyleGeneratedImage): (WebCore::StyleGeneratedImage::data):

Apr 12, 2008:

8:38 PM Changeset in webkit [31848] by jchaffraix@webkit.org
  • 4 edits in trunk/WebCore

2008-04-12 Julien Chaffraix <jchaffraix@webkit.org>

Not reviewed, Qt build fix.

  • dom/XMLTokenizer.cpp: (WebCore::XMLTokenizer::parseEndElement):
  • platform/graphics/qt/GraphicsContextQt.cpp: (WebCore::GraphicsContext::clip):
  • platform/qt/ClipboardQt.cpp: (WebCore::ClipboardQt::setDragImage):
5:26 PM Changeset in webkit [31847] by hyatt@apple.com
  • 3 adds in trunk/LayoutTests/platform/mac/fast/gradients

Add list item gradient test.

5:25 PM Changeset in webkit [31846] by hyatt@apple.com
  • 1 add in trunk/LayoutTests/fast/gradients/list-item-gradient.html

Add list item gradient test.

5:25 PM Changeset in webkit [31845] by hyatt@apple.com
  • 8 edits in trunk/WebCore

2008-04-12 David Hyatt <hyatt@apple.com>

Add support for list-style-image gradients. Also improve the image comparisons between two RenderStyles
to not mistakenly believe that images have changed.

Reviewed by olliej

Added fast/gradients/list-item-gradient.html

  • css/CSSComputedStyleDeclaration.cpp: (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
  • css/CSSParser.cpp: (WebCore::CSSParser::parseValue):
  • css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty): (WebCore::CSSStyleSelector::createStyleImage):
  • rendering/RenderListMarker.cpp: (WebCore::RenderListMarker::RenderListMarker): (WebCore::RenderListMarker::paint): (WebCore::RenderListMarker::imageChanged): (WebCore::RenderListMarker::calcPrefWidths):
  • rendering/RenderListMarker.h:
  • rendering/RenderStyle.cpp: (WebCore::imagesEquivalent): (WebCore::BorderImage::operator==): (WebCore::StyleCachedImage::errorOccurred): (WebCore::BackgroundLayer::operator==): (WebCore::StyleInheritedData::StyleInheritedData): (WebCore::cursorDataEquivalent): (WebCore::StyleInheritedData::operator==): (WebCore::RenderStyle::diff):
  • rendering/RenderStyle.h: (WebCore::StyleImage::errorOccurred): (WebCore::RenderStyle::listStyleImage): (WebCore::RenderStyle::setListStyleImage): (WebCore::RenderStyle::initialListStyleImage):
4:01 PM Changeset in webkit [31844] by pewtermoose@webkit.org
  • 2 edits in trunk/WebKit/win

2008-04-12 Matt Lilek <webkit@mattlilek.com>

Not reviewed, build fix.

  • WebView.cpp: (WebView::paintDocumentRectToContext):
3:46 PM Changeset in webkit [31843] by mitz@apple.com
  • 2 edits in trunk/WebCore
  • Windows build fix
  • platform/win/ClipboardWin.cpp: (WebCore::ClipboardWin::setDragImage):
3:37 PM Changeset in webkit [31842] by kevino@webkit.org
  • 2 edits in trunk/WebCore

wx build fix. Update clip to take a FloatRect.

1:33 AM Changeset in webkit [31841] by hyatt@apple.com
  • 1 edit in trunk/WebCore/rendering/RenderBox.cpp

Add a missing null check to stop crashing when a border image is examined but null.

1:12 AM Changeset in webkit [31840] by hyatt@apple.com
  • 6 adds in trunk/LayoutTests/platform/mac/fast/gradients

Land results for border gradient tests.

1:11 AM Changeset in webkit [31839] by hyatt@apple.com
  • 1 add in trunk/LayoutTests/fast/gradients/border-image-gradient-sides-and-corners.html

Add complex border image gradient test.

1:11 AM Changeset in webkit [31838] by hyatt@apple.com
  • 1 add in trunk/LayoutTests/fast/gradients/border-image-gradient.html

Add simple border gradient test.

1:11 AM Changeset in webkit [31837] by hyatt@apple.com
  • 9 edits in trunk/WebCore

2008-04-12 David Hyatt <hyatt@apple.com>

Add gradient support to border-image (even though it's mostly just weird).

Reviewed by Dan

Added fast/gradients/border-image-gradient.html

fast/gradients/border-image-gradient-sides-and-corners.html

  • css/CSSBorderImageValue.h: (WebCore::CSSBorderImageValue::imageValue):
  • css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty):
  • platform/graphics/GeneratedImage.cpp: (WebCore::GeneratedImage::draw):
  • rendering/InlineFlowBox.cpp: (WebCore::InlineFlowBox::paintBoxDecorations):
  • rendering/RenderBox.cpp: (WebCore::RenderBox::imageChanged):
  • rendering/RenderObject.cpp: (WebCore::RenderObject::mustRepaintBackgroundOrBorder): (WebCore::RenderObject::paintBorderImage): (WebCore::RenderObject::paintBorder): (WebCore::RenderObject::updateBackgroundImages): (WebCore::RenderObject::arenaDelete):
  • rendering/RenderStyle.cpp: (WebCore::StyleCachedImage::isLoaded):
  • rendering/RenderStyle.h: (WebCore::StyleImage::isLoaded): (WebCore::BorderImage::image):

Apr 11, 2008:

11:35 PM Changeset in webkit [31836] by mitz@apple.com
  • 4 edits in trunk

WebCore:

Reviewed by Dave Hyatt.

  • fix a regression from r31324 which caused most Arabic text to render as missing glyphs

Test: svg/W3C-SVG-1.1/fonts-glyph-02-t.svg

  • svg/SVGFont.cpp: (WebCore::SVGTextRunWalker::walk): Changed to always process characters in logical order and therefore dispatch the callbacks with a logically- ordered glyph stream. Changed the call to isCompatibleGlyph() to check for compatibility only with the range of characters the candidate glyph is derived from rather than with the entire lookup range. Changed to mark the <missing-glyph> glyph identifier as valid, to facilitate the use of invalid glyph identifiers to mark font fallback. (WebCore::drawTextUsingSVGFontCallback): Changed to only append the glyph identifier to a vector. (WebCore::drawTextMissingGlyphCallback): Changed to only append the character to a vector and append an invalid glyph identifier to the glyph vector. (WebCore::Font::drawTextUsingSVGFont): Moved the drawing from the callbacks into this function, iterating over the glyph and fallback characters vector in visual order.

LayoutTests:

Reviewed by Dave Hyatt.

  • revert incorrect expected results from r31324
  • platform/mac/svg/W3C-SVG-1.1/fonts-glyph-02-t-expected.txt:
11:23 PM Changeset in webkit [31835] by eric@webkit.org
  • 3 edits in trunk/WebCore

Reviewed by eseidel.

Attempt to fix Cairo build.

  • platform/graphics/cairo/GraphicsContextCairo.cpp:
  • platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
9:09 PM Changeset in webkit [31834] by hyatt@apple.com
  • 36 edits in trunk

WebCore:

2008-04-11 David Hyatt <hyatt@apple.com>

Rename CachedResource's ref/deref methods to addClient/removeClient. This matches the new
StyleImage class and is a more accurate description of what those methods really do.

Reviewed by olliej

  • WebCore.base.exp:
  • css/CSSCursorImageValue.cpp: (WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed):
  • css/CSSFontFaceSource.cpp: (WebCore::CSSFontFaceSource::CSSFontFaceSource): (WebCore::CSSFontFaceSource::~CSSFontFaceSource):
  • css/CSSImageValue.cpp: (WebCore::CSSImageValue::~CSSImageValue): (WebCore::CSSImageValue::image):
  • css/CSSImportRule.cpp: (WebCore::CSSImportRule::~CSSImportRule): (WebCore::CSSImportRule::insertedIntoParent):
  • dom/ProcessingInstruction.cpp: (WebCore::ProcessingInstruction::~ProcessingInstruction): (WebCore::ProcessingInstruction::checkStyleSheet): (WebCore::ProcessingInstruction::parseStyleSheet):
  • dom/XMLTokenizer.cpp: (WebCore::XMLTokenizer::~XMLTokenizer): (WebCore::XMLTokenizer::endElementNs): (WebCore::XMLTokenizer::notifyFinished):
  • html/CanvasPattern.cpp: (WebCore::CanvasPattern::CanvasPattern): (WebCore::CanvasPattern::~CanvasPattern):
  • html/HTMLImageLoader.cpp: (WebCore::HTMLImageLoader::~HTMLImageLoader): (WebCore::HTMLImageLoader::setImage): (WebCore::HTMLImageLoader::updateFromElement):
  • html/HTMLLinkElement.cpp: (WebCore::HTMLLinkElement::~HTMLLinkElement): (WebCore::HTMLLinkElement::process):
  • html/HTMLScriptElement.cpp: (WebCore::HTMLScriptElement::~HTMLScriptElement): (WebCore::HTMLScriptElement::parseMappedAttribute): (WebCore::HTMLScriptElement::insertedIntoDocument): (WebCore::HTMLScriptElement::removedFromDocument): (WebCore::HTMLScriptElement::notifyFinished):
  • html/HTMLTokenizer.cpp: (WebCore::HTMLTokenizer::reset): (WebCore::HTMLTokenizer::scriptHandler): (WebCore::HTMLTokenizer::notifyFinished):
  • loader/CachedCSSStyleSheet.cpp: (WebCore::CachedCSSStyleSheet::addClient):
  • loader/CachedCSSStyleSheet.h:
  • loader/CachedFont.cpp: (WebCore::CachedFont::addClient):
  • loader/CachedFont.h:
  • loader/CachedImage.cpp: (WebCore::CachedImage::addClient):
  • loader/CachedImage.h:
  • loader/CachedResource.cpp: (WebCore::CachedResource::addClient): (WebCore::CachedResource::removeClient):
  • loader/CachedResource.h:
  • loader/CachedScript.cpp: (WebCore::CachedScript::addClient):
  • loader/CachedScript.h:
  • loader/CachedXBLDocument.h:
  • loader/CachedXSLStyleSheet.cpp: (WebCore::CachedXSLStyleSheet::addClient):
  • loader/CachedXSLStyleSheet.h:
  • loader/mac/UserStyleSheetLoader.cpp: (UserStyleSheetLoader::UserStyleSheetLoader): (UserStyleSheetLoader::~UserStyleSheetLoader):
  • platform/mac/ClipboardMac.mm: (WebCore::ClipboardMac::setDragImage):
  • rendering/RenderImage.cpp: (WebCore::RenderImage::~RenderImage): (WebCore::RenderImage::setCachedImage):
  • rendering/RenderListMarker.cpp: (WebCore::RenderListMarker::~RenderListMarker): (WebCore::RenderListMarker::setStyle):
  • rendering/RenderObject.cpp: (WebCore::RenderObject::updateBackgroundImages): (WebCore::RenderObject::arenaDelete):
  • rendering/RenderStyle.cpp: (WebCore::StyleCachedImage::addClient): (WebCore::StyleCachedImage::removeClient):
  • svg/SVGImageLoader.cpp: (WebCore::SVGImageLoader::updateFromElement):
  • xml/XSLImportRule.cpp: (WebCore::XSLImportRule::~XSLImportRule): (WebCore::XSLImportRule::loadSheet):

WebKit/mac:

2008-04-11 David Hyatt <hyatt@apple.com>

Rename CachedResource ref/deref methods to addClient/removeClient.

Reviewed by olliej

  • WebView/WebHTMLView.mm: (-[WebHTMLViewPrivate dealloc]): (-[WebHTMLViewPrivate finalize]): (-[WebHTMLViewPrivate clear]): (-[WebHTMLView setPromisedDragTIFFDataSource:WebCore::]):
8:28 PM Changeset in webkit [31833] by hyatt@apple.com
  • 1 edit in trunk/WebCore/WebCore.xcodeproj/project.pbxproj

Fix remaining conflict I missed.

8:25 PM Changeset in webkit [31832] by hyatt@apple.com
  • 4 adds in trunk/LayoutTests/platform/mac/fast/gradients
8:25 PM Changeset in webkit [31831] by hyatt@apple.com
  • 2 adds in trunk/LayoutTests/fast/gradients
8:24 PM Changeset in webkit [31830] by hyatt@apple.com
  • 39 edits
    7 adds in trunk/WebCore

2008-04-11 David Hyatt <hyatt@apple.com>

This patch adds support for CSS gradients as background images. RenderStyles now hold a StyleImage
RefPtr, which is a wrapper for two types of images: CachedImages (loaded from URLs) and generated images
(patterns created on the fly such as gradients).

All of the features of <canvas> are supported: gradients can be linear or radial, have multiple stops, and
can specify their points as percentages (for reusable gradients across different box sizes).

Reviewed by olliej

Added fast/gradients/simple-gradients.html

  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSBorderImageValue.cpp: (WebCore::CSSBorderImageValue::CSSBorderImageValue):
  • css/CSSBorderImageValue.h: (WebCore::CSSBorderImageValue::imageValue): (WebCore::CSSBorderImageValue::generatorValue):
  • css/CSSComputedStyleDeclaration.cpp: (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
  • css/CSSGradientValue.cpp: Added. (WebCore::CSSGradientValue::cssText): (WebCore::CSSGradientValue::createGradient): (WebCore::CSSGradientValue::image): (WebCore::compareStops): (WebCore::CSSGradientValue::sortStopsIfNeeded): (WebCore::CSSGradientValue::resolvePoint): (WebCore::CSSGradientValue::resolveRadius):
  • css/CSSGradientValue.h: Added. (WebCore::): (WebCore::CSSGradientColorStop::CSSGradientColorStop): (WebCore::CSSGradientValue::CSSGradientValue): (WebCore::CSSGradientValue::type): (WebCore::CSSGradientValue::setType): (WebCore::CSSGradientValue::setFirstX): (WebCore::CSSGradientValue::setFirstY): (WebCore::CSSGradientValue::setSecondX): (WebCore::CSSGradientValue::setSecondY): (WebCore::CSSGradientValue::setFirstRadius): (WebCore::CSSGradientValue::setSecondRadius): (WebCore::CSSGradientValue::addStop):
  • css/CSSImageGeneratorValue.cpp: Added. (WebCore::CSSImageGeneratorValue::~CSSImageGeneratorValue): (WebCore::CSSImageGeneratorValue::addClient): (WebCore::CSSImageGeneratorValue::removeClient): (WebCore::CSSImageGeneratorValue::getImage): (WebCore::CSSImageGeneratorValue::putImage):
  • css/CSSImageGeneratorValue.h: Added. (WebCore::CSSImageGeneratorValue::isImageGeneratorValue):
  • css/CSSImageValue.h: (WebCore::CSSImageValue::isImageValue):
  • css/CSSParser.cpp: (WebCore::CSSParser::parseBackgroundImage): (WebCore::BorderImageParseContext::commitImage): (WebCore::CSSParser::parseBorderImage): (WebCore::parseGradientPoint): (WebCore::parseGradientColorStop): (WebCore::CSSParser::parseGradient):
  • css/CSSParser.h:
  • css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty): (WebCore::CSSStyleSelector::createStyleImage): (WebCore::CSSStyleSelector::mapBackgroundImage):
  • css/CSSStyleSelector.h:
  • css/CSSValue.h: (WebCore::CSSValue::isImageValue): (WebCore::CSSValue::isImageGeneratorValue):
  • html/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::isPointInPath):
  • platform/graphics/BitmapImage.cpp: (WebCore::BitmapImage::BitmapImage): (WebCore::BitmapImage::dataChanged): (WebCore::BitmapImage::frameCount):
  • platform/graphics/BitmapImage.h:
  • platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::clipToImageBuffer):
  • platform/graphics/GraphicsContext.h:
  • platform/graphics/ImageBuffer.h: (WebCore::ImageBuffer::cgImage): (WebCore::ImageBuffer::image):
  • platform/graphics/cg/GraphicsContextCG.cpp: (WebCore::GraphicsContext::clipToImageBuffer): (WebCore::GraphicsContext::paintBuffer): (WebCore::GraphicsContext::drawImage):
  • platform/graphics/cg/ImageBufferCG.cpp: (WebCore::ImageBuffer::create): (WebCore::ImageBuffer::ImageBuffer): (WebCore::ImageBuffer::~ImageBuffer): (WebCore::ImageBuffer::image): (WebCore::ImageBuffer::getImageData): (WebCore::ImageBuffer::putImageData): (WebCore::ImageBuffer::toDataURL):
  • platform/graphics/cg/ImageCG.cpp: (WebCore::BitmapImage::BitmapImage): (WebCore::BitmapImage::draw): (WebCore::Image::drawPattern):
  • platform/graphics/qt/ImageQt.cpp: (WebCore::BitmapImage::BitmapImage):
  • rendering/InlineFlowBox.cpp: (WebCore::InlineFlowBox::paintBackground):
  • rendering/RenderBox.cpp: (WebCore::RenderBox::calculateBackgroundSize): (WebCore::RenderBox::imageChanged): (WebCore::RenderBox::paintBackgroundExtended):
  • rendering/RenderObject.cpp: (WebCore::RenderObject::mustRepaintBackgroundOrBorder): (WebCore::RenderObject::updateBackgroundImages): (WebCore::RenderObject::arenaDelete):
  • rendering/RenderStyle.cpp: (WebCore::StyleCachedImage::cssValue): (WebCore::StyleCachedImage::canRender): (WebCore::StyleCachedImage::imageSize): (WebCore::StyleCachedImage::setImageContainerSize): (WebCore::StyleCachedImage::addClient): (WebCore::StyleCachedImage::removeClient): (WebCore::StyleCachedImage::image): (WebCore::StyleGeneratedImage::cssValue): (WebCore::StyleGeneratedImage::imageSize): (WebCore::StyleGeneratedImage::setImageContainerSize): (WebCore::StyleGeneratedImage::addClient): (WebCore::StyleGeneratedImage::removeClient): (WebCore::StyleGeneratedImage::image):
  • rendering/RenderStyle.h: (WebCore::StyleImage::StyleImage): (WebCore::StyleImage::~StyleImage): (WebCore::StyleImage::operator==): (WebCore::StyleImage::canRender): (WebCore::StyleImage::isCachedImage): (WebCore::StyleImage::isGeneratedImage): (WebCore::StyleCachedImage::StyleCachedImage): (WebCore::StyleCachedImage::data): (WebCore::StyleCachedImage::isCachedImage): (WebCore::StyleGeneratedImage::StyleGeneratedImage): (WebCore::StyleGeneratedImage::data): (WebCore::StyleGeneratedImage::isGeneratedImage): (WebCore::BackgroundLayer::backgroundImage): (WebCore::BackgroundLayer::setBackgroundImage): (WebCore::BackgroundLayer::containsImage): (WebCore::RenderStyle::backgroundImage): (WebCore::RenderStyle::initialBackgroundImage):
  • svg/graphics/cg/SVGPaintServerGradientCg.cpp: (WebCore::SVGPaintServerGradient::teardown):
  • svg/graphics/cg/SVGResourceMaskerCg.mm: (WebCore::SVGResourceMasker::applyMask):
8:14 PM Changeset in webkit [31829] by mitz@apple.com
  • 3 edits in trunk/WebCore

Reviewed by Oliver Hunt.

  • add SVGGlyphMap.h to project files
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
6:08 PM Changeset in webkit [31828] by andersca@apple.com
  • 3 edits in trunk/WebCore

2008-04-11 Anders Carlsson <andersca@apple.com>

Fix release build.


  • WebCore.base.exp:


  • loader/archive/ArchiveResource.h: (WebCore::ArchiveResource::response): This should be const.
6:05 PM Changeset in webkit [31827] by Antti Koivisto
  • 2 edits in trunk/WebCore

2008-04-11 Antti Koivisto <Antti Koivisto>

Try to fix Qt build.

  • svg/animation/SMILTime.cpp:
5:13 PM Changeset in webkit [31826] by andersca@apple.com
  • 3 edits in trunk/WebCore

2008-04-11 Anders Carlsson <andersca@apple.com>

Reviewed by Brady.

Don't create the ArchiveResource response lazily.


  • loader/archive/ArchiveResource.cpp: (WebCore::ArchiveResource::ArchiveResource):
  • loader/archive/ArchiveResource.h: (WebCore::ArchiveResource::response):
5:09 PM Changeset in webkit [31825] by ggaren@apple.com
  • 6 edits in branches/squirrelfish/JavaScriptCore

2008-04-11 Geoffrey Garen <ggaren@apple.com>

Reviewed by Sam Weinig.


Mark constant pools for global and eval code (collectively known as
"program code"). (Constant pools for function code are already marked by
their functions.)


The global object is responsible for marking program code constant
pools. Code blocks add themselves to the mark set at creation time, and
remove themselves from the mark set at destruction time.


sunspider --squirrelfish reports a 1% speedup, perhaps because
generateCode() is now non-virtual.

  • kjs/nodes.cpp: I had to use manual init and delete in this file because putting an OwnPtr into the header would have created a circular header dependency.
4:17 PM Changeset in webkit [31824] by Antti Koivisto
  • 2 edits in trunk/JavaScriptCore

2008-04-11 Antti Koivisto <Antti Koivisto>

Reviewed by Maciej.


Add default hash for pairs of hashable types.

  • wtf/HashFunctions.h: (WTF::PairHash::hash): (WTF::PairHash::equal): (WTF::):
2:47 PM Changeset in webkit [31823] by mrowe@apple.com
  • 2 edits in trunk/WebCore

2008-04-11 Jan Michael Alonzo <jmalonzo@unpluggable.com>

Reviewed by Mark Rowe.

Added missing '\' in the svg include path

  • GNUmakefile.am:
2:45 PM Changeset in webkit [31822] by sfalken@apple.com
  • 2 edits in trunk/WebKit/win

Fix caching typo.


Made this code match the Mac.


Reviewed by Mark Rowe.

  • WebView.cpp: (PreferencesChangedOrRemovedObserver::notifyPreferencesChanged):
2:18 PM Changeset in webkit [31821] by mrowe@apple.com
  • 2 edits in trunk

Fix https://bugs.webkit.org/show_bug.cgi?id=18430
Bug 18430: SIGSEGV on amd64 when built with gcc 4.3

GCC 4.3 generates bad code in some instances when working with our HashTables
as some of the HashTable code violates the strict aliasing requirements. Since
GCC 4.2 this code has generated warnings when -fstrict-aliasing is enabled. Until
the code can be fixed to be safe with strict aliasing enabled, we will disable
strict aliasing.

Rubber-stamped by Anders Carlsson.

2:11 PM UsingGitWithWebKit edited by ddkilzer@apple.com
(diff)
2:06 PM Changeset in webkit [31820] by Adam Roben
  • 2 edits in trunk/WebKit/win
  • ForEachCoClass.h: Added a deprecation notice.
2:04 PM Changeset in webkit [31819] by Adam Roben
  • 2 edits in trunk/WebKit/win

Fix Bug 18376: r31733 and 27 don't work w/Safari 3.1


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

Rubberstamped by Steve.

  • ForEachCoClass.h: Move post-3.1 classes to the end of the FOR_EACH_COCLASS macro so that pre-3.1 classes will be in the place Safari expects them to be. We will soon be deprecating setUseOpenSourceWebKit/progIDForClass because it is clearly very fragile.
1:52 PM Changeset in webkit [31818] by Antti Koivisto
  • 2 edits in trunk/WebCore

2008-04-11 Antti Koivisto <Antti Koivisto>

Another attempted Qt build fix.

  • WebCore.pro:
1:33 PM Changeset in webkit [31817] by Antti Koivisto
  • 19 edits in trunk/WebCore

2008-04-11 Antti Koivisto <Antti Koivisto>

Reviewed by Oliver.

Fix build when SVG is enabled but SVG_ANIMATION is not.

  • ChangeLog:
  • bindings/js/JSSVGElementWrapperFactory.cpp:
  • bindings/objc/DOM.mm: (WebCore::createElementClassMap):
  • svg/SVGAElement.cpp: (WebCore::SVGAElement::defaultEventHandler):
  • svg/SVGAnimateColorElement.cpp:
  • svg/SVGAnimateColorElement.h:
  • svg/SVGAnimateColorElement.idl:
  • svg/SVGAnimateMotionElement.h:
  • svg/SVGAnimationElement.cpp: (WebCore::SVGAnimationElement::animationMode):
  • svg/SVGAnimationElement.h:
  • svg/SVGAnimationElement.idl:
  • svg/SVGSetElement.cpp:
  • svg/SVGSetElement.h:
  • svg/SVGSetElement.idl:
  • svg/animation/SMILTimeContainer.cpp: (WebCore::SMILTimeContainer::begin): (WebCore::SMILTimeContainer::pause): (WebCore::SMILTimeContainer::resume): (WebCore::SMILTimeContainer::elapsed): (WebCore::SMILTimeContainer::isPaused): (WebCore::SMILTimeContainer::timerFired):
  • svg/animation/SMILTimeContainer.h:
  • svg/animation/SVGSMILElement.cpp:
  • svg/animation/SVGSMILElement.h:
  • svg/svgtags.in:
1:29 PM Changeset in webkit [31816] by andersca@apple.com
  • 6 edits in trunk/WebCore

2008-04-11 Anders Carlsson <andersca@apple.com>

Reviewed by Brady.

Move archive loading from FrameLoader to DocumentLoader.


  • loader/DocumentLoader.cpp: (WebCore::DocumentLoader::DocumentLoader): (WebCore::DocumentLoader::clearArchiveResources): (WebCore::DocumentLoader::deliverArchivedResourcesAfterDelay): (WebCore::DocumentLoader::archiveResourceDeliveryTimerFired): (WebCore::DocumentLoader::isArchiveLoadPending): (WebCore::DocumentLoader::cancelPendingArchiveLoad): (WebCore::DocumentLoader::scheduleArchiveLoad): (WebCore::DocumentLoader::setDefersLoading):
  • loader/DocumentLoader.h:
  • loader/FrameLoader.cpp: (WebCore::FrameLoader::FrameLoader): (WebCore::FrameLoader::setDefersLoading): (WebCore::FrameLoader::stopAllLoaders):
  • loader/FrameLoader.h:
  • loader/ResourceLoader.cpp: (WebCore::ResourceLoader::load): (WebCore::ResourceLoader::didCancel):
12:57 PM Changeset in webkit [31815] by timothy@apple.com
  • 2 edits in trunk/WebCore

Fixes the regression where the DOM tree does not update when navigating
to another page with the Inspector open.

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

Reviewed by Adam Roben.

  • page/inspector/ElementsPanel.js:

(WebInspector.ElementsPanel.prototype.reset): If the inspected document does not have a
firstChild yet, add an event listener for DOMContentLoaded. The event listener just sets
a proeprty that a polling functions looks for then triggers the reset.
(WebInspector.ElementsPanel.prototype._focusedNodeChanged): Always call updateStyles with
forceUpdate as true. This makes sure the Styles pane clears when there isn't a focused node.

10:05 AM Changeset in webkit [31814] by mitz@apple.com
  • 2 edits in trunk/WebCore

Reviewed by Timothy Hatcher.

  • page/inspector/inspector.css:
9:40 AM Changeset in webkit [31813] by ap@webkit.org
  • 4 edits in trunk/JavaScriptCore

Reviewed by Geoff.

Make DateMath.cpp thread safe.

No measurable change on SunSpider (should be a very small speedup).

  • kjs/DateMath.cpp: (KJS::mimimumYearForDST): (KJS::equivalentYearForDST): Got rid of double caching of the same precomputed value. (KJS::calculateUTCOffset): (KJS::getUTCOffset): Factored actual UTC offset calculation code out of getUTCOffset(), and notification setup into initDateMath().

(KJS::initDateMath): Added.

  • kjs/DateMath.h:
  • kjs/InitializeThreading.cpp: (KJS::initializeThreading): Added initDateMath().
9:35 AM Changeset in webkit [31812] by ap@webkit.org
  • 2 edits in trunk/JavaScriptCore

Windows build fix.

  • kjs/grammar.y:
9:18 AM Changeset in webkit [31811] by ap@webkit.org
  • 4 edits in trunk/JavaScriptCore

Tiger build fix. Forward declaring a union didn't work for whatever reason, make the
parameters void*.

  • kjs/grammar.y:
  • kjs/lexer.cpp: (kjsyylex): (KJS::Lexer::lex):
  • kjs/lexer.h:
3:41 AM squirrelfish edited by cwzwarich@uwaterloo.ca
(diff)
3:23 AM Changeset in webkit [31810] by oliver@apple.com
  • 7 edits in branches/squirrelfish/JavaScriptCore

Bug 18231: Improve support for function call nodes in SquirrelFish
<https://bugs.webkit.org/show_bug.cgi?id=18231>

Reviewed by Maciej

Use correct value of 'this' for function calls.

1:14 AM Changeset in webkit [31809] by ap@webkit.org
  • 6 edits in trunk/JavaScriptCore

Reviewed by Geoff.

Generate a pure (re-entrant) parser with Bison.

No change on SunSpider.

  • kjs/Parser.cpp: (KJS::Parser::parse):
  • kjs/grammar.y:
  • kjs/lexer.cpp: (kjsyylex): (KJS::Lexer::lex):
  • kjs/lexer.h: Pass state as function arguments, instead of global data. Don't call lexer() as often as before, as this function is about to become slower due to thread-specific storage.
  • kjs/function.cpp: (KJS::isStrWhiteSpace): Don't call isSeparatorSpace() for 8-bit characters, as these are already taken care of. This is a small speedup, compensating for a small slowdown caused by switching Bison mode.
12:41 AM Changeset in webkit [31808] by Antti Koivisto
  • 5 edits in trunk/WebCore

2008-04-11 Antti Koivisto <Antti Koivisto>

Try to fix Qt build by including some headers.

  • ChangeLog:
  • platform/graphics/UnitBezier.h:
  • svg/SVGAnimationElement.cpp:
  • svg/animation/SMILTime.h:
  • svg/animation/SVGSMILElement.cpp:
12:37 AM Changeset in webkit [31807] by ap@webkit.org
  • 5 edits
    3 adds in trunk

Reviewed by Geoff.

https://bugs.webkit.org/show_bug.cgi?id=18402
REGRESSION: visited element handling is incorrect in nested join/toString calls

No change on SunSpider total, possibly a tiny improvement (about 0.1%).

Test: fast/js/array-tostring-and-join.html

  • kjs/JSGlobalObject.h: (KJS::JSGlobalObject::visitedElements): Store visited elements HashSet here, making it common to toString/toLocalizedString/join again.
  • kjs/array_object.cpp: (KJS::arrayProtoFuncToString): (KJS::arrayProtoFuncToLocaleString): (KJS::arrayProtoFuncJoin): Got rid of static variables. Replaced UString with Vector to avoid O(n2) behavior and regain performance.
  • wtf/Vector.h: (WTF::::resize): (WTF::::grow): (WTF::::reserveCapacity): (WTF::::append): (WTF::::insert): Added null checks, so that Vector methods don't crash when out of memory. The caller should check that data pointer is not null before proceeding.
12:08 AM Changeset in webkit [31806] by Antti Koivisto
  • 2 edits in trunk/WebCore

2008-04-11 Antti Koivisto <Antti Koivisto>

Try to fix Windows build by switching to std::sort().

  • svg/animation/SVGSMILElement.cpp: (WebCore::sortTimeList):
12:00 AM Changeset in webkit [31805] by rwlbuis@webkit.org
  • 3 edits
    4 adds in trunk

Reviewed by Eric.

http://bugs.webkit.org/show_bug.cgi?id=18340
Elements with display="none" in a <clipPath> still contribute to clipping path

Skip elements in clip-path container that have display=none specified.

Apr 10, 2008:

11:58 PM Changeset in webkit [31804] by ggaren@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

2008-04-10 Geoffrey Garen <ggaren@apple.com>

This time for sure.

  • kjs/interpreter.cpp: (KJS::Interpreter::evaluate):
11:57 PM Changeset in webkit [31803] by ggaren@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

2008-04-10 Geoffrey Garen <ggaren@apple.com>

Reviewed by Sam Weinig.


Fixed Interpreter::execute to honor the new model for returning non-NULL
values when an exception is thrown.

  • kjs/interpreter.cpp: (KJS::Interpreter::evaluate):
11:38 PM Changeset in webkit [31802] by Antti Koivisto
  • 94 edits in trunk/LayoutTests

2008-04-10 Antti Koivisto <Antti Koivisto>

Update SVG animation test results.

  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-02-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-02-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-03-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-03-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-04-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-04-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-05-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-05-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-09-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-09-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-10-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-10-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-11-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-11-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-12-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-12-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-30-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-30-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-31-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-31-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-33-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-33-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-34-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-34-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-39-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-39-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-40-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-40-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-41-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-41-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-46-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-46-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-60-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-60-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-62-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-62-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-63-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-63-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-64-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-64-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-65-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-65-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-66-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-66-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-67-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-67-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-68-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-68-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-69-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-69-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-70-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-70-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-77-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-77-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-78-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-78-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-81-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-81-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-82-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-82-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-85-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-85-t-expected.png:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-02-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-03-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-04-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-05-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-09-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-10-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-11-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-12-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-30-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-31-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-33-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-34-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-39-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-40-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-41-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-46-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-60-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-62-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-63-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-64-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-65-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-66-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-67-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-68-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-69-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-70-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-77-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-78-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-81-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-82-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-85-t-expected.txt:
11:37 PM Changeset in webkit [31801] by Antti Koivisto
  • 25 edits
    7 adds
    4 deletes in trunk/WebCore

2008-04-10 Antti Koivisto <Antti Koivisto>

Reviewed by Eric.

Redo the SVG animation support.


It does

  • Full SMIL interval timing model including syncbase and event base timing (the hard part).
  • CSS and XML attribute animation.
  • Linear, discrete and spline calcModes.
  • Values animation with keyTimes and keySplines.
  • Link activated animations.
  • Pretty good support for <animate> and <set> animations
  • Basic support for <animateColor>, <animateMotion> and <animateTransform>.

This passes some 35 of the 56 tests in W3C SVG animation test suite, a bunch more
with some subtest failures.

What is still missing

  • Additive animation with multiple animations operating on the same property. This is a major architectural feature in animation code. It shouldn't be too hard to add.
  • Only <animate> implements accumulate.
  • <animateMotion> does not do paths, keypoints, rotate.
  • <animateTransform> does not work correctly in all cases
  • calcMode paced is missing.
  • repeat, beginEvent, endEvent are missing.
  • accesskey() is missing.
  • JS does not see correct values for baseVal/animVal, changing values that are being animted for a script produces wrong results. This problem needs to be solved outside the animation code.
  • Some other stuff I forgot or do not know about.
  • GNUmakefile.am:
  • WebCore.pro:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Document.cpp:
  • history/CachedPage.cpp: (WebCore::CachedPage::CachedPage):


Use cache notification mechanism to start/stop animations.

  • svg/SVGAElement.cpp: (WebCore::SVGAElement::defaultEventHandler):


Start target animation on link activation.


  • svg/SVGAnimateColorElement.cpp: (WebCore::SVGAnimateColorElement::applyAnimatedValueToElement): (WebCore::SVGAnimateColorElement::updateAnimatedValue): (WebCore::SVGAnimateColorElement::calculateFromAndToValues): (WebCore::SVGAnimateColorElement::calculateFromAndByValues):
  • svg/SVGAnimateColorElement.h:
  • svg/SVGAnimateElement.cpp: (WebCore::SVGAnimateElement::SVGAnimateElement): (WebCore::parseNumberValueAndUnit): (WebCore::SVGAnimateElement::applyAnimatedValueToElement): (WebCore::SVGAnimateElement::updateAnimatedValue): (WebCore::isColorAttribute): (WebCore::SVGAnimateElement::calculateFromAndToValues): (WebCore::SVGAnimateElement::calculateFromAndByValues):
  • svg/SVGAnimateElement.h: (WebCore::SVGAnimateElement::):
  • svg/SVGAnimateMotionElement.cpp: (WebCore::SVGAnimateMotionElement::SVGAnimateMotionElement): (WebCore::SVGAnimateMotionElement::parseMappedAttribute): (WebCore::SVGAnimateMotionElement::updateAnimatedValue): (WebCore::parsePoint): (WebCore::SVGAnimateMotionElement::calculateFromAndToValues): (WebCore::SVGAnimateMotionElement::calculateFromAndByValues): (WebCore::SVGAnimateMotionElement::applyAnimatedValueToElement): (WebCore::SVGAnimateMotionElement::startedActiveInterval):
  • svg/SVGAnimateMotionElement.h:
  • svg/SVGAnimateTransformElement.cpp: (WebCore::SVGAnimateTransformElement::SVGAnimateTransformElement): (WebCore::SVGAnimateTransformElement::hasValidTarget): (WebCore::SVGAnimateTransformElement::updateAnimatedValue): (WebCore::transformListFor): (WebCore::SVGAnimateTransformElement::applyAnimatedValueToElement): (WebCore::SVGAnimateTransformElement::calculateFromAndToValues): (WebCore::SVGAnimateTransformElement::calculateFromAndByValues): (WebCore::SVGAnimateTransformElement::startedActiveInterval): (WebCore::SVGAnimateTransformElement::parseTransformValue):
  • svg/SVGAnimateTransformElement.h:


Concrete anmation element classes.


  • svg/SVGAnimationElement.cpp: (WebCore::SVGAnimationElement::SVGAnimationElement): (WebCore::SVGAnimationElement::~SVGAnimationElement): (WebCore::parseKeyTimes): (WebCore::parseKeySplines): (WebCore::SVGAnimationElement::parseMappedAttribute): (WebCore::SVGAnimationElement::attributeChanged): (WebCore::SVGAnimationElement::getStartTime): (WebCore::SVGAnimationElement::getCurrentTime): (WebCore::SVGAnimationElement::getSimpleDuration): (WebCore::SVGAnimationElement::beginElement): (WebCore::SVGAnimationElement::beginElementAt): (WebCore::SVGAnimationElement::endElement): (WebCore::SVGAnimationElement::endElementAt): (WebCore::SVGAnimationElement::animationMode): (WebCore::SVGAnimationElement::calcMode): (WebCore::SVGAnimationElement::attributeType): (WebCore::SVGAnimationElement::toValue): (WebCore::SVGAnimationElement::byValue): (WebCore::SVGAnimationElement::fromValue): (WebCore::SVGAnimationElement::attributeName): (WebCore::SVGAnimationElement::isAdditive): (WebCore::SVGAnimationElement::isAccumulated): (WebCore::SVGAnimationElement::hasValidTarget): (WebCore::SVGAnimationElement::targetAttributeIsCSS): (WebCore::SVGAnimationElement::setTargetAttributeAnimatedValue): (WebCore::SVGAnimationElement::targetAttributeBaseValue): (WebCore::solveEpsilon): (WebCore::SVGAnimationElement::currentValuesForValuesAnimation): (WebCore::SVGAnimationElement::startedActiveInterval): (WebCore::SVGAnimationElement::applyAnimation): (WebCore::SVGAnimationElement::unapplyAnimation): (WebCore::SVGAnimationElement::endedActiveInterval):
  • svg/SVGAnimationElement.h: (WebCore::SVGAnimationElement::):


This is pretty much a complete rewrite of the SVGAnimationElement. Timing related functionality
was refactored to SMILTimingElement class that this class now inherits.


  • svg/SVGDocumentExtensions.cpp: (WebCore::SVGDocumentExtensions::startAnimations):
  • svg/SVGElement.cpp: (WebCore::SVGElement::ownerSVGElement):
  • svg/SVGSVGElement.cpp:


We need to reach the <svg> element from <use> too so go out from the shadow tree.


(WebCore::SVGSVGElement::SVGSVGElement):
(WebCore::SVGSVGElement::~SVGSVGElement):
(WebCore::SVGSVGElement::pauseAnimations):
(WebCore::SVGSVGElement::unpauseAnimations):
(WebCore::SVGSVGElement::animationsPaused):
(WebCore::SVGSVGElement::getCurrentTime):
(WebCore::SVGSVGElement::willSaveToCache):
(WebCore::SVGSVGElement::willRestoreFromCache):

  • svg/SVGSVGElement.h: (WebCore::SVGSVGElement::timeContainer):
  • svg/SVGSetElement.cpp: (WebCore::SVGSetElement::applyAnimatedValueToElement): (WebCore::SVGSetElement::calculateFromAndToValues): (WebCore::SVGSetElement::calculateFromAndByValues): (WebCore::SVGSetElement::updateAnimatedValue):
  • svg/SVGSetElement.h:


Concrete anmation element classes.


  • svg/SVGTimer.cpp: Removed.
  • svg/SVGTimer.h: Removed.
  • svg/SVGUseElement.cpp: (WebCore::SVGUseElement::removedFromDocument):
  • svg/TimeScheduler.cpp: Removed.
  • svg/TimeScheduler.h: Removed.


Replaced these with SMILTimeContainer class.


  • svg/animation: Added.
  • svg/animation/SMILTime.cpp: Added. (WebCore::operator+): (WebCore::operator-): (WebCore::operator*):
  • svg/animation/SMILTime.h: Added. (WebCore::SMILTime::SMILTime): (WebCore::SMILTime::unresolved): (WebCore::SMILTime::indefinite): (WebCore::SMILTime::operator=): (WebCore::SMILTime::value): (WebCore::SMILTime::isFinite): (WebCore::SMILTime::isIndefinite): (WebCore::SMILTime::isUnresolved): (WebCore::operator==): (WebCore::operator!=): (WebCore::operator>): (WebCore::operator<): (WebCore::operator>=): (WebCore::operator<=): (WebCore::max): (WebCore::min):


A floating point number with special values "indefinite" and "unresolved". Defines math for those.


  • svg/animation/SMILTimeContainer.cpp: Added. (WebCore::SMILTimeContainer::SMILTimeContainer): (WebCore::SMILTimeContainer::schedule): (WebCore::SMILTimeContainer::unschedule): (WebCore::SMILTimeContainer::elapsed): (WebCore::SMILTimeContainer::isActive): (WebCore::SMILTimeContainer::isPaused): (WebCore::SMILTimeContainer::begin): (WebCore::SMILTimeContainer::pause): (WebCore::SMILTimeContainer::resume): (WebCore::SMILTimeContainer::startTimer): (WebCore::SMILTimeContainer::timerFired): (WebCore::SMILTimeContainer::updateAnimations):
  • svg/animation/SMILTimeContainer.h: Added.


Manages the clock and time line for active animations in a document.


  • svg/animation/SVGSMILElement.cpp: Added. (WebCore::ConditionEventListener::ConditionEventListener): (WebCore::ConditionEventListener::handleEvent): (WebCore::SVGSMILElement::Condition::Condition): (WebCore::SVGSMILElement::SVGSMILElement): (WebCore::SVGSMILElement::~SVGSMILElement): (WebCore::SVGSMILElement::insertedIntoDocument): (WebCore::SVGSMILElement::removedFromDocument): (WebCore::SVGSMILElement::finishParsingChildren): (WebCore::SVGSMILElement::parseOffsetValue): (WebCore::SVGSMILElement::parseClockValue): (WebCore::smilTimeSortFunction): (WebCore::sortTimeList): (WebCore::SVGSMILElement::parseCondition): (WebCore::SVGSMILElement::isTimingElement): (WebCore::SVGSMILElement::parseBeginOrEnd): (WebCore::SVGSMILElement::parseMappedAttribute): (WebCore::SVGSMILElement::attributeChanged): (WebCore::SVGSMILElement::connectConditions): (WebCore::SVGSMILElement::disconnectConditions): (WebCore::SVGSMILElement::reschedule): (WebCore::SVGSMILElement::targetElement): (WebCore::SVGSMILElement::elapsed): (WebCore::SVGSMILElement::restart): (WebCore::SVGSMILElement::fill): (WebCore::SVGSMILElement::xlinkHref): (WebCore::SVGSMILElement::dur): (WebCore::SVGSMILElement::repeatDur): (WebCore::SVGSMILElement::repeatCount): (WebCore::SVGSMILElement::maxValue): (WebCore::SVGSMILElement::minValue): (WebCore::SVGSMILElement::simpleDuration): (WebCore::SVGSMILElement::addBeginTime): (WebCore::SVGSMILElement::addEndTime): (WebCore::SVGSMILElement::findInstanceTime): (WebCore::SVGSMILElement::repeatingDuration): (WebCore::SVGSMILElement::resolveActiveEnd): (WebCore::SVGSMILElement::resolveInterval): (WebCore::SVGSMILElement::resolveFirstInterval): (WebCore::SVGSMILElement::resolveNextInterval): (WebCore::SVGSMILElement::nextProgressTime): (WebCore::SVGSMILElement::beginListChanged): (WebCore::SVGSMILElement::endListChanged): (WebCore::SVGSMILElement::checkRestart): (WebCore::SVGSMILElement::calculateAnimationPercentAndRepeat): (WebCore::SVGSMILElement::calculateNextProgressTime): (WebCore::SVGSMILElement::determineActiveState): (WebCore::SVGSMILElement::progress): (WebCore::SVGSMILElement::notifyDependentsIntervalChanged): (WebCore::SVGSMILElement::createInstanceTimesFromSyncbase): (WebCore::SVGSMILElement::addTimeDependent): (WebCore::SVGSMILElement::removeTimeDependent): (WebCore::SVGSMILElement::handleConditionEvent): (WebCore::SVGSMILElement::beginByLinkActivation):
  • svg/animation/SVGSMILElement.h: Added. (WebCore::SVGSMILElement::timeContainer): (WebCore::SVGSMILElement::): (WebCore::SVGSMILElement::intervalBegin): (WebCore::SVGSMILElement::intervalEnd): (WebCore::SVGSMILElement::Condition::):


This abstract class implements the SMIL timing model. As an output it produces calls
to these virtual functions:


virtual void startedActiveInterval() = 0;
virtual void applyAnimation(float percent, unsigned repeat) = 0;
virtual void unapplyAnimation() = 0;
virtual void endedActiveInterval() = 0;

11:06 PM Changeset in webkit [31800] by oliver@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

Fix SquirrelFish interpreter to pass internal exceptions back to
native code correctly.

Reviewed by Geoff

10:59 PM Changeset in webkit [31799] by weinig@apple.com
  • 47 edits
    2 copies in branches/squirrelfish

JavaScriptCore:

2008-04-10 Sam Weinig <sam@webkit.org>

Reviewed by Geoffrey Garen.

Replace the use of getCallData in op_construct with the new
getConstructData function that replaces implementsConstruct.

  • API/JSCallbackConstructor.cpp: (KJS::JSCallbackConstructor::getConstructData):
  • API/JSCallbackConstructor.h:
  • API/JSCallbackObject.h:
  • API/JSCallbackObjectFunctions.h: (KJS::::getConstructData): (KJS::::construct):
  • API/JSObjectRef.cpp: (JSObjectIsConstructor):
  • JavaScriptCore.exp:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • kjs/CallData.h:
  • kjs/ConstructData.h: Copied from JavaScriptCore/kjs/CallData.h. (KJS::):
  • kjs/array_object.cpp: (KJS::ArrayObjectImp::getConstructData):
  • kjs/array_object.h:
  • kjs/bool_object.cpp: (KJS::BooleanObjectImp::getConstructData):
  • kjs/bool_object.h:
  • kjs/date_object.cpp: (KJS::DateObjectImp::getConstructData):
  • kjs/date_object.h:
  • kjs/error_object.cpp: (KJS::ErrorObjectImp::getConstructData): (KJS::NativeErrorImp::getConstructData):
  • kjs/error_object.h:
  • kjs/function.cpp: (KJS::FunctionImp::getCallData): (KJS::FunctionImp::getConstructData): (KJS::FunctionImp::construct):
  • kjs/function.h:
  • kjs/function_object.cpp: (KJS::FunctionObjectImp::getConstructData):
  • kjs/function_object.h:
  • kjs/nodes.cpp: (KJS::NewExprNode::inlineEvaluate):
  • kjs/number_object.cpp: (KJS::NumberObjectImp::getConstructData):
  • kjs/number_object.h:
  • kjs/object.cpp:
  • kjs/object.h:
  • kjs/object_object.cpp: (KJS::ObjectObjectImp::getConstructData):
  • kjs/object_object.h:
  • kjs/regexp_object.cpp: (KJS::RegExpObjectImp::getConstructData):
  • kjs/regexp_object.h:
  • kjs/string_object.cpp: (KJS::StringObjectImp::getConstructData):
  • kjs/string_object.h:
  • kjs/value.cpp: (KJS::JSCell::getConstructData):
  • kjs/value.h: (KJS::JSValue::getConstructData):

WebCore:

2008-04-10 Sam Weinig <sam@webkit.org>

Reviewed by Geoffrey Garen.

Adjusted WebCore JS functions to the new "getConstructData" calling convention.

10:35 PM Changeset in webkit [31798] by oliver@apple.com
  • 4 edits
    4 adds in branches/squirrelfish/JavaScriptCore

Bug 18420: SquirrelFish: need to throw Reference and Type errors
when attempting invalid operations on JSValues

Reviewed by Geoff

Add validation and exception checks to SquirrelFish so that the
correct exceptions are thrown for undefined variables, type errors
and toObject failure. Also handle exceptions thrown by native
function calls.

10:26 PM Changeset in webkit [31797] by Antti Koivisto
  • 4 edits
    1 add in trunk/WebCore

2008-04-10 Antti Koivisto <Antti Koivisto>

Reviewed by Eric.

Move CurveData out from AnimationController.cpp and rename
it to UnitBezier. This makes it possible to reuse this nice class from the
SVG animation code.

  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • page/AnimationController.cpp: (WebCore::solveCubicBezierFunction):
  • platform/graphics/UnitBezier.h: Added. (WebCore::UnitBezier::UnitBezier): (WebCore::UnitBezier::sampleCurveX): (WebCore::UnitBezier::sampleCurveY): (WebCore::UnitBezier::sampleCurveDerivativeX): (WebCore::UnitBezier::solveCurveX): (WebCore::UnitBezier::solve):
9:32 PM Changeset in webkit [31796] by ggaren@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

2008-04-10 Geoffrey Garen <ggaren@apple.com>

Reviewed by Oliver Hunt.


Pass a function body node its function's scope chain, rather than the
current execution context's scope chain, when compiling it.


This doesn't matter yet, but it will once we start using the scope
chain during compilation.

sunspider --squirrelfish notes a tiny speedup.

  • VM/Machine.cpp: (KJS::Machine::privateExecute):
6:47 PM Changeset in webkit [31795] by kevino@webkit.org
  • 1 edit
    1 add in trunk/WebKitTools

Reviewed by Darin Adler.

Add a script that propagates any file changes made to the Bakefiles over to GTK and Qt build systems. Still needs to be wired into those ports though.

6:11 PM Changeset in webkit [31794] by ggaren@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

2008-04-10 Geoffrey Garen <ggaren@apple.com>

Reviewed by Oliver Hunt.


Fix two bugs when throwing exceptions from re-entrant JS calls:


(1) Don't shrink the register file to 0, since our caller may still
be using it.


(2) In case of exception, return jsNull() instead of 0 because,
surprisingly, some JavaScriptCore clients rely on a function's return
value being safe to operate on even if the function threw an exception.


Also:


  • Changed FunctionImp::callAsFunction to honor the new semantics of exceptions not returning 0.


  • Renamed "handlerPC" to "handlerVPC" to match other uses of "VPC".


  • Renamed "exceptionData" to "exceptionValue", because "data" seemed to imply something more than just a JSValue.


  • Merged prepareException into throwException, since throwException was its only caller, and it seemed weird that throwException didn't take an exception as an argument.

sunspider --squirrelfish does not seem to complain on my machine, but it
complains a little (.6%) on Oliver's.

6:06 PM Changeset in webkit [31793] by beidson@apple.com
  • 13 edits
    2 moves in trunk/WebCore

2008-04-10 Brady Eidson <beidson@apple.com>

Reviewed by Sam Weinig

The name "OriginStorage" never felt right to a few of us. The HTML5 spec refers to our
concept of "OriginStorage" as a "storage area", which makes more sense here.

This patch is basically:
s/OriginStorage/StorageArea/

  • GNUmakefile.am:
  • WebCore.pro:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • WebCoreSources.bkl:
  • loader/FrameLoader.cpp:
  • page/DOMWindow.cpp: (WebCore::DOMWindow::sessionStorage):
  • page/Page.cpp:
  • storage/OriginStorage.cpp: Removed.
  • storage/OriginStorage.h: Removed.
  • storage/SessionStorage.cpp: (WebCore::SessionStorage::copy): (WebCore::SessionStorage::storageArea):
  • storage/SessionStorage.h:
  • storage/Storage.cpp: (WebCore::Storage::create): (WebCore::Storage::Storage): (WebCore::Storage::length): (WebCore::Storage::key): (WebCore::Storage::getItem): (WebCore::Storage::setItem): (WebCore::Storage::removeItem): (WebCore::Storage::contains):
  • storage/Storage.h:
  • storage/StorageArea.cpp: Copied from storage/OriginStorage.cpp. (WebCore::StorageArea::create): (WebCore::StorageArea::StorageArea): (WebCore::StorageArea::~StorageArea): (WebCore::StorageArea::copy): (WebCore::StorageArea::length): (WebCore::StorageArea::key): (WebCore::StorageArea::getItem): (WebCore::StorageArea::setItem): (WebCore::StorageArea::removeItem): (WebCore::StorageArea::contains): (WebCore::StorageArea::dispatchStorageEvent):
  • storage/StorageArea.h: Copied from storage/OriginStorage.h.
5:53 PM Changeset in webkit [31792] by alp@webkit.org
  • 2 edits in trunk/WebCore

2008-04-10 Xan Lopez <xan@gnome.org>

Reviewed by Alp Toker.

http://bugs.webkit.org/show_bug.cgi?id=18342
Bug #18342 - Add logging to HTTP soup backend


Add soup logging facilities to HTTP soup backend.
Enable defining WEBKIT_SOUP_LOGGING, with values from
0 to 3 for more verbosity.


  • platform/network/soup/ResourceHandleSoup.cpp: (WebCore::ResourceHandle::start):
5:45 PM Changeset in webkit [31791] by alp@webkit.org
  • 2 edits in trunk

2008-03-12 Michael Emmel <mike.emmel@gmail.com>

Reviewed by Alp Toker.

http://bugs.webkit.org/show_bug.cgi?id=18397
Fix leaving spaces before parens in functions

  • WebKitTools/Scripts/wkstyle:
5:30 PM Changeset in webkit [31790] by alp@webkit.org
  • 2 edits in trunk/WebKit/gtk

2008-04-10 Mario Bensi <mbensi@pleyo.com>

Reviewed by Alp Toker.

https://bugs.webkit.org/show_bug.cgi?id=18400
Database example doesn't work on Gtk port

Fix quota in ChromeClient

  • WebCoreSupport/ChromeClientGtk.cpp: (WebKit::ChromeClient::exceededDatabaseQuota):
4:56 PM Changeset in webkit [31789] by timothy@apple.com
  • 5 edits in trunk/WebCore

Fixes floating point precision in the Resources graph labels by using String.sprintf to
format the values. Also makes the image view use Number.bytesToString when showing the file
size. Makes Number.bytesToString and Number.secondsToString take an optional formatter function
so the Inspector can pass WebInspector.UIString, so the format strings can be localized.

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

Reviewed by Adam Roben.

  • English.lproj/InspectorLocalizedStrings.js: Added the new strings.
  • page/inspector/ImageView.js:

(WebInspector.ImageView): Use Number.bytesToString to format this.resource.contentLength.

  • page/inspector/ResourcesPanel.js:

(WebInspector.ResourceTransferTimeCalculator.prototype.formatValue): Pass WebInspector.UIString
to Number.secondsToString.
(WebInspector.ResourceTransferSizeCalculator.prototype.formatValue): Pass WebInspector.UIString
to Number.bytesToString.

  • page/inspector/utilities.js:

(Number.secondsToString): Added a formatterFunction argument. Use the formatter and format strings
to control the number precision.
(Number.bytesToString): Ditto.

4:42 PM Changeset in webkit [31788] by alice.liu@apple.com
  • 3 edits
    2 adds in trunk

WebCore:

2008-04-010 Alice Liu <alice.liu@apple.com>

Reviewed by Dan Bernstein.

Fixed <rdar://5815856> CrashTracer: [USER] 8384 crashes in WebCore::Widget::getView const + 6

Test: fast/events/mouseout-dead-subframe.html

  • page/EventHandler.cpp: dispatching a mouse event can change the document structure, necessitating a check for whether we still want to pass the event to the pre-determined subframe (WebCore::EventHandler::handleMouseMoveEvent):

LayoutTests:

2008-04-10 Alice Liu <alice.liu@apple.com>

Reviewed by Dan Bernstein.

Added test for <rdar://5815856> CrashTracer: [USER] 8384 crashes in WebCore::Widget::getView const + 6

  • fast/events/mouseout-dead-subframe-expected.txt: Added.
  • fast/events/mouseout-dead-subframe.html: Added.
3:51 PM Changeset in webkit [31787] by mrowe@apple.com
  • 3 edits in trunk/JavaScriptCore

Fix https://bugs.webkit.org/show_bug.cgi?id=18367 and the many dupes.
Bug 18367: Crash during celtic kane js speed 2007 test

Reviewed by Maciej Stachowiak.

GCC 4.2 on x86_64 Linux decided to reorder the local variables in markCurrentThreadConservatively's
stack frame. This lead to the range of addresses the collector treated as stack to exclude the
contents of volatile registers that markCurrentThreadConservatively forces onto the stack. This was
leading to objects being prematurely collected if the only reference to them was via a register at
the time a collection occurred.

The fix for this is to move the calculation of the top of the stack into a NEVER_INLINE function
that is called from markCurrentThreadConservatively. This forces the dummy variable we use for
determining the top of stack to be in a different stack frame which prevents the compiler from
reordering it relative to the registers that markCurrentThreadConservatively forces onto the stack.

  • kjs/collector.cpp:

(KJS::Collector::markCurrentThreadConservativelyInternal):
(KJS::Collector::markCurrentThreadConservatively):

  • kjs/collector.h:
3:38 PM squirrelfish edited by ggaren@apple.com
(diff)
3:30 PM Changeset in webkit [31786] by adachan@apple.com
  • 6 edits
    3 adds in trunk/WebKit/win

Added WebCoreStatistics that provides stats on Javascript objects
and IconDatabase.


Changed WebCache::statistics() to additionally return xsl stylesheets data
and data on live sizes and decoded sizes.

Reviewed by Steve.

  • ForEachCoClass.h:
  • Interfaces/IWebCoreStatistics.idl: Added.
  • Interfaces/WebKit.idl:
  • WebCache.cpp: (WebCache::statistics):
  • WebCoreStatistics.cpp: Added. (WebCoreStatistics::WebCoreStatistics): (WebCoreStatistics::~WebCoreStatistics): (WebCoreStatistics::createInstance): (WebCoreStatistics::QueryInterface): (WebCoreStatistics::AddRef): (WebCoreStatistics::Release): (WebCoreStatistics::javaScriptObjectsCount): (WebCoreStatistics::javaScriptGlobalObjectsCount): (WebCoreStatistics::javaScriptProtectedObjectsCount): (WebCoreStatistics::javaScriptProtectedGlobalObjectsCount): (WebCoreStatistics::iconPageURLMappingCount): (WebCoreStatistics::iconRetainedPageURLCount): (WebCoreStatistics::iconRecordCount): (WebCoreStatistics::iconsWithDataCount):
  • WebCoreStatistics.h: Added.
  • WebKit.vcproj/WebKit.vcproj:
  • WebKitClassFactory.cpp:
3:24 PM Changeset in webkit [31785] by Antti Koivisto
  • 2 edits in trunk/WebCore

2008-04-10 Antti Koivisto <Antti Koivisto>

Reviewed by Eric.

Fix scale transform. This will be tested by the animation test suite when
SVG animation support lands.

  • svg/SVGTransformDistance.cpp: (WebCore::SVGTransformDistance::SVGTransformDistance):
3:03 PM squirrelfish edited by ggaren@apple.com
(diff)
1:59 PM Changeset in webkit [31784] by ggaren@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

2008-04-10 Geoffrey Garen <ggaren@apple.com>

Reviewed by Maciej Stachowiak.


Fixed op_construct for CallTypeNative to reacquire "r" before setting
its return value, since registerBase can theoretically change during the
execution of arbitrary code. (Not sure if any native constructors
actually make this possible.)

sunspider --squirrelfish does not seem to complain.

  • VM/Machine.cpp: (KJS::Machine::privateExecute):
1:27 PM Changeset in webkit [31783] by ggaren@apple.com
  • 7 edits in branches/squirrelfish/JavaScriptCore

2008-04-10 Geoffrey Garen <ggaren@apple.com>

Reviewed by Oliver Hunt and Sam Weinig.


Re-entrant execution of function code (global code -> built-in function
-> JS function):


Miraculously, sunspider --squirrelfish does not seem to complain.

A re-entrant function call is the same as a normal function call with
one exception: the re-entrant call leaves everything except for
CallerCodeBlock in the call frame header uninitialized, since the call
doesn't need to return to JS code. (It sets CallerCodeBlock to 0, to
indicate that the call shouldn't return to JS code.)


Also fixed a few issues along the way:


  • Fixed two bugs in the read-write List implementation that caused m_size and m_buffer to go stale.


  • Changed native call code to update "r" *before* setting the return value, since the call may in turn call JS code, which changes the value of "r".


  • Migrated initialization of "r" outside of Machine::privateExecute, because global code and function code initialize "r" differently.


  • Migrated a codegen warning from Machine::privateExecute to the wiki.


  • Removed unnecessary "r" parameter from slideRegisterWindowForCall
  • VM/Machine.cpp: (KJS::slideRegisterWindowForCall): (KJS::scopeChainForCall): (KJS::Machine::execute): (KJS::Machine::privateExecute):
  • VM/Machine.h:
  • kjs/function.cpp: (KJS::FunctionImp::callAsFunction):
  • kjs/list.cpp: (KJS::List::getSlice):
  • kjs/list.h: (KJS::List::clear):
1:25 PM Changeset in webkit [31782] by hyatt@apple.com
  • 4 edits in trunk/WebCore

2008-04-10 David Hyatt <hyatt@apple.com>

Add a gradient fillRect method to GraphicsContext. This is implemented only in the CG port. I stubbed
out a method in GraphicsContext.cpp with notImplemented(). Other platforms will need to add their own
gradient fill methods.

Reviewed by aroben

  • platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::fillRect):
  • platform/graphics/GraphicsContext.h:
  • platform/graphics/cg/GraphicsContextCG.cpp: (WebCore::GraphicsContext::fillRect):
12:35 PM Changeset in webkit [31781] by hyatt@apple.com
  • 3 edits in trunk/WebCore

2008-04-10 David Hyatt <hyatt@apple.com>

Gradient improvements. Support for adding color stops by Color and not just by String. Add the ability to mark
stops as already being sorted.

Reviewed by aroben

  • platform/graphics/Gradient.cpp: (WebCore::Gradient::addColorStop):
  • platform/graphics/Gradient.h: (WebCore::Gradient::setStopsSorted):
12:25 PM Changeset in webkit [31780] by timothy@apple.com
  • 2 edits in trunk/WebCore

Fixes the build where some wtf headers would not be copied due
to a bug in some older versions of Xcode.

Rubber-stamped by Adam Roben.

  • WebCore.xcodeproj/project.pbxproj: Adds a new script phase to handle

the copying of the icu and ForwardingHeaders folder to WebCore's PrivateHeaders.
Removes the old copy files phase and the icu and ForwardingHeaders folder references.

11:46 AM Changeset in webkit [31779] by sfalken@apple.com
  • 2 edits in trunk/WebKit/win

Delete backing store (after a delay) when a WebView's top-level parent becomes inactive.

Reviewed by Brady Eidson.

  • WebView.cpp: (WebView::windowReceivedMessage):
10:42 AM Changeset in webkit [31778] by beidson@apple.com
  • 3 edits in trunk/LayoutTests

2008-04-10 Brady Eidson <beidson@apple.com>

Reviewed by Mitz Pettel

DOM Storage layout test cleanup

  • storage/domstorage/sessionstorage/iframe-events.html: Check for the layoutTestController in a manner that won't confuse Firefox
  • storage/domstorage/sessionstorage/resources/clearSessionStorage.js: Don't mutate while iterating! Clea the sessionStorage properly
10:22 AM squirrelfish edited by ggaren@apple.com
(diff)
10:10 AM squirrelfish edited by ggaren@apple.com
(diff)
9:03 AM Changeset in webkit [31777] by Adam Roben
  • 1 edit in trunk/JavaScriptCore/wtf/Assertions.cpp

Touch a file to force WTF.vcproj to build

8:25 AM Changeset in webkit [31776] by Adam Roben
  • 2 edits in trunk/JavaScriptCore

VC++ Express build fix

  • JavaScriptCore.vcproj/WTF/WTF.vcproj: Link against user32.lib so that anyone who links against WTF.lib will get user32.lib automatically.
5:32 AM Changeset in webkit [31775] by mjs@apple.com
  • 2 edits in branches/squirrelfish/SunSpider

2008-04-10 Maciej Stachowiak <mjs@apple.com>

Reviewed by Oliver.


Add newly runnable tests to --squirrelfish mode.

  • tests/LIST-SQUIRRELFISH:
4:18 AM Changeset in webkit [31774] by mjs@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

2008-04-10 Maciej Stachowiak <mjs@apple.com>

Reviewed by Oliver.


  • fix problem with code generation for return with no argument


3d-cube now runs

  • kjs/nodes.cpp: (KJS::ReturnNode::emitCode):
4:14 AM Changeset in webkit [31773] by mjs@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

2008-04-10 Maciej Stachowiak <mjs@apple.com>

Reviewed by Oliver.


  • Implement support for JS constructors


access-binary-trees and access-nbody now run.


Inexplicably a 1% speedup.

  • VM/Machine.cpp: (KJS::initializeCallFrame): (KJS::Machine::privateExecute):
  • VM/Machine.h: (KJS::Machine::):
4:06 AM QtWebKitTodo edited by bmeyer@trolltech.com
(diff)
3:29 AM Changeset in webkit [31772] by mjs@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

2008-04-10 Maciej Stachowiak <mjs@apple.com>

Reviewed by Oliver.

  • More code cleanup in preparation for JS constructors

Factor the remaining interesting parts of JS function calls into
slideRegisterWindowForCall and scopeChainForCall.


  • VM/Machine.cpp: (KJS::slideRegisterWindowForCall): (KJS::scopeChainForCall): (KJS::Machine::privateExecute):
2:12 AM Changeset in webkit [31771] by mjs@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

2008-04-10 Maciej Stachowiak <mjs@apple.com>

Reviewed by Geoff.


  • Code cleanup in preparation for JS constructors
  • Renamed returnInfo to callFrame.
  • Made an enum which defines what goes where in the call frame.
  • Factored out initializeCallFrame function from op_call


  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitCall): (KJS::CodeGenerator::emitConstruct):
  • VM/Machine.cpp: (KJS::Machine::dumpRegisters): (KJS::initializeCallFrame): (KJS::Machine::unwindCallFrame): (KJS::Machine::execute): (KJS::Machine::privateExecute):
  • VM/Machine.h: (KJS::Machine::):
12:37 AM Changeset in webkit [31770] by ggaren@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

2008-04-10 Geoffrey Garen <ggaren@apple.com>

Reviewed by Oliver Hunt.


Fixed two bugs in register allocation for function calls:


(1) op_call used to allocate codeBlock->numVars too many registers for
each call frame, due to duplicated math. Fixing this revealed...


(2) By unconditionally calling resize(), op_call used to truncate the
register file when calling a function whose registers fit wholly within
the register file already allocated by its caller.


sunspider --squirrelfish reports no regression.


I also threw in a little extra formatting to dumpCallFrame, because it
helped me debug these issues.

  • VM/Machine.cpp: (KJS::Machine::dumpRegisters): (KJS::Machine::execute): (KJS::Machine::privateExecute):
  • VM/RegisterFile.h: (KJS::RegisterFile::shrink): (KJS::RegisterFile::grow):
  • VM/RegisterFileStack.cpp: (KJS::RegisterFileStack::popRegisterFile):

Apr 9, 2008:

11:52 PM Changeset in webkit [31769] by beidson@apple.com
  • 2 edits in trunk/LayoutTests

2008-04-09 Brady Eidson <beidson@apple.com>

Forgot to check in this updated result with my Storage-enumeration change
earlier today

  • fast/dom/Window/window-properties-expected.txt:
11:49 PM Changeset in webkit [31768] by beidson@apple.com
  • 4 edits
    4 adds in trunk

WebCore:

2008-04-09 Brady Eidson <beidson@apple.com>

Reviewed by Mitz Pettel

Add the "onstorage" attribute for the body element to provide easy setup of StorageEvent handling.

Tests: storage/domstorage/sessionstorage/onstorage-attribute-markup.html

storage/domstorage/sessionstorage/onstorage-attribute-setattribute.html

  • html/HTMLAttributeNames.in: Added "onstorage"
  • html/HTMLBodyElement.cpp: (WebCore::HTMLBodyElement::parseMappedAttribute): Handle this attribute on the body element *only* because that's where the HTML5 spec says StorageEvents go. This might change in the future

LayoutTests:

2008-04-09 Brady Eidson <beidson@apple.com>

Reviewed by Mitz Pettel

Add the "onstorage" attribute for the body element to provide easy setup of StorageEvent handling.

  • storage/domstorage/sessionstorage/onstorage-attribute-markup-expected.txt: Added.
  • storage/domstorage/sessionstorage/onstorage-attribute-markup.html: Added.
  • storage/domstorage/sessionstorage/onstorage-attribute-setattribute-expected.txt: Added.
  • storage/domstorage/sessionstorage/onstorage-attribute-setattribute.html: Added.
10:23 PM squirrelfish edited by oliver@apple.com
(diff)
10:22 PM squirrelfish edited by oliver@apple.com
(diff)
5:55 PM Changeset in webkit [31767] by Antti Koivisto
  • 4 edits in trunk/WebCore

2008-04-09 Antti Koivisto <Antti Koivisto>

Reviewed by Mitz.

Remove a less-than-critical bit from Node and replace it with a hash. Those bits are valuable!

Also moved setting of the guard to dispatchSimulatedClick for better consistency.
No one else calls dispatchSimulatedMouseEvent() currently and this is really a click() specific behavior.

  • dom/EventTargetNode.cpp: (WebCore::EventTargetNode::dispatchSimulatedMouseEvent): (WebCore::EventTargetNode::dispatchSimulatedClick):
  • dom/Node.cpp: (WebCore::Node::Node):
  • dom/Node.h:
5:23 PM Changeset in webkit [31766] by weinig@apple.com
  • 7 edits in trunk/WebCore

2008-04-09 Sam Weinig <sam@webkit.org>

Reviewed by Geoffrey Garen.

Fix for https://bugs.webkit.org/show_bug.cgi?id=18389
Crash in JSDOMWindowWrapper::mark loading digg.com

  • Add a null check to JSDOMWindowWrapper::mark for the case when the collector runs during its allocation.
  • Cleans up the creation of the window to be a little more straight forward.
  • bindings/js/JSDOMWindowBase.cpp: (WebCore::JSDOMWindowBasePrivate::JSDOMWindowBasePrivate): (WebCore::JSDOMWindowBase::JSDOMWindowBase): (WebCore::JSDOMWindowBase::clear): (WebCore::JSDOMWindowBase::wrapper):
  • bindings/js/JSDOMWindowBase.h:
  • bindings/js/JSDOMWindowWrapper.cpp: (WebCore::JSDOMWindowWrapper::JSDOMWindowWrapper): (WebCore::JSDOMWindowWrapper::mark):
  • bindings/js/JSDOMWindowWrapper.h:
  • bindings/js/kjs_proxy.cpp: (WebCore::KJSProxy::initScript):
  • bindings/scripts/CodeGeneratorJS.pm:
5:21 PM Changeset in webkit [31765] by Adam Roben
  • 2 edits in trunk/JavaScriptCore

VC++ Express build fix

  • JavaScriptCore.vcproj/testkjs/testkjs.vcproj: Link against user32.lib.
4:29 PM Changeset in webkit [31764] by beidson@apple.com
  • 2 edits in trunk/WebCore

2008-04-09 Brady Eidson <beidson@apple.com>

Rubberstamped by Mitzpettel

Added HTMLAttributeNames.in and HTMLTagNames.in to the xcodeproj for easy editing,
and sorted the html group

  • WebCore.xcodeproj/project.pbxproj:
4:20 PM Changeset in webkit [31763] by pewtermoose@webkit.org
  • 2 edits in trunk/WebCore

2008-04-09 Brent Fulgham <bfulgham@gmail.com>

Reviewed by Mitz.

Correct build regression in Windows (Cairo) build due to changes
in FontDescription.h signature. (see http://bugs.webkit.org/show_bug.cgi?id=18394)

  • rendering/RenderThemeWin.cpp: Change for new font methods. (WebCore::RenderThemeWin::systemFont):
4:18 PM Changeset in webkit [31762] by beidson@apple.com
  • 6 edits in trunk

WebCore:

2008-04-09 Brady Eidson <beidson@apple.com>

Reviewed by Sam Weinig

When enumerating a Storage object, the Storage built-ins should not be included, but the
prototype chain SHOULD be included.

  • bindings/js/JSStorageCustom.cpp: (WebCore::JSStorage::customGetPropertyNames): Return false so the prototype chain is walked
  • storage/Storage.idl: Mark all built-ins as "DontEnum"

LayoutTests:

2008-04-09 Brady Eidson <beidson@apple.com>

Reviewed by Sam Weinig

When enumerating a Storage object, the Storage built-ins should not be included, but the
prototype chain SHOULD be included.

Updated the layout test to test this.

  • storage/domstorage/sessionstorage/enumerate-storage-expected.txt:
  • storage/domstorage/sessionstorage/enumerate-storage.html:
4:05 PM Changeset in webkit [31761] by ggaren@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

2008-04-09 Geoffrey Garen <ggaren@apple.com>

Reviewed by Oliver Hunt.

Next step toward re-entrant execution of function code (global code ->
built-in function -> JS function):


Made op_ret return from Machine::privateExecute if its calling codeBlock
is NULL.


I'm checking this in by itself to demonstrate that a more clever
mechanism is not necessary for performance.


sunspider --squirrelfish reports no regression.

  • ChangeLog:
  • VM/Machine.cpp: (KJS::Machine::execute): (KJS::Machine::privateExecute):
3:36 PM Changeset in webkit [31760] by mitz@apple.com
  • 5 edits in trunk/LayoutTests

Reviewed by Sam Weinig.

  • fix more Windows layout test regressions from the font-weight patch

The patch silently introduced the ability to select some fonts
by their full name on Windows. Firefox and IE allow the same.
This made these tests use different, Windows-only fonts on
Windows. The patch removes references to these fonts from the
tests.

  • tables/mozilla/bugs/bug4093.html:
  • tables/mozilla/bugs/bug43854-1.html:
  • tables/mozilla/bugs/bug8381.html:
  • tables/mozilla/core/bloomberg.html:
2:21 PM Changeset in webkit [31759] by beidson@apple.com
  • 5 edits
    2 adds in trunk

WebCore:

2008-04-09 Brady Eidson <beidson@apple.com>

Reviewed by Adam Roben

Per the HTML5 spec, enumerating a Storage object should walk the keys in the storage area,
and should not return the built-in properties.

Test: storage/domstorage/sessionstorage/enumerate-storage.html

  • bindings/js/JSLocationCustom.cpp: (WebCore::JSLocation::customGetPropertyNames): Removed the name from an unused parameter
  • bindings/js/JSStorageCustom.cpp: (WebCore::JSStorage::customGetPropertyNames): Copy all of the keys into the property names array
  • storage/Storage.idl: Add CustomGetPropertyNames

LayoutTests:

2008-04-09 Brady Eidson <beidson@apple.com>

Reviewed by Adam Roben

Per the HTML5 spec, enumerating a Storage object should walk the keys in the storage area,
and should not return the built-in properties.

This test adds some keys to sessionStorage, enumerates the sessionStorage object, and logs
the sorted result. It should *not* contain the built in properties of the Storage object

  • storage/domstorage/sessionstorage/enumerate-storage-expected.txt: Added.
  • storage/domstorage/sessionstorage/enumerate-storage.html: Added.
1:36 PM Changeset in webkit [31758] by timothy@apple.com
  • 2 edits in trunk/WebCore

Fixes the regression where resource time/size pills do not
update during a load in the Inspector.

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

Reviewed by John Sullivan.

  • page/inspector/ResourcesPanel.js:

(ResourcesPanel.prototype.show): Remove an unneeded call to _updateGraphBars,
since _updateSidebarWidth already calls _updateGraphBars.
(ResourcesPanel.prototype.addResource): Call updateGraphSideWidth.
(ResourcesPanel.prototype._updateGraphBars): Ditto.
(ResourceSidebarTreeElement.prototype.updateGraphSideWidth): Update the
style for graphSideElement with the passed in width.

11:36 AM Changeset in webkit [31757] by Antti Koivisto
  • 6 edits in trunk/WebCore

2008-04-09 Antti Koivisto <Antti Koivisto>

Reviewed by Mitz.

Avoid unnecessary calls to virtual updateStyleAttributeIfNeeded() method.

  • do the the checking in call sites instead of inside the function
  • rename to updateStyleAttribute()
  • use namedAttrMap directly (for getting id attribute) in insertedIntoDocument/removedFromDocument to avoid calling attributes() which may trigger style attribute update.


  • dom/Element.cpp: (WebCore::Element::attributes): (WebCore::Element::getAttribute): (WebCore::Element::hasAttributes): (WebCore::Element::insertedIntoDocument): (WebCore::Element::removedFromDocument):
  • dom/Element.h: (WebCore::Element::updateStyleAttribute):
  • dom/NamedAttrMap.cpp: (WebCore::NamedAttrMap::addAttribute):
  • dom/StyledElement.cpp: (WebCore::StyledElement::updateStyleAttribute):
  • dom/StyledElement.h:
11:09 AM Changeset in webkit [31756] by ggaren@apple.com
  • 5 edits in branches/squirrelfish/JavaScriptCore

2008-04-09 Geoffrey Garen <ggaren@apple.com>

Reviewed by Maciej Stachowiak.

Next step toward re-entrant execution of function code (global code ->
built-in function -> JS function):


Made Machine::execute return a value.


Sketched out some code for Machine::execute for functions -- still
doesn't work yet, though.

sunspider --squirrelfish reports no regression.

  • VM/Machine.cpp: (KJS::Machine::execute): (KJS::Machine::privateExecute):
  • VM/Machine.h:
  • kjs/interpreter.cpp: (KJS::Interpreter::evaluate):
  • kjs/testkjs.cpp: (runWithScripts):
10:01 AM Changeset in webkit [31755] by timothy@apple.com
  • 2 edits in trunk/WebCore

A more complete fix for: can't drag the Web Inspector when grabbing
in the toolbar area. Makes dragging under the search field in the
empty space work again.

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

Reviewed by Adam Roben.

  • page/inspector/inspector.js:

(WebInspector.toolbarDragStart): Prevent dragging if the event target
is a toggleable toolbar item. Allow dragging when the target is a
normal toolbar item.

9:54 AM Changeset in webkit [31754] by ggaren@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

2008-04-09 Geoffrey Garen <ggaren@apple.com>

Reviewed by Sam Weinig.


First step toward re-entrant execution of function code (global code ->
built-in function -> JS function):


Tiny bit of refactoring in the Machine class.

sunspider --squirrelfish reports no regression.

  • VM/Machine.cpp: (KJS::Machine::dumpRegisters): (KJS::Machine::unwindCallFrame): (KJS::Machine::execute): (KJS::Machine::privateExecute):
  • VM/Machine.h: (KJS::Machine::isGlobalCallFrame):
  • kjs/interpreter.cpp: (KJS::Interpreter::evaluate):
8:28 AM Changeset in webkit [31753] by Adam Roben
  • 2 edits in trunk/JavaScriptCore

Build fix

8:18 AM Changeset in webkit [31752] by Adam Roben
  • 2 edits in trunk/JavaScriptCore

Build fix

  • wtf/AlwaysInline.h: Make sure to #include Platform.h before using the macros it defines.
12:06 AM squirrelfish edited by ggaren@apple.com
(diff)
12:04 AM Changeset in webkit [31751] by ggaren@apple.com
  • 11 edits
    2 adds in branches/squirrelfish/JavaScriptCore

2008-04-08 Geoffrey Garen <ggaren@apple.com>

Reviewed by Oliver Hunt.


Support for re-entrant execution of global code (global code -> built-in
function -> global code).


Keep a stack of register files instead of just one. Globals propogate
between register files as the register files enter and exit the stack.


An activation still uses its own register file's base as its
registerBase, but the global object uses the register file *stack*'s
registerBase, which updates dynamically to match the register file at
the top of the stack.


sunspider --squirrelfish reports no regression.

Note: See TracTimeline for information about the timeline view.