Timeline



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.

Apr 8, 2008:

11:18 PM Changeset in webkit [31750] by mjs@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoff.


  • initial preparatory work for JS constructors


1) Allocate registers for the returnInfo block and "this" value when generating code for
op_construct. These are not used yet, but the JS branch of op_construct will use them.


2) Adjust argc and argv appropriately for native constructor calls.


3) Assign return value in a more straightforward way in op_ret since this is actually
a bit faster (and makes up for the allocation of extra registers above).

  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitConstruct):
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
11:18 PM Changeset in webkit [31749] by mrowe@apple.com
  • 2 edits in trunk/JavaScriptCore

2008-04-08 Mark Rowe <mrowe@apple.com>

Export WTF::initializeThreading() from JavaScriptCore.

10:13 PM Changeset in webkit [31748] by weinig@apple.com
  • 2 edits in trunk/WebCore

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

Reviewed by Timothy Hatcher.

Fix for http://bugs.webkit.org/show_bug.cgi?id=18373
REGRESSION: Can't drag the Web Inspector when grabbing in the toolbar area

  • page/inspector/inspector.css:
8:21 PM squirrelfish edited by oliver@apple.com
(diff)
8:21 PM Changeset in webkit [31747] by alp@webkit.org
  • 2 edits in trunk/WebCore

2008-04-08 Christian Persch <chpe@gnome.org>

Reviewed by Alp Toker.

http://bugs.webkit.org/show_bug.cgi?id=18360
"missing sentinel" warnings in PluginDatabaseGtk.cpp

Use NULL, not 0 as sentinel in varargs calls.

  • plugins/gtk/PluginDatabaseGtk.cpp: (WebCore::PluginDatabase::getPluginPathsInDirectories): (WebCore::PluginDatabase::defaultPluginDirectories):
8:21 PM squirrelfish edited by oliver@apple.com
(diff)
7:17 PM Changeset in webkit [31746] by weinig@apple.com
  • 48 edits
    2 adds in trunk

JavaScriptCore:

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

Reviewed by Geoffrey Garen.

First step in implementing the "split window"

  • Add a GlobalThisValue to ExecState which should be used in places that used to implement the "use the global object as this if null" rule.
  • Factor out lookupGetter/lookupSetter into virtual methods on JSObject so that they can be forwarded.
  • Make defineGetter/defineSetter virtual methods for the same reason.
  • Have PrototypeReflexiveFunction store the globalObject used to create it so that it can be used to get the correct thisObject for eval.
  • API/JSObjectRef.cpp: (JSObjectCallAsFunction):
  • JavaScriptCore.exp:
  • kjs/Activation.h:
  • kjs/ExecState.cpp: (KJS::ExecState::ExecState): (KJS::GlobalExecState::GlobalExecState):
  • kjs/ExecState.h: (KJS::ExecState::globalThisValue):
  • kjs/ExecStateInlines.h: (KJS::ExecState::ExecState): (KJS::FunctionExecState::FunctionExecState):
  • kjs/JSGlobalObject.cpp: (KJS::JSGlobalObject::reset): (KJS::JSGlobalObject::toGlobalObject):
  • kjs/JSGlobalObject.h: (KJS::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData): (KJS::JSGlobalObject::JSGlobalObject):
  • kjs/array_instance.cpp: (KJS::CompareWithCompareFunctionArguments::CompareWithCompareFunctionArguments): (KJS::compareWithCompareFunctionForQSort):
  • kjs/array_object.cpp: (KJS::arrayProtoFuncSort): (KJS::arrayProtoFuncFilter): (KJS::arrayProtoFuncMap): (KJS::arrayProtoFuncEvery): (KJS::arrayProtoFuncForEach): (KJS::arrayProtoFuncSome):
  • kjs/function.cpp: (KJS::FunctionImp::callAsFunction): (KJS::ActivationImp::toThisObject): (KJS::globalFuncEval): (KJS::PrototypeReflexiveFunction::PrototypeReflexiveFunction): (KJS::PrototypeReflexiveFunction::mark):
  • kjs/function.h: (KJS::PrototypeReflexiveFunction::cachedGlobalObject):
  • kjs/function_object.cpp: (KJS::functionProtoFuncApply): (KJS::functionProtoFuncCall):
  • kjs/nodes.cpp: (KJS::ExpressionNode::resolveAndCall): (KJS::FunctionCallValueNode::evaluate): (KJS::LocalVarFunctionCallNode::inlineEvaluate): (KJS::ScopedVarFunctionCallNode::inlineEvaluate): (KJS::FunctionCallBracketNode::evaluate): (KJS::FunctionCallDotNode::inlineEvaluate):
  • kjs/object.cpp: (KJS::JSObject::call): (KJS::JSObject::put): (KJS::tryGetAndCallProperty): (KJS::JSObject::lookupGetter): (KJS::JSObject::lookupSetter): (KJS::JSObject::toThisObject): (KJS::JSObject::toGlobalObject): (KJS::JSObject::fillGetterPropertySlot):
  • kjs/object.h:
  • kjs/object_object.cpp: (KJS::objectProtoFuncLookupGetter): (KJS::objectProtoFuncLookupSetter):
  • kjs/string_object.cpp: (KJS::replace):

WebCore:

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

Reviewed by Geoffrey Garen.

First step in implementing the "split window"

  • This patch takes the first step in changing the window navigation model from clearing the window properties on navigation, to replacing an inner window. This is necessary to safely perform security checks using the lexical global object.

This first step adds a new class called JSDOMWindowWrapper, which wraps
the real window object. All JS calls that would go to the window object
now go to it, which it forwards to the current inner window. To accomplish
this, the wrapper window is used as the ThisValue wherever the window was used
before.

  • WebCore.base.exp:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMWindowBase.cpp: (WebCore::JSDOMWindowBase::JSDOMWindowBase): (WebCore::JSDOMWindowBase::clear): Reset the wrapper windows prototype too. (WebCore::JSDOMWindowBase::toThisObject): (WebCore::JSDOMWindowBase::wrapper): (WebCore::windowProtoFuncAToB): (WebCore::windowProtoFuncBToA): (WebCore::windowProtoFuncOpen): (WebCore::windowProtoFuncSetTimeout): (WebCore::windowProtoFuncClearTimeout): (WebCore::windowProtoFuncSetInterval): (WebCore::windowProtoFuncAddEventListener): (WebCore::windowProtoFuncRemoveEventListener): (WebCore::windowProtoFuncShowModalDialog): (WebCore::windowProtoFuncNotImplemented): (WebCore::toJS):
  • bindings/js/JSDOMWindowBase.h: Fix to expect the wrapper as the thisObj.
  • bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::postMessage): (WebCore::toDOMWindow):
  • bindings/js/JSDOMWindowWrapper.cpp: Added. (WebCore::): (WebCore::JSDOMWindowWrapper::JSDOMWindowWrapper): (WebCore::JSDOMWindowWrapper::~JSDOMWindowWrapper): (WebCore::JSDOMWindowWrapper::mark): (WebCore::JSDOMWindowWrapper::className): (WebCore::JSDOMWindowWrapper::getOwnPropertySlot): (WebCore::JSDOMWindowWrapper::put): (WebCore::JSDOMWindowWrapper::deleteProperty): (WebCore::JSDOMWindowWrapper::getPropertyNames): (WebCore::JSDOMWindowWrapper::getPropertyAttributes): (WebCore::JSDOMWindowWrapper::defineGetter): (WebCore::JSDOMWindowWrapper::defineSetter): (WebCore::JSDOMWindowWrapper::lookupGetter): (WebCore::JSDOMWindowWrapper::lookupSetter): (WebCore::JSDOMWindowWrapper::toGlobalObject): (WebCore::JSDOMWindowWrapper::impl): (WebCore::JSDOMWindowWrapper::disconnectFrame): (WebCore::JSDOMWindowWrapper::clear): (WebCore::toJS):
  • bindings/js/JSDOMWindowWrapper.h: Added. (WebCore::JSDOMWindowWrapper::innerWindow): (WebCore::JSDOMWindowWrapper::setInnerWindow): (WebCore::JSDOMWindowWrapper::classInfo): Forward methods to the innerWindow.
  • bindings/js/JSHTMLDocumentCustom.cpp: (WebCore::JSHTMLDocument::open):
  • bindings/js/ScheduledAction.cpp: (WebCore::ScheduledAction::execute):
  • bindings/js/kjs_events.cpp: (WebCore::JSAbstractEventListener::handleEvent):
  • bindings/js/kjs_proxy.cpp: (WebCore::KJSProxy::~KJSProxy): (WebCore::KJSProxy::evaluate): (WebCore::KJSProxy::clear): (WebCore::KJSProxy::initScript): (WebCore::KJSProxy::clearDocumentWrapper): (WebCore::KJSProxy::processingUserGesture): (WebCore::KJSProxy::attachDebugger):
  • bindings/js/kjs_proxy.h: (WebCore::KJSProxy::haveWindowWrapper): (WebCore::KJSProxy::windowWrapper): (WebCore::KJSProxy::globalObject): (WebCore::KJSProxy::initScriptIfNeeded): Hold onto the wrapper window instead of global object. As a convenience, keep the globalObject() as a forward to the inner window.
  • bindings/objc/DOMUtility.mm: (KJS::createDOMWrapper):
  • bindings/scripts/CodeGeneratorJS.pm:
  • dom/Document.cpp: (WebCore::Document::domWindow):
  • dom/Document.h: (WebCore::Document::defaultView):
  • loader/FrameLoader.cpp: (WebCore::FrameLoader::dispatchWindowObjectAvailable):
  • page/DOMWindow.idl:
  • page/Frame.cpp: (WebCore::Frame::~Frame): (WebCore::Frame::pageDestroyed):
6:02 PM Changeset in webkit [31745] by beidson@apple.com
  • 7 edits in trunk

JavaScriptCore:

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

Encourage Windows to rebuild - AGAIN...

  • kjs/DateMath.cpp:

WebCore:

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

Encourage Windows to rebuild - AGAIN...

  • WebCore.vcproj/build-generated-files.sh:
  • bindings/scripts/CodeGenerator.pm:
  • bindings/scripts/CodeGeneratorJS.pm:
  • config.h:
5:10 PM Changeset in webkit [31744] by beidson@apple.com
  • 2 edits in trunk/WebCore

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

OMG release builds didn't have this flag Windows build bots I'm so
sorry will you ever forgive me?

(Found by Stephanie, rubberstamped and landed by Brady)

  • WebCore.vcproj/WebCore.vcproj: Add ENABLE_DOM_STORAGE for release builds
5:06 PM Changeset in webkit [31743] by timothy@apple.com
  • 3 edits in trunk/WebCore

Fixes a crash in KJS::JSValue::toObject when closing
Safari with Inspector open.

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

Reviewed by Adam Roben.

  • page/InspectorController.cpp:

(WebCore::inspectedWindow): NULL check the result of toJSDOMWindow.
Return JSNull if JSDOMWindow is 0.

  • page/inspector/ElementsPanel.js:

(ElementsPanel.prototype.reset): NULL check the result of
InspectorController.inspectedWindow.

4:57 PM Changeset in webkit [31742] by Adam Roben
  • 3 edits in trunk/WebKit/win

Export callOnMainThread from WebKit.dll

Rubberstamped by Anders.

  • WebKit.vcproj/WebKit.def:
  • WebKit.vcproj/WebKit_debug.def:
4:07 PM Changeset in webkit [31741] by dino@apple.com
  • 1 edit
    11 adds in trunk/WebKitSite

Add some updated proposals for CSS specifications, such as
Transforms and Transitions which are already implemented in TOT.

2:57 PM Changeset in webkit [31740] by Adam Roben
  • 2 edits in trunk/WebCore

Wx build fix

  • webcore-wx.bkl: Removed entry for non-existent file.
2:52 PM Changeset in webkit [31739] by Adam Roben
  • 2 edits in trunk/WebCore

qmake build fixes

  • WebCore.pro: Removed entries for non-existent files.
2:34 PM Changeset in webkit [31738] by Adam Roben
  • 2 edits in trunk/JavaScriptCore

Mac build fix

2:28 PM Changeset in webkit [31737] by beidson@apple.com
  • 8 edits in trunk

Strongly encourage Windows bots to rebuild with DOM_STORAGE enabled

2:04 PM Changeset in webkit [31736] by timothy@apple.com
  • 31 edits
    37 adds in trunk/WebCore

Implements the majority of the Inspector UI refresh as shown at:
http://trac.webkit.org/projects/webkit/wiki/ProposedWebInspectorUIRefresh

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

A few areas that have not been re-implemented with the new UI are:

  • Search and search results.
  • Request and response headers in the Resources panel.
  • Changing the sorting, grouping or toggling small rows in Resources.
  • Image and font previews in the icon of resources.

Reviewed by Adam Roben.

  • English.lproj/InspectorLocalizedStrings.js: Updated to match actual strings.
  • WebCore.vcproj/WebCore.vcproj: Added new files.
  • page/InspectorController.cpp:

(WebCore::InspectorController::setWindowVisible): Call resetScriptObjects()
instead of individual clear functions.
(WebCore::InspectorController::populateScriptObjects): Renamed from
populateScriptResources.
(WebCore::InspectorController::addDatabaseScriptResource): Call
addDatabase instead of addResource.
(WebCore::InspectorController::removeDatabaseScriptResource): Call
removeDatabase instead of removeResource.
(WebCore::InspectorController::resetScriptObjects): Renamed from
clearScriptResources.
(WebCore::InspectorController::didCommitLoad): Call resetScriptObjects()
instead of individual clear functions.

  • page/InspectorController.h: Rename functions.
  • page/inspector/Console.js: Changed the object name to Console from

ConsolePanel. Made it inherit the prototype from View. Added code
to animate in and out.

  • page/inspector/Database.js: Removed title updating and Resource

pseudo-subclassing. Made more of a Model object that just encapsulates
data. Add a getter for table names.

  • page/inspector/DatabaseQueryView.js: Added. Implements the view seen

when selecting a Database in the DatabasesPanel. Implemented as an
interactive console-like area.

  • page/inspector/DatabaseTableView.js: Added. Implements the view seen

when selecting a Database Table in the DatabasesPanel. Matches the old
Browse view of Database panels.

  • page/inspector/DatabasesPanel.js: Changed the object name to DatabasesPanel

from DatabasePanel. Implements a panel that shows a sidebar of Databases
and Database Tables.

  • page/inspector/ElementsPanel.js: Changed the object name to ElementsPanel

from DocumentPanel. Implements the DOM tree that shows the DOM rooted at the
main resource.

  • page/inspector/FontView.js: Use this.contentElement instead of this.element.
  • page/inspector/ImageView.js: Ditto.
  • page/inspector/Images/clearConsoleButtons.png: Added.
  • page/inspector/Images/consoleButtons.png: Added.
  • page/inspector/Images/darkShadow.png: Flipped.
  • page/inspector/Images/database.png: Modified to be 32x32.
  • page/inspector/Images/databaseTable.png: Added.
  • page/inspector/Images/databasesIcon.png: Added.
  • page/inspector/Images/disclosureTriangleSmallDown.png: Added.
  • page/inspector/Images/disclosureTriangleSmallDownBlack.png: Added.
  • page/inspector/Images/disclosureTriangleSmallDownWhite.png: Added.
  • page/inspector/Images/disclosureTriangleSmallRight.png: Added.
  • page/inspector/Images/disclosureTriangleSmallRightBlack.png: Added.
  • page/inspector/Images/disclosureTriangleSmallRightDown.png: Added.
  • page/inspector/Images/disclosureTriangleSmallRightDownBlack.png: Added.
  • page/inspector/Images/disclosureTriangleSmallRightDownWhite.png: Added.
  • page/inspector/Images/disclosureTriangleSmallRightWhite.png: Added.
  • page/inspector/Images/dockButtons.png: Added.
  • page/inspector/Images/elementsIcon.png: Added.
  • page/inspector/Images/gradientHighlightBottom.png:
  • page/inspector/Images/resourceCSSIcon.png: Added.
  • page/inspector/Images/resourceDocumentIcon.png: Added.
  • page/inspector/Images/resourcePlainIcon.png: Added.
  • page/inspector/Images/resourcesIcon.png: Added.
  • page/inspector/Images/resourcesSizeGraphIcon.png: Added.
  • page/inspector/Images/resourcesTimeGraphIcon.png: Added.
  • page/inspector/Images/scriptsIcon.png: Added.
  • page/inspector/Images/segment.png: Modified to fit the taller status bar.
  • page/inspector/Images/segmentEnd.png: Ditto.
  • page/inspector/Images/segmentHover.png: Ditto.
  • page/inspector/Images/segmentHoverEnd.png: Ditto.
  • page/inspector/Images/segmentSelected.png: Ditto.
  • page/inspector/Images/segmentSelectedEnd.png: Ditto.
  • page/inspector/Images/sidebarSelectionBackground.png: Added.
  • page/inspector/Images/sidebarSelectionBackgroundFocused.png: Added.
  • page/inspector/Images/sidebarSelectionBackgroundInactive.png: Added.
  • page/inspector/Images/sidebarSmallSelectionBackground.png: Added.
  • page/inspector/Images/sidebarSmallSelectionBackgroundFocused.png: Added.
  • page/inspector/Images/sidebarSmallSelectionBackgroundInactive.png: Added.
  • page/inspector/Images/statusbarBackground.png: Added.
  • page/inspector/Images/statusbarBottomBackground.png: Added.
  • page/inspector/Images/statusbarButtons.png: Added.
  • page/inspector/Images/statusbarResizerVertical.png: Added.
  • page/inspector/Images/toolbarItemSelected.png: Added.
  • page/inspector/Panel.js: Added support for toolbar items and status bar items.

Inherits from the View prototype.

  • page/inspector/Resource.js: Removed title updating and the ResourceTreeElement.

Made more of a Model object that just encapsulates data.

  • page/inspector/ResourceCategory.js: Removed the ResourceCategoryTreeElement.

Made more of a Model object that just encapsulates data.

  • page/inspector/ResourceView.js: A simple base object for Resource views

shown in ResourcesPanel. Inherits from the View prototype.

  • page/inspector/ResourcesPanel.js: Changed the object name to ResourcesPanel

from NetworkPanel. Implements the timeline graph, size graph and resource
viewing by using ResourceViews.

  • page/inspector/SidebarTreeElement.js: Added. Inherits from TreeElement and implements

a section element and a regular element that has an icon, title and optional subtitle.

  • page/inspector/SourceView.js: Use this.contentElement instead of this.element.
  • page/inspector/StylesSidebarPane.js: Null check WebInspector.mainResource.
  • page/inspector/View.js: Added. A simple object to manage showing and hiding an element.
  • page/inspector/WebKit.qrc: Added new files.
  • page/inspector/inspector.css: New and changed style rules to support the new UI.
  • page/inspector/inspector.html: New and changed HTML for the UI. The search field

is disabled until search is reimplemented.

  • page/inspector/inspector.js: Removed code related to the sidebar and back-forward lists.

Also removed code related to navigation to panels. Added code to instantiate the new
panels and setup the toolbar.

1:59 PM Changeset in webkit [31735] by mitz@apple.com
  • 5 edits in trunk/WebCore

Reviewed by Antti Koivisto.

  • fix a regression from r31313 which made the inspector highlight and yellow find highlight for table cells with extra top appear in the wrong position
  • rendering/LayoutState.cpp: (WebCore::LayoutState::LayoutState): Changed absolutePosition() to absolutePositionForContent(), to get the right position for children of table cells. This is the correct fix for this part of r31313.
  • rendering/RenderBox.cpp: (WebCore::RenderBox::absolutePosition): Reverted the change from r31313 by changing absolutePosition() to absolutePositionForContent() here too.
  • rendering/RenderObject.h: (WebCore::RenderObject::absolutePositionForContent): Changed to return the result from absolutePosition().
  • rendering/RenderTableCell.cpp: (WebCore::RenderTableCell::absoluteClippedOverflowRect): Turned the "else" case into an early return. (WebCore::RenderTableCell::absolutePosition): Reverted the change from r31313.
1:58 PM Changeset in webkit [31734] by mitz@apple.com
  • 3 edits
    4 adds in trunk

WebCore:

Reviewed by Antti Koivisto.

Test: fast/block/float/br-with-clear-2.html

  • rendering/bidi.cpp: (WebCore::RenderBlock::layoutInlineChildren): The existing code for handling a float-clearing <br> in incremental layout had several bugs in it: it only applied when the <br> was on the last line of the block; it assumed that the <br> was always the rightmost box on the line (which is false in right-to-left runs); and in some places it looked at the last child of the block instead of the last box on the line. Fixed these bugs.

LayoutTests:

Reviewed by Antti Koivisto.

  • fast/block/float/br-with-clear-2.html: Added.
  • platform/mac/fast/block/float/br-with-clear-2-expected.checksum: Added.
  • platform/mac/fast/block/float/br-with-clear-2-expected.png: Added.
  • platform/mac/fast/block/float/br-with-clear-2-expected.txt: Added.
1:50 PM Changeset in webkit [31733] by Adam Roben
  • 2 edits in trunk/WebCore

Mac build fix

  • WebCore.xcodeproj/project.pbxproj: Removed MainThread* files which were moved to WTF.
1:36 PM Changeset in webkit [31732] by timothy@apple.com
  • 3 edits in trunk/WebCore

Change WebInspector.elementDragStart and WebInspector.elementDragEnd to have more
state, so calling elementDragEnd does not need the listener functions. Also makes
calling elementDragStart again without elementDragEnd work correctly.

Reviewed by Adam Roben.

  • page/inspector/ElementsPanel.js:

(DocumentPanel.prototype.rightSidebarResizerDragStart): Just call WebInspector.elementDragStart.
Removed code that stored away the listeners now that elementDragStart does it.
(DocumentPanel.prototype.rightSidebarResizerDragEnd): Just call WebInspector.elementDragEnd.
Removed code that deleted listeners properties now that elementDragEnd does it.

  • page/inspector/inspector.js:

(WebInspector.sidebarResizerDragEnd): Pass less arguments to elementDragEnd.
(WebInspector.searchResultsResizerDragEnd): Ditto.
(WebInspector.elementDragStart): Store the listeners as private properties on WebInspector.
If the properties are already defined, call elementDragEnd first.
(WebInspector.elementDragEnd): Remove the event listeners using the stored properties.
Delete the private listener properties.

1:30 PM Changeset in webkit [31731] by Adam Roben
  • 1 edit
    1 add in trunk/WebCore

Build fix

  • ForwardingHeaders/wtf/MainThread.h: Added. Forgot to commit this.
1:12 PM Changeset in webkit [31730] by Adam Roben
  • 21 edits
    7 moves
    5 adds in trunk

Move callOnMainThread to WTF

JavaScriptCore:

Move callOnMainThread to WTF

Reviewed by Alexey Proskuryakov.

  • wtf/MainThread.cpp:
  • wtf/MainThread.h:
  • wtf/gtk/MainThreadGtk.cpp:
  • wtf/mac/MainThreadMac.mm:
  • wtf/qt/MainThreadQt.cpp:
  • wtf/win/MainThreadWin.cpp:
  • wtf/wx/MainThreadWx.cpp: Moved here from WebCore/platform. Replaced all instances of "WebCore" with "WTF".
  • kjs/bool_object.cpp: Touched to force JavaScriptCore.vcproj to build. to the WTF namespace.
  • wtf/ThreadingWin.cpp: (WTF::initializeThreading): Call initializeMainThread.

WebCore:

Move callOnMainThread to WTF

Reviewed by Alexey Proskuryakov.

  • GNUmakefile.am:
  • WebCore.pro:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCoreSources.bkl: Removed MainThread files.
  • bindings/js/JSCustomSQLTransactionCallback.cpp:
  • loader/icon/IconDatabase.cpp: (WebCore::iconDatabase):
  • storage/Database.cpp: (WebCore::Database::Database):
  • storage/DatabaseTracker.cpp: Updated #includes and replaced calls to WebCore::initializeThreadingAndMainThread with calls to KJS::initializeThreading.
  • platform/MainThread.cpp: Removed.
  • platform/MainThread.h: Removed.
  • platform/gtk/MainThreadGtk.cpp: Removed.
  • platform/mac/MainThreadMac.mm: Removed.
  • platform/qt/MainThreadQt.cpp: Removed.
  • platform/win/MainThreadWin.cpp: Removed.
  • platform/wx/MainThreadWx.cpp: Removed.

WebKit/gtk:

Move callOnMainThread to WTF

Reviewed by Alexey Proskuryakov.

  • webkit/webkitprivate.cpp: Updated #include. (webkit_init): Changed to call KJS::initializeThreading.

WebKit/win:

Move callOnMainThread to WTF

Reviewed by Alexey Proskuryakov.

  • WebIconDatabase.cpp: Updated #include
12:48 PM Changeset in webkit [31729] by mrowe@apple.com
  • 2 edits in trunk/WebKitTools

2008-04-08 Mark Rowe <mrowe@apple.com>

Clean up after Brady.

  • DumpRenderTree/mac/DumpRenderTree.mm: Add an include so that NSInteger can be found.
11:56 AM Changeset in webkit [31728] by Adam Roben
  • 2 edits in trunk/BugsSite

Combine :equal operations with the following operation if they are fewer than 3 characters long

This keeps us from showing lots of small changes on long lines, just
because some letters happened to be the same.

Inspired by
http://code.google.com/p/reviewboard/source/browse/trunk/reviewboard/diffviewer/diffutils.py?r=1264#147

  • PrettyPatch/PrettyPatch.rb: (PrettyPatch::DiffSection.initialize): Remove :equal operations fewer than 3 characters long. The characters from the removed operations become part of the subsequent operation. (PrettyPatch::CodeLine.text_as_html): Don't wrap 0-length strings in <ins>/<del> tags. Also removed the @fromLineNumber.nil? and @toLineNumber.nil? checks as they are no longer reliable now that we're removing operations.
11:28 AM Changeset in webkit [31727] by sfalken@apple.com
  • 1 edit in trunk/WebKit/win/ChangeLog

Fix ChangeLog

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

Add missing increment/decrement COM class counts to detect leaks.


Reviewed by Adam Roben.

  • CFDictionaryPropertyBag.cpp: (CFDictionaryPropertyBag::CFDictionaryPropertyBag): (CFDictionaryPropertyBag::~CFDictionaryPropertyBag):
  • CFDictionaryPropertyBag.h:
  • HTTPHeaderPropertyBag.cpp: (HTTPHeaderPropertyBag::HTTPHeaderPropertyBag): (HTTPHeaderPropertyBag::~HTTPHeaderPropertyBag):
  • HTTPHeaderPropertyBag.h:
  • WebActionPropertyBag.cpp: (WebActionPropertyBag::WebActionPropertyBag): (WebActionPropertyBag::~WebActionPropertyBag):
  • WebDocumentLoader.cpp: (WebDocumentLoader::WebDocumentLoader): (WebDocumentLoader::~WebDocumentLoader):
  • WebDropSource.cpp: (WebDropSource::WebDropSource): (WebDropSource::~WebDropSource):
  • WebDropSource.h:
  • WebElementPropertyBag.cpp: (WebElementPropertyBag::WebElementPropertyBag): (WebElementPropertyBag::~WebElementPropertyBag):
  • WebTextRenderer.cpp: (WebTextRenderer::WebTextRenderer): (WebTextRenderer::~WebTextRenderer):
  • WebView.cpp: (WebView::updateActiveState):
11:08 AM Changeset in webkit [31725] by Adam Roben
  • 3 edits in trunk/BugsSite

Change PrettyPatch to use DiffBuilder for intra-line diffs

This gives us much prettier intra-line diffs, largely because it can
distinguish multiple changes on the same line. e.g., if a line changes
from:

const int myConstant = 0;

to

static const unsigned myConstant;

You will see that "static " was inserted, "int" changed to "unsigned",
and " = 0" was deleted.

This seems to have also gotten rid of some spurious instances of
"<ins></ins>" and "<del></del>" at the end of a line.

  • PrettyPatch/PrettyPatch.rb: (PrettyPatch::DiffSection.initialize): Use DiffBuilder instead of setChangeExtentFromLine (which had been copied from Trac's diffing code). (PrettyPatch::CodeLine):
    • Removed the changeExtent attribute
    • Added the operations attribute
    • Removed the setChangeExtentFromLine method

(PrettyPatch::CodeLine.text_as_html): Uses @operations to determine
what text to wrap in <ins> and <del> tags.

  • PrettyPatch/diff.rb: Deleted a bunch of code we don't use. (HTMLDiff::DiffBuilder.initialize): Moved code here from the old build method, but left out the calls to perform_operation, since we build the diff HTML outside of this class. (HTMLDiff::DiffBuilder.split_inputs_to_words): Removed calls to convert_html_to_list_of_words, since we're not diffing HTML.
11:06 AM Changeset in webkit [31724] by Adam Roben
  • 1 edit
    1 add in trunk/BugsSite

Check in diff.rb

This came from
http://instiki.rubyforge.org/svn/instiki/trunk/lib/diff.rb
revision 28521

  • PrettyPatch/diff.rb: Added.
11:06 AM Changeset in webkit [31723] by timothy@apple.com
  • 3 edits in trunk/WebCore

Makes the Network timeline graph resource sizes on the bar graph
when Transfer Size is selected.

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

Reviewed by Adam Roben.

  • page/inspector/Resource.js:

(WebInspector.Resource.CompareByTime): Array sorting function for time.
Copied from WebInspector.NetworkPanel.timelineEntryCompare.

  • page/inspector/ResourcesPanel.js:

(WebInspector.NetworkPanel): Set the selectedIndex of graphModeSelectElement to
make Transfer Time the default graph.
(WebInspector.NetworkPanel.prototype.changeGraphMode): Call calculator.reset,
_refreshAllResources and _updateGraphDividersIfNeeded.
(WebInspector.NetworkPanel.prototype.get totalDuration): Removed.
(WebInspector.NetworkPanel.prototype._updateGraphBoundriesIfNeeded): Removed boundary
checking code and just call calculator.updateBoundries.
(WebInspector.NetworkPanel.prototype._updateGraphDividersIfNeeded): Add a force argument.
Use calculator.boundarySpan when computing the slice. If the slice is NaN, don't make a label.
Ask the calculator to format the label values for each slice.
(WebInspector.NetworkPanel.prototype.clearTimeline): Call calculator.reset.
(WebInspector.NetworkPanel.timelineEntryCompare): Call WebInspector.Resource.CompareByTime.

(WebInspector.NetworkTimelineEntry.prototype.refresh): Ask the panel's calculator to compute
bar graph percentages for a resource. Use those percentages to change the bar style.

(WebInspector.ResourceCalculator): Renamed from WebInspector.TimelineValueCalculator.
(WebInspector.ResourceCalculator.prototype.computeSummaryValues): Changed the Array.forEach
to a normal for loop. Work with resources instead of TimelineEntries.
(WebInspector.ResourceCalculator.prototype.computeBarGraphPercentages): Return basic bar graph
percents with start always being zero.
(WebInspector.ResourceCalculator.prototype.get boundarySpan): Return the difference between
maximumBoundary and minimumBoundary.
(WebInspector.ResourceCalculator.prototype.updateBoundries): Update maximumBoundary based on _value.
The minimumBoundary is always zero.
(WebInspector.ResourceCalculator.prototype.reset): Delete maximumBoundary and minimumBoundary.
(WebInspector.ResourceCalculator.prototype._value): Takes a Resource instead of TimelineEntry.

(WebInspector.ResourceTransferTimeCalculator): Renamed from TransferTimeCalculator.
(WebInspector.ResourceTransferTimeCalculator.prototype.computeSummaryValues): Work with resources
instead of entries. Changed the Array.forEach to a normal for loop.
(WebInspector.ResourceTransferTimeCalculator.prototype.computeBarGraphPercentages): Return percents
just like WebInspector.NetworkTimelineEntry.prototype.refresh was doing before.
(WebInspector.ResourceTransferTimeCalculator.prototype.updateBoundries): Update minimumBoundary and
maximumBoundary just like the checks WebInspector.NetworkPanel.prototype._updateGraphBoundriesIfNeeded was doing.

(WebInspector.ResourceTransferSizeCalculator): Renamed from TransferSizeCalculator.
(WebInspector.ResourceTransferSizeCalculator.prototype._value): Takes a Resource instead of TimelineEntry.

10:29 AM Changeset in webkit [31722] by beidson@apple.com
  • 6 edits in trunk

WebKitTools:

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

Reviewed by Mitzpettel

Fixed http://bugs.webkit.org/show_bug.cgi?id=18302
-WebArchive subresources dump in random order, intermittent failures

  • DumpRenderTree/mac/DumpRenderTree.mm: (compareResourceURLs): Sorting function based on the resource URLs (serializeWebArchiveToXML): Sort the subresource array

LayoutTests:

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

Reviewed by Mitzpettel

Fixed http://bugs.webkit.org/show_bug.cgi?id=18302
-WebArchive subresources dump in random order, intermittent failures

Now that a DRT fix has set the order, these 3 tests needed new results

  • webarchive/test-css-import-expected.txt:
  • webarchive/test-duplicate-resources-expected.txt:
  • webarchive/test-frameset-expected.txt:
10:27 AM Changeset in webkit [31721] by rwlbuis@webkit.org
  • 2 edits in trunk/WebCore

Fix the SVG build.

  • svg/SVGFEFloodElement.cpp: (WebCore::SVGFEFloodElement::filterEffect):
9:50 AM Changeset in webkit [31720] by alice.liu@apple.com
  • 2 edits in trunk/WebCore

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

Reviewed by Dan Bernstein.


fixed http://bugs.webkit.org/show_bug.cgi?id=18329
REGRESSION: Assertion failure in -[WebViewFactory endOfTextMarkerRange:]
when invoking the Dictionary pop-up

  • page/mac/AccessibilityObjectWrapper.mm: (-[AccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]): In the section of code where WebCore-equivalents of mac-specific types are prepared, some functions weren't meant to operate on the default initialized values. Checking for nil in certain places will better maintain the original pre-refactoring code path.
1:15 AM Changeset in webkit [31719] by mitz@apple.com
  • 2 edits in trunk/WebCore

2008-04-08 Dan Bernstein <mitz@apple.com>

  • fix most of the Windows layout test regressions from the font-weight patch
  • platform/graphics/win/FontCacheWin.cpp: (WebCore::matchImprovingEnumProc): Changed to be symmetric with respect to italics: always prefer (reject) a candidate that changes the italics trait to (from) the desired value. (WebCore::createGDIFont): Added code to set more members of the LOGFONT structure before creating the font.
12:20 AM Changeset in webkit [31718] by rwlbuis@webkit.org
  • 4 edits in trunk/WebCore

Reviewed by Ollie.

http://bugs.webkit.org/show_bug.cgi?id=18354
feFlood in attribute should be removed according to SVG 1.1 Errata

Remove the in attribute from SVGFEFlood DOM.

Apr 7, 2008:

11:24 PM Changeset in webkit [31717] by ggaren@apple.com
  • 3 edits
    1 add in branches/squirrelfish/SunSpider

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

Reviewed by Maciej Stachowiak.


A little more love for --squirrelfish mode:


Fixed a misplaced sort. Results properly sort now.


Added a test list just for squirrelfish, and updated it to include
all currently passing SunSpider tests.


Fixed the pruning regexp to match 3d-morph.js.

  • sunspider:
11:13 PM Changeset in webkit [31716] by ggaren@apple.com
  • 1 edit in branches/squirrelfish/JavaScriptCore/ChangeLog

fix changelog, bokay?

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

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

Reviewed by Maciej Stachowiak.


Fixed crasing SunSpider tests.


Let's just pretend this never happened, bokay?

  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::CodeGenerator):
  • VM/CodeGenerator.h:
  • VM/RegisterFile.cpp: (KJS::RegisterFile::addGlobals):
10:24 PM Changeset in webkit [31714] by ggaren@apple.com
  • 5 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.


Restored dumping of generated code as a command-line switch:
run-testkjs -d will do it.

10:20 PM Changeset in webkit [31713] by beidson@apple.com
  • 2 edits in trunk/LayoutTests

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

Rubberstamped by Geoff Garen

Forgot to update these results after I added the Prototype

  • fast/dom/Window/window-properties-expected.txt:
9:53 PM Changeset in webkit [31712] by ggaren@apple.com
  • 12 edits
    2 adds in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.


Next step toward supporting re-entrant evaluation: Moved register file
maintenance code into a proper "RegisterFile" class.


There's a subtle change to the register file's internal layout: for
global code / the global object, registerOffset is always 0 now. In
other words, all register counting starts at 0, not 0 + (number of
global variables). The helps simplify accounting when the number of
global variables changes.

8:12 PM Changeset in webkit [31711] by alice.liu@apple.com
  • 1 edit in trunk/WebCore/GNUmakefile.am

build fix for gtk. hopefully the only one

8:01 PM Changeset in webkit [31710] by beidson@apple.com
  • 2 edits in trunk/LayoutTests

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

I can't fathom why the new storage tests could be hanging, but alas they are on Windows
Disable until I can figure out why

  • platform/win/Skipped:
8:00 PM Changeset in webkit [31709] by alice.liu@apple.com
  • 1 edit in trunk/WebCore/WebCoreSources.bkl

I "objeect" to that previous build fix

7:56 PM squirrelfish edited by ggaren@apple.com
(diff)
7:54 PM Changeset in webkit [31708] by beidson@apple.com
  • 2 edits in trunk/WebKitTools

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

OMG, BUILD - please!

  • Scripts/build-webkit:
7:50 PM squirrelfish edited by oliver@apple.com
(diff)
6:57 PM Changeset in webkit [31707] by beidson@apple.com
  • 2 edits in trunk/WebCore

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

Touch JSStorageCustom.cpp to try to FORCE a recompile on bots that haven't gotten the message

  • bindings/js/JSStorageCustom.cpp: (WebCore::JSStorage::customPut):
6:28 PM Changeset in webkit [31706] by alice.liu@apple.com
  • 1 edit in trunk/WebCore/WebCore.pro

qt build fix. third time is hopefully the charm.

6:23 PM Changeset in webkit [31705] by alice.liu@apple.com
  • 1 edit in trunk/WebCore/WebCoreSources.bkl

attempt at wx build fix

6:16 PM Changeset in webkit [31704] by alice.liu@apple.com
  • 1 edit in trunk/WebCore/WebCore.pro

another attempt at qt build fix

6:08 PM Changeset in webkit [31703] by alice.liu@apple.com
  • 1 edit in trunk/WebCore/WebCore.pro

attempt at fixing qt build

6:01 PM Changeset in webkit [31702] by beidson@apple.com
  • 5 edits in trunk

WebCore:

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

Reviewed by John Honeycutt

ENABLE_DOM_STORAGE for Windows

  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.vcproj/build-generated-files.sh:

WebKit/win:

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

Reviewed by John Honeycutt

ENABLE_DOM_STORAGE for Windows

  • WebKit.vcproj/WebKit.vcproj:
5:44 PM Changeset in webkit [31701] by oliver@apple.com
  • 13 edits in branches/squirrelfish/JavaScriptCore

Bug 18338: Support exceptions in SquirrelFish <http://bugs.webkit.org/show_bug.cgi?id=18338>

Reviewed by Geoff

Initial support for exceptions in SquirrelFish, only supports finalisers in the
simple cases (eg. exceptions and non-goto/return across finaliser boundaries).
This doesn't add the required exception checks to existing code, it merely adds
support for throw, catch, and the required stack unwinding.

5:21 PM Changeset in webkit [31700] by beidson@apple.com
  • 4 edits in trunk

JavaScriptCore:

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

Add "ENABLE_DOM_STORAGE" to keep in sync with the rest of the project

  • Configurations/JavaScriptCore.xcconfig:

WebKit/mac:

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

Add "ENABLE_DOM_STORAGE" to keep in sync with the rest of the project

  • Configurations/WebKit.xcconfig:
5:16 PM Changeset in webkit [31699] by beidson@apple.com
  • 3 edits in trunk/WebCore

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

Fix build for builds without DOM_STORAGE enabled

  • dom/EventTargetNode.cpp: (WebCore::EventTargetNode::dispatchStorageEvent):
  • dom/EventTargetNode.h:
4:47 PM Changeset in webkit [31698] by alice.liu@apple.com
  • 6 edits
    1 add in trunk/WebCore

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

Reviewed by Beth Dakin.

  • WebCore.vcproj/WebCore.vcproj:

Added a few cross-platform accessibility source files


  • WebCore.xcodeproj/project.pbxproj:

Added AXObjectCache.cpp


  • page/AXObjectCache.cpp: Added.

These were made cross-platform:

(WebCore::AXObjectCache::~AXObjectCache):
(WebCore::AXObjectCache::get):
(WebCore::AXObjectCache::remove):
(WebCore::AXObjectCache::childrenChanged):


  • page/AXObjectCache.h:

These were made platform-specific

(WebCore::AXObjectCache::isIDinUse):
(WebCore::AXObjectCache::detachWrapper):
(WebCore::AXObjectCache::attachWrapper):
(WebCore::AXObjectCache::postNotificationToElement):


  • page/AccessibilityObject.cpp: (WebCore::AccessibilityObject::detach):

Since only the mac has a wrapper for now, so temporarily
wrapping this line in #if PLATFORM(MAC)


(WebCore::AccessibilityObject::removeAXObjectID):

Since only the mac has uses Accessibility Object IDs,
wrap this line in #if PLATFORM(MAC)


  • page/mac/AXObjectCacheMac.mm:

Detaching and attaching the wrapper is platform-specific
since each wrapper class is platform-specific.

(WebCore::AXObjectCache::detachWrapper):
(WebCore::AXObjectCache::attachWrapper):

4:11 PM Changeset in webkit [31697] by beidson@apple.com
  • 29 edits
    19 adds in trunk

WebCore:

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

Lovingly reviewed by Sam Weinig

<rdar://problem/5797684> - HTML5 SessionStorage and underpinnings for LocalStorage

Tests: storage/domstorage/sessionstorage/iframe-events.html

storage/domstorage/sessionstorage/index-get-and-set.html
storage/domstorage/sessionstorage/simple-events.html
storage/domstorage/sessionstorage/simple-usage.html
storage/domstorage/sessionstorage/window-open.html
storage/domstorage/window-attributes-exist.html

  • Configurations/WebCore.xcconfig: Define to enable DOM_STORAGE
  • bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::mark): Add optionalSessionStorage case
  • bindings/js/JSEventCustom.cpp: (WebCore::toJS): Add StorageEvent case
  • bindings/js/JSStorageCustom.cpp: (WebCore::JSStorage::canGetItemsForName): (WebCore::JSStorage::nameGetter): If the property doesn't exist on the object, call through to getItem() (WebCore::JSStorage::customPut): If the property doesn't exist on the object, call through to setItem()
  • dom/Event.cpp: (WebCore::Event::isStorageEvent):
  • dom/Event.h:
  • dom/EventNames.h: Add "storage"
  • dom/EventTargetNode.cpp: (WebCore::EventTargetNode::dispatchStorageEvent):
  • dom/EventTargetNode.h:
  • loader/FrameLoader.cpp: (WebCore::FrameLoader::createWindow): After a new page has been created, set its SessionStorage object to a copy of the previous Page's
  • page/DOMWindow.cpp: (WebCore::DOMWindow::sessionStorage): Accessor to pull the appropriate OriginStorage out of the Page's SessionStorage. (WebCore::DOMWindow::localStorage): To be filled in later
  • page/DOMWindow.h: (WebCore::DOMWindow::optionalSessionStorage): Return the session Storage object for this window to mark, if any exists
  • page/DOMWindow.idl:
  • page/Page.cpp: (WebCore::Page::sessionStorage): Create and/or return the SessionStorage for this Page. (WebCore::Page::setSessionStorage): Set the SessionStorage for this Page - used in FrameLoader after a Window.open();
  • page/Page.h:
  • storage/OriginStorage.cpp: Intermediate layer between individual Storage objects, and shared StorageMap objects. There is one OriginStorage object per SecurityOrigin in each "unique set of storage areas", such as the SessionStorage. This layer forwards DOM-level calls down to the backing StorageMap, handles copy-on-write along with the StorageMap, fires StorageEvents to the DOM when a value is changed, and will eventually handle quota enforcement. (WebCore::OriginStorage::create): (WebCore::OriginStorage::OriginStorage): (WebCore::OriginStorage::~OriginStorage): (WebCore::OriginStorage::copy): (WebCore::OriginStorage::length): (WebCore::OriginStorage::key): (WebCore::OriginStorage::getItem): (WebCore::OriginStorage::setItem): (WebCore::OriginStorage::removeItem): (WebCore::OriginStorage::contains): (WebCore::OriginStorage::dispatchStorageEvent):
  • storage/OriginStorage.h:
  • storage/SessionStorage.cpp: From the HTML5 spec: "Each top-level browsing context has a unique set of session storage areas, one for each origin." This object represents that "unique set of session storage areas", and creates or returns the Storage object for the requested SecurityOrigin (WebCore::SessionStorage::create): (WebCore::SessionStorage::SessionStorage): (WebCore::SessionStorage::copy): (WebCore::SessionStorage::originStorage):
  • storage/SessionStorage.h: (WebCore::SessionStorage::page):
  • storage/Storage.cpp: Representation of the DOM-level object, wrapped by JSStorage. There is a unique Storage object per Window (per-Frame) that wraps a specific shared OriginStorage object. (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/Storage.idl:
  • storage/StorageEvent.cpp: (WebCore::StorageEvent::StorageEvent): (WebCore::StorageEvent::initStorageEvent):
  • storage/StorageEvent.h: (WebCore::StorageEvent::isStorageEvent):
  • storage/StorageMap.cpp: The physical map of key/value pairs that is shared between OriginStorage objects, and implements copy-on-write semantics whenever a value is changed (WebCore::StorageMap::create): (WebCore::StorageMap::StorageMap): (WebCore::StorageMap::copy): (WebCore::StorageMap::invalidateIterator): Used to support the key(unsigned i) part of the API (WebCore::StorageMap::setIteratorToIndex): Ditto (WebCore::StorageMap::length): (WebCore::StorageMap::key): (WebCore::StorageMap::getItem): (WebCore::StorageMap::setItem): (WebCore::StorageMap::removeItem): (WebCore::StorageMap::contains):
  • storage/StorageMap.h:

LayoutTests:

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

Begrudgingly reviewed by Sam Weinig

Initial suite of layout tests for HTML5 key/value SessionStorage (<rdar://problem/5797684>)

  • fast/dom/Window/window-properties-expected.txt:
  • storage/domstorage: Added.
  • storage/domstorage/localstorage: Added.
  • storage/domstorage/sessionstorage: Added.
  • storage/domstorage/sessionstorage/iframe-events-expected.txt: Added.
  • storage/domstorage/sessionstorage/iframe-events.html: Added.
  • storage/domstorage/sessionstorage/index-get-and-set-expected.txt: Added.
  • storage/domstorage/sessionstorage/index-get-and-set.html: Added.
  • storage/domstorage/sessionstorage/resources: Added.
  • storage/domstorage/sessionstorage/resources/clearSessionStorage.js: Added.
  • storage/domstorage/sessionstorage/resources/iframe-events-second.html: Added.
  • storage/domstorage/sessionstorage/resources/window-open-second.html: Added.
  • storage/domstorage/sessionstorage/simple-events-expected.txt: Added.
  • storage/domstorage/sessionstorage/simple-events.html: Added.
  • storage/domstorage/sessionstorage/simple-usage-expected.txt: Added.
  • storage/domstorage/sessionstorage/simple-usage.html: Added.
  • storage/domstorage/sessionstorage/window-open-expected.txt: Added.
  • storage/domstorage/sessionstorage/window-open.html: Added.
  • storage/domstorage/window-attributes-exist-expected.txt: Added.
  • storage/domstorage/window-attributes-exist.html: Added.
3:18 PM Changeset in webkit [31696] by timothy@apple.com
  • 2 edits in trunk/WebCore

Renamed various functions that are internal to the Console object to have an underscore prefix.

Rubber-stamped by Adam Roben.

  • page/inspector/Console.js:
3:10 PM Changeset in webkit [31695] by timothy@apple.com
  • 3 edits in trunk/WebCore

Renamed various functions and properties that are internal to an object to have an underscore prefix.

Rubber-stamped by Adam Roben.

  • page/inspector/Resource.js:
  • page/inspector/ResourcesPanel.js:
3:04 PM Changeset in webkit [31694] by Adam Roben
  • 2 edits in trunk/JavaScriptCore

Windows build fix

  • wtf/ThreadingWin.cpp: Back out some changes I didn't mean to land.
2:45 PM Changeset in webkit [31693] by timothy@apple.com
  • 2 edits in trunk/WebCore

Fixes coding style for two utility getters.

  • page/inspector/utilities.js: Fix coding style for the

totalOffsetLeft and totalOffsetTop getters.

2:34 PM Changeset in webkit [31692] by sullivan@apple.com
  • 4 edits in trunk/WebKit

2008-04-07 John Sullivan <sullivan@apple.com>

Reviewed by Tim


  • made the JavaScript text input panel not block Quit (part of 4133196)
  • English.lproj/WebJavaScriptTextInputPanel.nib/classes.nib:
  • English.lproj/WebJavaScriptTextInputPanel.nib/info.nib:
  • English.lproj/WebJavaScriptTextInputPanel.nib/keyedobjects.nib: Made the panel be a NonBlockingPanel
2:20 PM squirrelfish edited by oliver@apple.com
(diff)
2:04 PM Changeset in webkit [31691] by Adam Roben
  • 3 edits in trunk/WebKit/win

Export some more WTF functions from WebKit.dll

Reviewed by Alexey Proskuryakov.

  • WebKit.vcproj/WebKit.def:
  • WebKit.vcproj/WebKit_debug.def:
2:04 PM Changeset in webkit [31690] by Adam Roben
  • 6 edits in trunk/JavaScriptCore

Add WTF::isMainThread

Reviewed by Alexey Proskuryakov.

  • wtf/Threading.h: Declare the new function.
  • wtf/ThreadingGtk.cpp: (WTF::initializeThreading): Initialize the main thread identifier. (WTF::isMainThread): Added.
  • wtf/ThreadingNone.cpp: Ditto ThreadingGtk.cpp. (WTF::initializeThreading): (WTF::isMainThread):
  • wtf/ThreadingPthreads.cpp: Ditto. (WTF::initializeThreading): (WTF::isMainThread):
  • wtf/ThreadingWin.cpp: Ditto. (WTF::initializeThreading): (WTF::isMainThread):
1:08 PM Changeset in webkit [31689] by mitz@apple.com
  • 2 edits in trunk/WebCore

Reviewed by Dave Hyatt.

  • platform/mac/WebFontCache.mm: (+[WebFontCache internalFontWithFamily:traits:weight:size:]): Changed to match by family name first, and only if that fails, look for a match by full (PostScript) name. Reverted the full name-based match logic to only distinguish between the broad categories of "bold" and "not bold".
1:01 PM Changeset in webkit [31688] by timothy@apple.com
  • 4 edits in trunk/WebCore

When the WebInspector.currentFocusElement changes, move the caret selection to be inside the focused element. This makes sure the caret moves in and out of the console when the focus changes.

Reviewed by Adam Roben.

  • page/inspector/TextPrompt.js:

(TextPrompt.prototype.isCaretInsidePrompt): Just call isInsertionCaretInside.

  • page/inspector/inspector.js:

(WebInspector.set currentFocusElement): Make a caret selection inside
the focused element if there isn't a range selection and there isn't
already a caret selection inside.

  • page/inspector/utilities.js:

(Element.prototype.isInsertionCaretInside): Added. Tests if the
selection is collapsed and is inside the element.

12:17 PM Changeset in webkit [31687] by beidson@apple.com
  • 6 edits
    1 add in trunk/WebCore

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

Reviewed by Tim Hatcher

Add 1 more empty file for upcoming work, as a separate step, to keep all build-systems working

  • GNUmakefile.am:
  • WebCore.pro:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • WebCoreSources.bkl:
  • bindings/js/JSStorageCustom.cpp: Added.
11:50 AM Changeset in webkit [31686] by ap@webkit.org
  • 3 edits
    2 adds in trunk

Reviewed by Dan Bernstein.

<rdar://problem/5574946> Inline frame ISO-8859-1 even though parent character set is UTF-8

Test: fast/loader/inherit-charset-to-empty-frame.html

  • loader/FrameLoader.cpp: (WebCore::FrameLoader::write): Treat an empty m_encoding the same as null one.
10:33 AM Changeset in webkit [31685] by timothy@apple.com
  • 8 edits in trunk/WebCore

Rename some Inspector panel objects to facilitate the up-coming
UI refresh changes.

Reviewed by Adam Roben.

  • page/inspector/DatabasesPanel.js: Renamed ResourcePanel to ResourceView.
  • page/inspector/ElementsPanel.js: Renamed SourcePanel to SourceView.
  • page/inspector/FontView.js: Renamed FontPanel to FontView.
  • page/inspector/ImageView.js: Renamed ImagePanel to ImageView.
  • page/inspector/Resource.js: Instantiate the new "View" named objects.
  • page/inspector/ResourceView.js: Renamed ResourcePanel to ResourceView.
  • page/inspector/SourceView.js: Renamed SourcePanel to SourceView.
10:14 AM Changeset in webkit [31684] by timothy@apple.com
  • 2 edits in trunk/WebCore

Fix an exception and remove code that was missed when TextPrompt
was added. This makes the Console work again.

Reviewed by Adam Roben.

  • page/inspector/Console.js: Removed code that used non-existent

properties.

9:41 AM Changeset in webkit [31683] by timothy@apple.com
  • 2 edits in trunk/WebCore

Remove the workaround for bug 11399 now that it is fixed.

Reviewed by Adam Roben.

  • page/inspector/Console.js: Removed the 'with' statement

around the eval and call eval directly on the inspected window.

6:34 AM Changeset in webkit [31682] by alp@webkit.org
  • 3 edits in trunk/WebCore

2008-04-07 Luca Bruno <lethalman88@gmail.com>

Reviewed by Alp Toker.

http://bugs.webkit.org/show_bug.cgi?id=18297
Bug #18297 - Acid2/Acid3 -tests don't load load with soup.

Fixes in the libsoup backend: data url parsing, acid tests, redirects,
response headers handling and re-entrancy issues on job cancellation.
Thanks to Dan Winship for libsoup hints.

  • platform/network/ResourceHandleInternal.h: (WebCore::ResourceHandleInternal::ResourceHandleInternal): add m_cancelled and remove unuseful m_session
  • platform/network/soup/ResourceHandleSoup.cpp: (WebCore::restartedCallback): added to route redirects to webkit (WebCore::dataCallback): add response headers, some checks and fix re-entrancy (WebCore::parseDataUrl): be an idle callback for the main loop (WebCore::ResourceHandle::start): (WebCore::ResourceHandle::cancel): fixed re-entrancy
5:34 AM HackingGtk edited by alp@atoker.com
Typo fixes from timeless (diff)
5:24 AM Changeset in webkit [31681] by ap@webkit.org
  • 4 edits in trunk

Build fix, rubber-stamped and landed by ap.

  • configure.ac: Add autoconf flag for HTML5 client-side session and persistent storage support.

WebCore:

  • GNUmakefile.am: Fix dom_storage conditional and typo: ENABLE_DOM_STORAG.
12:07 AM Changeset in webkit [31680] by beidson@apple.com
  • 2 edits in trunk/WebCore

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

Whoops, idls don't go in the vcproj!

  • WebCore.vcproj/WebCore.vcproj:
Note: See TracTimeline for information about the timeline view.