Timeline


and

09/05/08:

22:37 Changeset [36128] by timothy@apple.com

Build fix.

22:19 Changeset [36127] by timothy@apple.com

Build fix.

22:19 Changeset [36126] by timothy@apple.com

Correct a typo in the setApplicationChromeModeEnabledEnabled:
method name, remove the extra "Enabled".

  • WebView/WebPreferences.mm:
  • WebView/WebPreferencesPrivate.h:
22:07 WebKit Team edited by timothy@apple.com
Remove Drosera. (diff)
22:06 WebKit Team edited by timothy@apple.com
Minor tweaks. (diff)
22:05 Web Inspector edited by timothy@apple.com
Fix a link to my name. (diff)
22:04 WebKit Team edited by oliver@apple.com
Minor updates i noticed (diff)
21:59 Changeset [36125] by darin@apple.com

2008-09-05 Darin Adler <darin@apple.com>

Reviewed by Cameron Zwarich.

1.007x as fast on SunSpider overall
1.081x as fast on SunSpider math-cordic

  • VM/JSPropertyNameIterator.cpp: Moved functions out of here.
  • VM/JSPropertyNameIterator.h: (KJS::JSPropertyNameIterator::JSPropertyNameIterator): Moved this into the header and marked it inline. (KJS::JSPropertyNameIterator::create): Ditto. (KJS::JSPropertyNameIterator::next): Ditto.
21:58 Changeset [36124] by darin@apple.com

2008-09-05 Darin Adler <darin@apple.com>

Reviewed by Geoff Garen.

1.007x as fast on SunSpider overall
1.167x as fast on SunSpider string/fasta

  • JavaScriptCore.exp: Updated.
  • kjs/SmallStrings.cpp: (KJS::SmallStrings::singleCharacterStringRep): Added.
  • kjs/SmallStrings.h: Added singleCharacterStringRep for clients that need just a UString, not a JSString.
  • kjs/identifier.cpp: (KJS::Identifier::add): Added special cases for single character strings so that the UString::Rep that ends up in the identifier table is the one from the single-character string optimization; otherwise we end up having to look it up in the identifier table over and over again. (KJS::Identifier::addSlowCase): Ditto. (KJS::Identifier::checkSameIdentifierTable): Made this function an empty inline in release builds so that callers don't have to put #ifndef NDEBUG at each call site.
  • kjs/identifier.h: (KJS::Identifier::add): Removed #ifndef NDEBUG around the calls to checkSameIdentifierTable. (KJS::Identifier::checkSameIdentifierTable): Added. Empty inline version for NDEBUG builds.
21:08 Changeset [36123] by alp@webkit.org

2008-09-05 Gustavo Noronha Silva <gns@gnome.org>

Reviewed by Alp Toker.

https://bugs.webkit.org/show_bug.cgi?id=18346
[GTK] Remove build warnings

Applied some casts, and removed an unused typedef to make the
compiler happy, printing less warnings when building.

17:56 Changeset [36122] by mrowe@apple.com

Build fix.

  • kjs/JSObject.h: Move the inline virtual destructor after a non-inline

virtual function so that the symbol for the vtable is not marked as a
weakly exported symbol.

17:21 Changeset [36121] by eric@webkit.org

Reviewed by Adam Roben.

Build fix for WebKitWin and Chromium

  • platform/FileSystem.h:
15:27 WebKit Team edited by alice.liu@apple.com
Added accessibility to Beth's and my sections (diff)
15:17 Changeset [36120] by eric@webkit.org

Reviewed by Darin Adler.

Try to make Chromium compile with ToT:

  • Wrap a few places which depend on KJS:: in #if USE(JSC)
  • Include some windows forward declarations
  • dom/Node.h:
  • page/Console.h:
  • page/animation/CompositeAnimation.h:
  • platform/FileSystem.h:
  • platform/graphics/Image.h:
  • platform/text/AtomicString.h:
  • platform/text/String.cpp:
  • rendering/style/RenderStyle.h:
15:08 Changeset [36119] by dino@apple.com

2008-09-04 Dean Jackson <dino@apple.com>

Updates to draft specifications.

Animations

  • Keyframes must provide 0% and 100% to be valid <rdar://problem/6165732> [animations] Spec should say what happens if you omit the 0% or 100% keyframe
  • Mention that keyframes can be specified in any order <rdar://problem/6165728> [animations] Spec should say that keyframes can be in any order (It actually already said this, but I made it more clear)
  • Keyframe names must be IDENT not STRING <rdar://problem/6164640> [animations] should we allow quoted animation names

Transforms

  • Change transform operation values in CSSTransformValue - splitting 2d and 3d.
  • Removed definition of <angle> - now reference CSS Values and Units consequence is that rotations now support "turn" units (feel free to turn it up to 11) <rdar://problem/6177272> [transforms] Should support "turns" as a rotation unit
  • Added exception to CSSMatrix setMatrixValue() and inverse() methods <rdar://problem/6160283> [transforms] Specify error reporting for WebKitCSSMatrix
  • Added getCSSMatrix() method to CSSTransformValue
  • Added Table of Contents to Transforms
  • skewZ() transform function removed. It makes no sense.
  • Definition for skew() transform function was missing
  • Also added a new CSSTransformValue CSS_SKEW <rdar://problem/6137414> [transforms] skew() function definition is missing
  • Removed mention of transitions when discussion keyframes rule <rdar://problem/6103072> [animations] CSS Animation spec mentions transition keyframes
14:52 Changeset [36118] by hyatt@apple.com

Add support for runtime switchability of the RenderTheme.

14:51 Changeset [36117] by darin@apple.com

2008-09-05 Darin Adler <darin@apple.com>

Reviewed by Sam Weinig.

1.011x as fast on SunSpider overall
1.028x as fast on SunSpider string tests

For small strings, use a loop rather than calling memcpy. The loop can
be faster because there's no function call overhead, and because it can
assume the pointers are aligned instead of checking that. Currently the
threshold is set at 20 characters, based on some testing on one particular
computer. Later we can tune this for various platforms by setting
USTRING_COPY_CHARS_INLINE_CUTOFF appropriately, but it does no great harm
if not perfectly tuned.

  • kjs/ustring.cpp: (KJS::overflowIndicator): Removed bogus const. (KJS::maxUChars): Ditto. (KJS::copyChars): Added. (KJS::UString::Rep::createCopying): Call copyChars instead of memcpy. Also eliminated need for const_cast. (KJS::UString::expandPreCapacity): Ditto. (KJS::concatenate): Ditto. (KJS::UString::spliceSubstringsWithSeparators): Ditto. (KJS::UString::append): Ditto.
14:09 Changeset [36116] by mrowe@apple.com

New branch.

11:52 Changeset [36115] by antti@apple.com

2008-09-05 Antti Koivisto <antti@apple.com>

Qt build fix.

  • svg/SVGFEImageElement.cpp: (WebCore::SVGFEImageElement::build):
11:15 Changeset [36114] by darin@apple.com

Updated some of the ChangeLog files to use the full 64-bit universal version of my name.

10:52 Changeset [36113] by kmccullough@apple.com

2008-09-05 Kevin McCullough <kmccullough@apple.com>

Reviewed by Sam and Alexey.

Make the profiler work with a null exec state. This will allow other
applications start the profiler to get DTrace probes going without
needing a WebView.

  • ChangeLog:
  • profiler/ProfileGenerator.cpp: (KJS::ProfileGenerator::ProfileGenerator): (KJS::ProfileGenerator::willExecute): (KJS::ProfileGenerator::didExecute):
  • profiler/Profiler.cpp: (KJS::Profiler::startProfiling): (KJS::Profiler::stopProfiling): (KJS::dispatchFunctionToProfiles):
08:33 Changeset [36112] by aroben@apple.com

2008-09-05 Dirk Schulze <vbs85@gmx.de>

Gtk build fix

  • GNUmakefile.am:
03:36 Changeset [36111] by antti@apple.com

2008-09-05 Antti Koivisto <antti@apple.com>

Another build fix.

  • svg/SVGFEImageElement.cpp: (WebCore::SVGFEImageElement::notifyFinished):
03:03 Changeset [36110] by antti@apple.com

2008-09-05 Antti Koivisto <antti@apple.com>

Build fixes.


  • WebCore.xcodeproj/project.pbxproj:
  • svg/graphics/filters/SVGFEImage.cpp: (WebCore::FEImage::cachedImage):
02:28 Changeset [36109] by antti@apple.com

2008-09-05 Antti Koivisto <antti@apple.com>

Reviewed by Darin.

Most of the implementation for https://bugs.webkit.org/show_bug.cgi?id=17998
When a resource is cached locally, WebKit should follow RFC 2616 "Specific end-to-end revalidation" instead of "Unspecified end-to-end revalidation"

Implement HTTP 1.1 "Specific end-to-end revalidation" for WebCore memory cache. This patch does
not yet enable it for the biggest use case, reloading. However it is good for general browsing as
well. Doing this in WebCore level as opposed to relying on disk cache has big benefit that
we avoid re-decoding resources, especially images.


To be exact the enabled case is not actually the "Specific end-to-end revalidation" since it does not include
CacheControl: max-age=0 header. That would be added in reload case.


The approach for revalidation is to kick the original resource out from the memory cache
and create a new CachedResource that represents the revalidation request. In case
we get 304 back for the request we put the original resource back to the cache, update
its expiration date and switch the clients registered to revalidation resource to be
clients of the original resource.


All heap allocated CachedImage pointers now use CachedResourceHandle<CachedImage> (and so on) instead.
This allows updating the handles to point to the original resource when the revalidation succeeds. It
also acts as refcounting smart pointer.

  • WebCore.pro:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSFontFaceSource.h:
  • css/CSSImportRule.h:
  • dom/Clipboard.h: (WebCore::Clipboard::dragImage):
  • dom/ProcessingInstruction.h:
  • dom/ScriptElement.h:
  • dom/XMLTokenizer.cpp: (WebCore::XMLTokenizer::isWaitingForScripts):
  • dom/XMLTokenizer.h:
  • html/HTMLImageLoader.cpp: (WebCore::HTMLImageLoader::setImage): (WebCore::HTMLImageLoader::updateFromElement): (WebCore::HTMLImageLoader::notifyFinished):
  • html/HTMLImageLoader.h: (WebCore::HTMLImageLoader::image):
  • html/HTMLLinkElement.h:
  • html/HTMLTokenizer.cpp: (WebCore::HTMLTokenizer::reset): (WebCore::HTMLTokenizer::scriptHandler): (WebCore::HTMLTokenizer::notifyFinished):
  • html/HTMLTokenizer.h:
  • loader/Cache.cpp: (WebCore::Cache::revalidateResource): (WebCore::Cache::revalidationSucceeded): (WebCore::Cache::revalidationFailed):
  • loader/Cache.h:
  • loader/CachedResource.cpp: (WebCore::CachedResource::CachedResource): (WebCore::CachedResource::~CachedResource): (WebCore::CachedResource::isExpired): (WebCore::CachedResource::setResponse): (WebCore::CachedResource::deleteIfPossible): (WebCore::CachedResource::setResourceToRevalidate): (WebCore::CachedResource::clearResourceToRevalidate): (WebCore::CachedResource::switchClientsToRevalidatedResource): (WebCore::CachedResource::canUseCacheValidator): (WebCore::CachedResource::mustRevalidate):
  • loader/CachedResource.h: (WebCore::CachedResource::canDelete): (WebCore::CachedResource::registerHandle): (WebCore::CachedResource::unregisterHandle): (WebCore::CachedResource::isCacheValidator): (WebCore::CachedResource::resourceToRevalidate): (WebCore::CachedResource::setExpirationDate):
  • loader/CachedResourceHandle.cpp: Added. (WebCore::CachedResourceHandleBase::setResource):
  • loader/CachedResourceHandle.h: Added. (WebCore::CachedResourceHandleBase::~CachedResourceHandleBase): (WebCore::CachedResourceHandleBase::get): (WebCore::CachedResourceHandleBase::operator!): (WebCore::CachedResourceHandleBase::operator UnspecifiedBoolType): (WebCore::CachedResourceHandleBase::CachedResourceHandleBase): (WebCore::CachedResourceHandleBase::operator=): (WebCore::CachedResourceHandle::CachedResourceHandle): (WebCore::CachedResourceHandle::get): (WebCore::CachedResourceHandle::operator->): (WebCore::CachedResourceHandle::operator=): (WebCore::CachedResourceHandle::operator==): (WebCore::CachedResourceHandle::operator!=): (WebCore::operator==): (WebCore::operator!=):
  • loader/DocLoader.cpp: (WebCore::DocLoader::checkForReload):
  • loader/UserStyleSheetLoader.h:
  • loader/loader.cpp: (WebCore::Loader::Host::servePendingRequests): (WebCore::Loader::Host::didFinishLoading): (WebCore::Loader::Host::didFail): (WebCore::Loader::Host::didReceiveResponse): (WebCore::Loader::Host::didReceiveData):
  • page/EventHandler.cpp: (WebCore::EventHandler::selectCursor):
  • rendering/RenderImage.cpp: (WebCore::RenderImage::setCachedImage): (WebCore::RenderImage::imageChanged):
  • rendering/RenderImage.h: (WebCore::RenderImage::cachedImage): (WebCore::RenderImage::imagePtr):
  • rendering/style/RenderStyle.h:
  • rendering/style/StyleCachedImage.h: (WebCore::StyleCachedImage::data): (WebCore::StyleCachedImage::cachedImage):
  • svg/SVGFEImageElement.h:
  • svg/graphics/filters/SVGFEImage.h:
  • xml/XSLImportRule.h:

09/04/08:

21:58 Changeset [36108] by beidson@apple.com

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

Reviewed by Mitz

<rdar://problem/6180236> - Safari times out connections after 1 or 2 minutes

A 60-second default timeout was added in http://trac.webkit.org/changeset/17144 in an attempt
to model default NSURLRequest behavior in a cross-platform manner.

Sadly by always enforcing this 60 second timeout, WebCore was stomping over the wishes of any Webkit
client that wished to enforce a much larger default timeout using NSURLRequest API.

Additionally, upon reviewing what all other browsers do, it seems apparent that "no limit" is desirable
behavior on the web and this restores previous Safari/WebKit behavior.

It would be easy to write a layout test for this, but to be effective it would have
to run for at least 61 seconds, which seems insane until will can parallelize run-webkit-tests

  • manual-tests/timeout-test.html: Added.
  • manual-tests/timeout-test.php: Added.
  • platform/network/ResourceRequestBase.h: (WebCore::ResourceRequestBase::ResourceRequestBase): Rename the constant to "unspecifiedTimeoutInterval" and make it UINT_MAX so platforms that do set it have an effective "no timeout." (Windows, for example)
  • platform/network/mac/ResourceRequestMac.mm: (WebCore::ResourceRequest::doUpdatePlatformRequest): If the timeout for this request is "unspecifiedTimeoutInterval", then don't bother setting the timeout using NSURLRequest API, allowing WebKit applications to enforce their own default timeout.
21:26 Changeset [36107] by mitz@apple.com

WebCore:

Reviewed by Beth Dakin.

  • fix <rdar://problem/6198514> Changing a button's opacity triggers relayout

Test: fast/repaint/button-spurious-layout-hint.html

  • rendering/RenderButton.cpp: (WebCore::RenderButton::setStyle): Reset the inner block's style box flex to 0 to avoid getting a spurious layout hint.

LayoutTests:

Reviewed by Beth Dakin.

  • pixel test for <rdar://problem/6198514> Changing a button's opacity triggers relayout
  • fast/repaint/button-spurious-layout-hint.html: Added.
  • platform/mac/fast/repaint/button-spurious-layout-hint-expected.checksum: Added.
  • platform/mac/fast/repaint/button-spurious-layout-hint-expected.png: Added.
  • platform/mac/fast/repaint/button-spurious-layout-hint-expected.txt: Added.
20:11 Changeset [36106] by ggaren@apple.com

2008-09-04 Gavin Barraclough <barraclough@apple.com>

Reviewed by Geoffrey Garen.


Fixed an off-by-one error that would cause the StructureIDChain to
be one object too short.


Can't construct a test case because other factors make this not crash
(yet!).

  • kjs/StructureID.cpp: (KJS::StructureIDChain::StructureIDChain):
18:26 Changeset [36105] by cwzwarich@webkit.org

2008-09-04 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Maciej Stachowiak.

Add a '--args' option to SunSpider, so that we can pass '-j' to TraceMonkey
and '--expose-gc' to V8. Also, rename the '--v8' option to '--v8-suite' and
correct the punctuation in its documentation.

  • sunspider:
16:53 Changeset [36104] by kevino@webkit.org

wx build fixes.

16:27 Changeset [36103] by mitz@apple.com

WebCore:

Reviewed by Mark Rowe.

  • css/CSSGrammar.y:

LayoutTests:

  • css1/color_and_background/invalid_color-expected.txt: Removed.
  • css1/color_and_background/invalid_color.html: Removed.
14:44 Changeset [36102] by mrowe@apple.com

Fix https://bugs.webkit.org/show_bug.cgi?id=20639.
Bug 20639: ENABLE_DASHBOARD_SUPPORT does not need to be a FEATURE_DEFINE

Reviewed by Eric Seidel.

14:25 Changeset [36101] by adele@apple.com

2008-09-04 Adele Peterson <adele@apple.com>

Build fix.

14:00 Changeset [36100] by mrowe@apple.com

Mac build fix.

13:44 Changeset [36099] by eric@webkit.org

Build fix only, no review.

  • dom/XMLTokenizer.cpp: Fix the Chromium merge build by adding a missing header (the Mac files must include it somewhere).
13:26 Changeset [36098] by jmalonzo@webkit.org

2008-09-04 Marco Barisione <marco.barisione@collabora.co.uk>

Reviewed by Eric Seidel.

http://bugs.webkit.org/show_bug.cgi?id=20380
[GTK][AUTOTOOLS] Include autotoolsconfig.h from config.h

  • kjs/config.h: Include the configuration header generated by autotools if available.

2008-09-04 Marco Barisione <marco.barisione@collabora.co.uk>

Reviewed by Eric Seidel.

http://bugs.webkit.org/show_bug.cgi?id=20380
[GTK][AUTOTOOLS] Include autotoolsconfig.h from config.h

  • configure.ac: Rename the configuration header from aconfig.h to autotoolsconfig.h.

2008-09-04 Marco Barisione <marco.barisione@collabora.co.uk>

Reviewed by Eric Seidel.

http://bugs.webkit.org/show_bug.cgi?id=20380
[GTK][AUTOTOOLS] Include autotoolsconfig.h from config.h

  • config.h: Include the configuration header generated by autotools if available.
13:16 Changeset [36097] by mrowe@apple.com

Presto change-o!

11:15 Changeset [36096] by mitz@apple.com

Rubber-stamped by Dave Hyatt.

  • rename CachedResource::allReferencesRemoved() to allClientsRemoved()
  • loader/CachedFont.cpp: (WebCore::CachedFont::allClientsRemoved):
  • loader/CachedFont.h:
  • loader/CachedImage.cpp: (WebCore::CachedImage::allClientsRemoved):
  • loader/CachedImage.h:
  • loader/CachedResource.cpp: (WebCore::CachedResource::removeClient):
  • loader/CachedResource.h: (WebCore::CachedResource::allClientsRemoved):
11:08 Changeset [36095] by cwzwarich@webkit.org

2008-09-04 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Oliver Hunt.

Bug 20616: Incorporate V8 benchmarks in testing
<https://bugs.webkit.org/show_bug.cgi?id=20616>

This is a first attempt at running the V8 benchmarks within SunSpider,
with the --v8 option. The number of iterations is fixed for each
benchmark, and was chosen to make each of the benchmarks run between
500 ms and 600 ms in V8 on my machine, a 2.16 GHz MacBook Pro.

SunSpider:

  • sunspider:
  • tests/LIST-V8: Added.
  • tests/v8-crypto.js: Added.
  • tests/v8-deltablue.js: Added.
  • tests/v8-earley-boyer.js: Added.
  • tests/v8-raytrace.js: Added.
  • tests/v8-richards.js: Added.

WebKitTools:

  • Scripts/run-sunspider:
10:51 Changeset [36094] by kevino@webkit.org

wx buildbot fix. More robust handling of clean when makefiles are not built or are not completely made.

09:10 Changeset [36093] by aroben@apple.com

Make JavaScriptCoreGenerated build first instead of WTF

JavaScriptCoreGenerated does some setup work that we want to happen
before WTF builds.

  • WebKit.vcproj/WebKit.sln: Reversed the dependencies of WTF and JavaScriptCoreGenerated.
09:10 Changeset [36092] by aroben@apple.com

Ignore warning LNK4221 on Windows

This warning is emitted when an object file with no public symbols is
passed to the linker/librarian. This often occurs in WebCore for files
that have been disabled via ENABLE()/USE() macros.

Rubberstamped by Anders Carlsson.

  • win/tools/vsprops/common.vsprops: Ignore warning LNK4221.
09:09 Changeset [36091] by aroben@apple.com

Windows build fix after r36071

We were getting these errors:

error C2356: initialization segment must not change during translation
unit

This was happening because multiple files #included by
DerivedSources.cpp were themselves #including StaticConstructors.h. I
fixed the error by adding header guards to StaticConstructors.h so its
contents will only be included once.

But it's also not a good idea for StaticConstructors.h to end up in
DerivedSources.cpp, since it ends up "polluting" all the source files
we have in there. So I removed all the files that include
StaticConstructors.h and added some preprocessor directives to
DerivedSources.cpp to catch this error in the future.

  • DerivedSources.cpp: Removed the *Names.cpp files, which include StaticConstructors.h, and added some preprocessor directives to make sure we don't end up accidentally including StaticConstructors.h in the future.
  • WebCore.vcproj/WebCore.vcproj: Added the *Names.cpp files.
  • platform/StaticConstructors.h: Added header guards.
09:09 Changeset [36090] by aroben@apple.com

Windows build fix

  • platform/graphics/win/FontPlatformData.h: Added a missing #include of PassRefPtr.h, and corrected the capitalization of RefCounted.h.
  • platform/text/PlatformString.h: Added a missing #include of PassRefPtr.h.
07:24 Changeset [36089] by vestbo@webkit.org

2008-09-04 Tor Arne Vestbø <tavestbo@trolltech.com>

Reviewed by Simon

Fix the QtWebKit build to match changes in r36016

04:44 Changeset [36088] by vestbo@webkit.org

2008-09-04 Tor Arne Vestbø <tavestbo@trolltech.com>

Reviewed by Simon.

Re-enable support for user stylesheets in QtWebKit

QtWebKit now follows the FRAME_LOADS_USER_STYLESHEET
code path, which allows us to keep API support for
loading user style sheets from remote URLs.

As part of the change UserStyleSheetLoader.cpp/h was
moved from WebCore/loader/mac to WebCore/loader.

02:29 Changeset [36087] by mrowe@apple.com

Fix the 64-bit build.

  • VM/CodeBlock.cpp:

(KJS::CodeBlock::printStructureID): Store the instruction offset into an unsigned local
to avoid a warning related to format specifiers.
(KJS::CodeBlock::printStructureIDs): Ditto.

02:14 Changeset [36086] by alp@webkit.org

2008-09-04 Alp Toker <alp@nuanti.com>

Reviewed by Eric.

Remove left-over QT and CAIRO platform checks.

  • html/CanvasRenderingContext2D.cpp:
01:58 Changeset [36085] by mitz@apple.com

Fix typo

01:39 Changeset [36084] by eric@webkit.org

Reviewed by Mark Rowe.

Fix leak of TextMetrix due to over-ref as see on buildbot.

  • html/TextMetrics.h: use adoptRef since RefCounted starts @ refcount 1 instead of 0 now.
01:00 Changeset [36083] by cwzwarich@webkit.org

2008-09-04 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Rubber-stamped by Oliver Hunt.

Correct the spelling of 'entryIndices'.

  • kjs/PropertyMap.cpp: (KJS::PropertyMap::get): (KJS::PropertyMap::getLocation): (KJS::PropertyMap::put): (KJS::PropertyMap::insert): (KJS::PropertyMap::remove): (KJS::PropertyMap::checkConsistency):
  • kjs/PropertyMap.h: (KJS::PropertyMapHashTable::entries): (KJS::PropertyMap::getOffset): (KJS::PropertyMap::putOffset): (KJS::PropertyMap::offsetForTableLocation):
00:26 Changeset [36082] by mitz@apple.com

WebCore:

Reviewed by Dave Hyatt.

  • rendering/RenderBlock.cpp: (WebCore::RenderBlock::layoutOnlyPositionedObjects): In the positioned movement only case, call tryLayoutDoingPositionedMovementOnly() and fall back on doing a full layout if that fails. (WebCore::RenderBlock::layoutPositionedObjects): Ditto.
  • rendering/RenderBox.h: (WebCore::RenderBox::tryLayoutDoingPositionedMovementOnly): Renamed layoutDoingPositionedMovementOnly to this, and made this function check if the width changed. If it did, return, leaving the object dirty. The caller can then call layout(). The width can change even in the "positioned movement only" case if the object is shrink-to-fit and the available width constraint is met. (This was the case in the bug).
  • rendering/RenderObject.h: (WebCore::RenderObject::tryLayoutDoingPositionedMovementOnly): Renamed layoutDoingPositionedMovementOnly() to this.

LayoutTests:

Reviewed by Dave Hyatt.

  • fast/block/positioning/move-with-auto-width.html: Added.
  • platform/mac/fast/block/positioning/move-with-auto-width-expected.checksum: Added.
  • platform/mac/fast/block/positioning/move-with-auto-width-expected.png: Added.
  • platform/mac/fast/block/positioning/move-with-auto-width-expected.txt: Added.
00:21 Changeset [36081] by ggaren@apple.com

JavaScriptCore:

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

Reviewed by Cameron Zwarich.


Fixed <rdar://problem/6193925> REGRESSION: Crash occurs at
KJS::Machine::privateExecute() when attempting to load my Mobile Gallery
(http://www.me.com/gallery/#home)


also


https://bugs.webkit.org/show_bug.cgi?id=20633 Crash in privateExecute
@ cs.byu.edu


The underlying problem was that we would cache prototype properties
even if the prototype was a dictionary.


The fix is to transition a prototype back from dictionary to normal
status when an opcode caches access to it. (This is better than just
refusing to cache, since a heavily accessed prototype is almost
certainly not a true dictionary.)

  • VM/Machine.cpp: (KJS::Machine::tryCacheGetByID):
  • kjs/JSObject.h:

LayoutTests:

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

Reviewed by Cameron Zwarich.


Test for <rdar://problem/6193925> REGRESSION: Crash occurs at
KJS::Machine::privateExecute() when attempting to load my Mobile Gallery
(http://www.me.com/gallery/#home)


also


https://bugs.webkit.org/show_bug.cgi?id=20633 Crash in privateExecute
@ cs.byu.edu

  • fast/js/pic/dictionary-prototype-expected.txt: Added.
  • fast/js/pic/dictionary-prototype.html: Added.

09/03/08:

23:31 Changeset [36080] by eric@webkit.org

No review, build fix only.

Attempt to fix the Qt build.

  • WebCore.pro: add page/animation to include path
23:11 Changeset [36079] by alp@webkit.org

2008-09-03 Alp Toker <alp@nuanti.com>

Build fix following r36073. Include config.h where necessary.

  • WebCoreSupport/PasteboardHelperGtk.cpp:
  • webkit/webkitversion.cpp:
20:46 Changeset [36078] by mrowe@apple.com

More Mac build fixes.

Set ENABLE_DASHBOARD_SUPPORT when building for Mac via build-webkit.
Also set ENABLE_CROSS_DOCUMENT_MESSAGING in order to match the
default configuration specified in the .xcconfig files.

20:29 Changeset [36077] by mrowe@apple.com

Touch an input file to force a derived file to be rebuilt.

20:20 Changeset [36076] by mrowe@apple.com

Fix the Mac build.

18:59 Changeset [36075] by mrowe@apple.com

Update layout test results after recent canvas changes.

  • fast/canvas/canvas-invalid-fillstyle-expected.txt:
  • fast/canvas/canvas-invalid-strokestyle-expected.txt:
  • fast/canvas/drawImage-with-negative-source-destination-expected.txt:
  • fast/dom/Window/window-properties-expected.txt:
18:32 Changeset [36074] by eric@webkit.org

Reviewed by Sam.

Clean up Platform.h and add PLATFORM(CHROMIUM), PLATFORM(SKIA) and USE(V8_BINDINGS)

  • Configurations/WebCore.xcconfig: add missing ENABLE_*
  • config.h: add rules for V8_BINDINGS
18:32 Changeset [36073] by eric@webkit.org

Reviewed by Sam.

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

Add #if USE(JSC) around KJS dependencies
Remove !USE(JAVASCRIPTCORE_BINDINGS) support for 3 reasons:

  1. Most platforms have it on anyway
  2. V8 is going to want to share some of that code
  3. Those platforms which want it off, should have a separate file instead of an #ifdef in our .cpp
  • bindings/js/JSPluginElementFunctions.cpp: remove !USE(JAVASCRIPTCORE_BINDINGS) support
  • config.h: change JAVASCRIPTCORE_BINDINGS to JSC and add USE(V8)
  • html/HTMLAppletElement.cpp: remove USE(JAVASCRIPTCORE_BINDINGS) wrappers
  • html/HTMLAppletElement.h: remove USE(JAVASCRIPTCORE_BINDINGS) wrappers
  • html/HTMLEmbedElement.cpp: remove USE(JAVASCRIPTCORE_BINDINGS) wrappers
  • html/HTMLEmbedElement.h: remove USE(JAVASCRIPTCORE_BINDINGS) wrappers
  • html/HTMLObjectElement.cpp: remove USE(JAVASCRIPTCORE_BINDINGS) wrappers
  • html/HTMLObjectElement.h: remove USE(JAVASCRIPTCORE_BINDINGS) wrappers
  • html/HTMLPlugInElement.cpp: replace USE(JAVASCRIPTCORE_BINDINGS) with USE(JSC) where needed
  • html/HTMLPlugInElement.h: replace USE(JAVASCRIPTCORE_BINDINGS) with USE(JSC) where needed
  • platform/text/AtomicString.cpp: add USE(JSC)
  • platform/text/AtomicString.h: add USE(JSC)
  • platform/text/PlatformString.h: add USE(JSC)
  • platform/text/String.cpp: add USE(JSC)
  • platform/text/StringImpl.cpp: add USE(JSC)
  • platform/text/StringImpl.h: add USE(JSC)
17:10 Changeset [36072] by mrowe@apple.com

Tidy up some ChangeLog entries.

16:46 Changeset [36071] by mrowe@apple.com

2008-09-03 Dean McNamee <deanm@chromium.org>

Reviewed by Darin Adler.

Fix https://bugs.webkit.org/show_bug.cgi?id=20511
Bug 20511: Remove static initializers on Windows

Avoid static initializers on Windows by forcing Visual C++ to put
all static initializers in a code segment that is never executed.

  • config.h:
  • css/MediaFeatureNames.cpp:
  • dom/EventNames.cpp:
  • dom/QualifiedName.cpp:
  • dom/make_names.pl:
  • platform/StaticConstructors.h:
  • platform/text/AtomicString.cpp:
16:40 Changeset [36070] by mrowe@apple.com

2008-09-03 Dirk Schulze <vbs85@gmx.de>

Reviewed by Dave Hyatt.

Make FontCairo draw TextStroke and TextFill separately.

[CAIRO] draw TextFill and TextStroke separately.
https://bugs.webkit.org/show_bug.cgi?id=20631

  • platform/graphics/cairo/FontCairo.cpp: (WebCore::Font::drawGlyphs):
16:34 Changeset [36069] by mrowe@apple.com

2008-09-03 Peter Kasting <zerodpx@gmail.com>

Reviewed by Dave Hyatt.

https://bugs.webkit.org/show_bug.cgi?id=19663
Account for paint and timer lag when animating images. Also pretend
that images whose animations were paused (by becoming invisible)
continued to animate, by "catching up" to the correct frame when they're
shown again.

  • platform/graphics/BitmapImage.cpp: (WebCore::BitmapImage::BitmapImage): (WebCore::BitmapImage::startAnimation): (WebCore::BitmapImage::advanceAnimation): (WebCore::BitmapImage::internalAdvanceAnimation): (WebCore::BitmapImage::notifyObserverAndTrimDecodedData):
  • platform/graphics/BitmapImage.h:
  • platform/graphics/cairo/ImageCairo.cpp: (WebCore::BitmapImage::draw):
  • platform/graphics/cg/ImageCG.cpp: (WebCore::BitmapImage::draw):
  • platform/graphics/qt/ImageQt.cpp: (WebCore::BitmapImage::draw):
  • platform/graphics/wx/ImageWx.cpp: (WebCore::BitmapImage::draw):
14:53 Changeset [36068] by kmccullough@apple.com

JavaScriptCore:

2008-09-03 Kevin McCullough <kmccullough@apple.com>

Reviewed by Tim.

Remove the rest of the "zombie" code from the profiler.

  • There is no longer a need for the ProfilerClient callback mechanism.
  • API/JSProfilerPrivate.cpp: (JSStartProfiling):
  • JavaScriptCore.exp:
  • profiler/HeavyProfile.h:
  • profiler/ProfileGenerator.cpp: (KJS::ProfileGenerator::create): (KJS::ProfileGenerator::ProfileGenerator):
  • profiler/ProfileGenerator.h: (KJS::ProfileGenerator::profileGroup):
  • profiler/Profiler.cpp: (KJS::Profiler::startProfiling): (KJS::Profiler::stopProfiling): Immediately return the profile when stopped instead of using a callback.
  • profiler/Profiler.h:
  • profiler/TreeProfile.h:

WebCore:

2008-09-03 Kevin McCullough <kmccullough@apple.com>

Reviewed by Tim.

Remove the rest of the "zombie" code from the profiler.

  • There is no longer a need for the ProfilerClient callback mechanism.
  • page/Console.cpp: (WebCore::Console::Console): (WebCore::Console::profile): (WebCore::Console::profileEnd): Move the variables from the header to here since we don't have to wait for a callback to use them.
  • page/Console.h:
  • page/InspectorController.cpp: (WebCore::InspectorController::startUserInitiatedProfiling): (WebCore::InspectorController::stopUserInitiatedProfiling):
  • page/InspectorController.h:
14:43 Changeset [36067] by adachan@apple.com

Windows build fix.

  • WebCore.vcproj/WebCore.vcproj: Added JSWebKitCSSKeyframeRule.cpp and JSWebKitCSSKeyframesRule.cpp to the project.
14:15 Changeset [36066] by dino@apple.com

2008-09-01 Dean Jackson <dino@apple.com>

Reviewed by Dave Hyatt.

https://bugs.webkit.org/show_bug.cgi?id=20594
Add DOM interfaces for WebKitCSSKeyframeRule
and WebKitCSSKeyframesRule.

TEST: LayoutTests/css3/keyframes-rule.html

  • css/WebKitCSSKeyframeRule.idl: Added
  • css/WebKitCSSKeyframesRule.idl: Added
  • bindings/js/JSCSSRuleCustom.cpp: (WebCore::toJS):

Add return of new JS Keyframe rules

  • bindings/objc/DOMInternal.h:

Include new internal header

  • DerivedSources.make:
  • GNUmakefile.am:
  • WebCore.pro:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • WebCoreSources.bkl:

Build configs for new files

13:30 Changeset [36065] by aroben@apple.com

Windows build fix

  • DerivedSources.cpp: Add JSTextMetrics.cpp to fix the build.
  • WebCore.vcproj/WebCore.vcproj: Add JSTextMetrics.h for convenience/consistency.
13:13 Changeset [36064] by adele@apple.com

2008-09-03 Adele Peterson <adele@apple.com>

Build fix.

  • WebCore.vcproj/WebCore.vcproj:
12:06 Changeset [36063] by hyatt@apple.com
12:02 Changeset [36062] by adele@apple.com

2008-09-03 Adele Peterson <adele@apple.com>

Build fix.

  • wtf/win/MainThreadWin.cpp:
11:32 Changeset [36061] by hyatt@apple.com

WebCore:

2008-09-03 David Hyatt <hyatt@apple.com>

Fix for bug 18203, right floats should be allowed to overflow past the left border edge.

Reviewed by Darin (ages ago)

Added fast/block/float/clamped-right-float.html

  • rendering/RenderBlock.cpp: (WebCore::RenderBlock::positionNewFloats):

LayoutTests:

2008-09-03 David Hyatt <hyatt@apple.com>

Fix for bug 18203.

Reviewed by Darin (ages ago).

  • fast/block/float/clamped-right-float.html: Added.
  • platform/mac/fast/block/float/clamped-right-float-expected.checksum: Added.
  • platform/mac/fast/block/float/clamped-right-float-expected.png: Added.
  • platform/mac/fast/block/float/clamped-right-float-expected.txt: Added.
11:13 Changeset [36060] by hyatt@apple.com

WebCore:

2008-09-02 David Hyatt <hyatt@apple.com>

Add support for canvas text drawing APIs.

Reviewed by olliej

Tests added as fast/canvas/canvas-text-*.html

  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSCanvasRenderingContext2DCustom.cpp: (WebCore::JSCanvasRenderingContext2D::fillText): (WebCore::JSCanvasRenderingContext2D::strokeText):
  • css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::initForStyleResolve): (WebCore::CSSStyleSelector::applyPropertyToStyle):
  • css/CSSStyleSelector.h:
  • html/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::State::State): (WebCore::CanvasRenderingContext2D::font): (WebCore::CanvasRenderingContext2D::setFont): (WebCore::CanvasRenderingContext2D::textAlign): (WebCore::CanvasRenderingContext2D::setTextAlign): (WebCore::CanvasRenderingContext2D::textBaseline): (WebCore::CanvasRenderingContext2D::setTextBaseline): (WebCore::CanvasRenderingContext2D::fillText): (WebCore::CanvasRenderingContext2D::strokeText): (WebCore::CanvasRenderingContext2D::measureText): (WebCore::CanvasRenderingContext2D::drawTextInternal): (WebCore::CanvasRenderingContext2D::accessFont):
  • html/CanvasRenderingContext2D.h:
  • html/CanvasRenderingContext2D.idl:
  • html/TextMetrics.h: Added. (WebCore::TextMetrics::create): (WebCore::TextMetrics::width): (WebCore::TextMetrics::setWidth): (WebCore::TextMetrics::TextMetrics):
  • html/TextMetrics.idl: Added.
  • platform/graphics/Font.cpp: (WebCore::Font::lineGap):
  • platform/graphics/Font.h:
  • platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::drawBidiText):
  • platform/graphics/GraphicsContext.h:
  • platform/graphics/GraphicsTypes.cpp: (WebCore::textAlignName): (WebCore::parseTextAlign): (WebCore::textBaselineName): (WebCore::parseTextBaseline):
  • platform/graphics/GraphicsTypes.h: (WebCore::):

LayoutTests:

2008-09-02 David Hyatt <hyatt@apple.com>

Add support for the canvas text APIs.

Reviewed by olliej

  • fast/canvas/canvas-text-alignment.html: Added.
  • fast/canvas/canvas-text-baseline.html: Added.
  • platform/mac/fast/canvas/canvas-text-alignment-expected.checksum: Added.
  • platform/mac/fast/canvas/canvas-text-alignment-expected.png: Added.
  • platform/mac/fast/canvas/canvas-text-alignment-expected.txt: Added.
  • platform/mac/fast/canvas/canvas-text-baseline-expected.checksum: Added.
  • platform/mac/fast/canvas/canvas-text-baseline-expected.png: Added.
  • platform/mac/fast/canvas/canvas-text-baseline-expected.txt: Added.
10:37 Changeset [36059] by sullivan@apple.com

2008-09-03 John Sullivan <sullivan@apple.com>

Fixed <rdar://problem/6193022> <rdar://problem/6193022> Crash occurs at WebCore::AnimationBase::propertiesEqual () after certain steps

Fixed by Darin, reviewed by me

  • page/animation/AnimationBase.cpp: (WebCore::AnimationBase::propertiesEqual): added ensurePropertyMap() to this static function (WebCore::AnimationBase::getPropertyAtIndex): ditto (WebCore::AnimationBase::getNumProperties): ditto
10:35 Changeset [36058] by kmccullough@apple.com

JavaScriptCore:

2008-09-02 Kevin McCullough <kmccullough@apple.com>

Reviewed by Darin and Tim.

Remove most of the "zombie" mode from the profiler. Next we will need
to remove the client callback mechanism in profiles.

  • This simplifies the code, leverages the recent changes I've made in getting line numbers from SquirrelFish, and is a slight speed improvement on SunSpider.
  • Also the "zombie" mode was a constant source of odd edge cases and obscure bugs so it's good to remove since all of its issues may not have been found.
  • API/JSProfilerPrivate.cpp: No need to call didFinishAllExecution() any more. (JSEndProfiling):
  • JavaScriptCore.exp: Export the new signature of retrieveLastCaller()
  • VM/Machine.cpp: (KJS::Machine::execute): No need to call didFinishAllExecution() any more. (KJS::Machine::retrieveCaller): Now operates on InternalFunctions now since the RegisterFile is no longer guaranteeded to store only JSFunctions (KJS::Machine::retrieveLastCaller): Now also retrieve the function's name (KJS::Machine::callFrame): A result of changing retrieveCaller()
  • VM/Machine.h:
  • VM/Register.h:
  • kjs/JSGlobalObject.cpp: (KJS::JSGlobalObject::~JSGlobalObject):
  • kjs/nodes.h:
  • profiler/ProfileGenerator.cpp: (KJS::ProfileGenerator::create): Now pass the original exec and get the global exec and client when necessary. We need the original exec so we can have the stack frame where profiling started. (KJS::ProfileGenerator::ProfileGenerator): ditto. (KJS::ProfileGenerator::addParentForConsoleStart): This is where the parent to star of the profile is added, if there is one. (KJS::ProfileGenerator::willExecute): Remove uglyness! (KJS::ProfileGenerator::didExecute): Ditto! (KJS::ProfileGenerator::stopProfiling): (KJS::ProfileGenerator::removeProfileStart): Use a better way to find and remove the function we are looking for. (KJS::ProfileGenerator::removeProfileEnd): Ditto.
  • profiler/ProfileGenerator.h: (KJS::ProfileGenerator::client):
  • profiler/ProfileNode.cpp: (KJS::ProfileNode::removeChild): Add a better way to remove a child from a ProfileNode. (KJS::ProfileNode::stopProfiling): (KJS::ProfileNode::debugPrintData): Modified a debug-only diagnostic function to be sane.
  • profiler/ProfileNode.h:
  • profiler/Profiler.cpp: Change to pass the original exec state. (KJS::Profiler::startProfiling): (KJS::Profiler::stopProfiling): (KJS::Profiler::willExecute): (KJS::Profiler::didExecute): (KJS::Profiler::createCallIdentifier):
  • profiler/Profiler.h:

WebCore:

2008-09-03 Kevin McCullough <kmccullough@apple.com>

Reviewed by Darin and Tim.

Remove most of the "zombie" mode from the profiler. Next we will need
to remove the client callback mechanism in profiles.

  • These changes are a result of changes to JSCore.
  • manual-tests/inspector/profiler-test-nested-start-and-stop-profiler.html:
  • page/Console.cpp: (WebCore::retrieveLastCaller): (WebCore::Console::profileEnd):
  • page/InspectorController.cpp: (WebCore::InspectorController::stopUserInitiatedProfiling):
09:57 Changeset [36057] by adele@apple.com

WebCore:

2008-09-03 Adele Peterson <adele@apple.com>

Reviewed by Darin Adler.

Test: fast/forms/search-display-none-cancel-button.html

Allow display:none to work on a search field's cancel button. Prepare for adding more style-ability for the results button too.

  • css/html4.css: Set display:inline-block for these buttons. Now they can be overridden by a web author.
  • rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::setStyle): Add nil checks for the button renderers. (WebCore::RenderTextControl::createResultsButtonStyle): Don't set the display explicitly. This is now done in html4.css. (WebCore::RenderTextControl::createCancelButtonStyle): ditto. (WebCore::RenderTextControl::createSubtreeIfNeeded): Reorganize this code so our complicated way of adding shadow nodes is abstracted out into the TextControlInnerElement class. (WebCore::RenderTextControl::updateFromElement): Added nil checks for the button renderers. (WebCore::RenderTextControl::subtreeHasChanged): ditto. (WebCore::RenderTextControl::calcHeight): ditto. (WebCore::RenderTextControl::nodeAtPoint): ditto. (WebCore::RenderTextControl::layout): ditto. (WebCore::RenderTextControl::calcPrefWidths): ditto. (WebCore::RenderTextControl::clientPaddingLeft): ditto. (WebCore::RenderTextControl::clientPaddingRight): ditto.
  • rendering/TextControlInnerElements.cpp: (WebCore::RenderTextControlInnerBlock::RenderTextControlInnerBlock): Moved from RenderTextControl.cpp. (WebCore::RenderTextControlInnerBlock::nodeAtPoint): ditto. (WebCore::TextControlInnerElement::attachInnerElement): Added. This does all the separate steps of attaching a shadow node that used to be repeated in RenderTextControl::createSubtreeIfNeeded for each element. (WebCore::TextControlInnerTextElement::createRenderer): Added. Creates a RenderTextControlInnerBlock.
  • rendering/TextControlInnerElements.h:

LayoutTests:

2008-09-03 Adele Peterson <adele@apple.com>

Reviewed by Darin Adler.

Test that display:none works on a search field's cancel button.

  • fast/forms/search-display-none-cancel-button.html: Added.
  • platform/mac/fast/forms/search-display-none-cancel-button-expected.checksum: Added.
  • platform/mac/fast/forms/search-display-none-cancel-button-expected.png: Added.
  • platform/mac/fast/forms/search-display-none-cancel-button-expected.txt: Added.
09:37 Changeset [36056] by ap@webkit.org

Reviewed by Darin Adler.

Implement callOnMainThreadAndWait().

This will be useful when a background thread needs to perform UI calls synchronously
(e.g. an openDatabase() call cannot return until the user answers to a confirmation dialog).

  • wtf/MainThread.cpp: (WTF::FunctionWithContext::FunctionWithContext): Added a ThreadCondition member. When non-zero, the condition is signalled after the function is called. (WTF::mainThreadFunctionQueueMutex): Renamed from functionQueueMutex, sinc this is no longer static. Changed to be initialized from initializeThreading() to avoid lock contention. (WTF::initializeMainThread): On non-Windows platforms, just call mainThreadFunctionQueueMutex. (WTF::dispatchFunctionsFromMainThread): Signal synchronous calls when done. (WTF::callOnMainThread): Updated for functionQueueMutex rename. (WTF::callOnMainThreadAndWait): Added.
  • wtf/MainThread.h: Added callOnMainThreadAndWait(); initializeMainThread() now exists on all platforms.
  • wtf/win/MainThreadWin.cpp: (WTF::initializeMainThread): Added a callOnMainThreadAndWait() call to initialize function queue mutex.
  • wtf/ThreadingGtk.cpp: (WTF::initializeThreading):
  • wtf/ThreadingPthreads.cpp: (WTF::initializeThreading):
  • wtf/ThreadingQt.cpp: (WTF::initializeThreading): Only initialize mainThreadIdentifier on non-Darwin platforms. It was not guaranteed to be accurate on Darwin.
09:20 Changeset [36055] by ggaren@apple.com

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

Reviewed by Darin Adler.


Use isUndefinedOrNull() instead of separate checks for each in op_eq_null
and op_neq_null.

  • VM/Machine.cpp: (KJS::Machine::privateExecute):
01:08 Changeset [36054] by ap@webkit.org

Reviewed by Maciej.

Elminate SQLiteAuthorizer class.

  • WebCore.xcodeproj/project.pbxproj:
  • WebCore.vcproj/WebCore.vcproj:
  • GNUmakefile.am Removed SQLiteAuthorizer.h.
  • platform/sql/SQLiteAuthorizer.cpp:
  • platform/sql/SQLiteAuthorizer.h: Removed.
  • platform/sql/SQLiteDatabase.cpp: (WebCore::SQLiteDatabase::authorizerFunction): (WebCore::SQLiteDatabase::setAuthorizer):
  • platform/sql/SQLiteDatabase.h:
  • storage/DatabaseAuthorizer.h: (WebCore::DatabaseAuthorizer::create): (WebCore::DatabaseAuthorizer::createView): (WebCore::DatabaseAuthorizer::createTempView): (WebCore::DatabaseAuthorizer::dropView): (WebCore::DatabaseAuthorizer::dropTempView): (WebCore::DatabaseAuthorizer::allowSelect): (WebCore::DatabaseAuthorizer::allowReindex): Merge SQLiteAuthorizer and DatabaseAuthorizer, as keeping them separate serves no purpose.
00:09 Changeset [36053] by mrowe@apple.com

Move the backslash to the right place.

00:05 Changeset [36052] by mrowe@apple.com

2008-09-03 Dirk Schulze <vbs85@gmx.de>

Reviewed and tweaked by Mark Rowe.

WebKitGtk build fix.

  • GNUmakefile.am:
  • page/animation/AnimationController.h:

09/02/08:

23:59 Changeset [36051] by mrowe@apple.com

2008-09-02 Robert Blaut <webkit@blaut.biz>

Reviewed by Geoff Garen.

Fix for <https://bugs.webkit.org/show_bug.cgi?id=16913>
Misplaced elements should not close DL lists.

Test: fast/invalid/test-case-tr-th-td-should-not-close-dl-list.html

  • html/HTMLParser.cpp: (WebCore::HTMLParser::handleError):

2008-09-02 Robert Blaut <webkit@blaut.biz>

Reviewed by Geoff Garen.

Test for <https://bugs.webkit.org/show_bug.cgi?id=16913>
Misplaced elements should not close DL lists.

  • fast/invalid/test-case-tr-th-td-should-not-close-dl-list-expected.txt: Added.
  • fast/invalid/test-case-tr-th-td-should-not-close-dl-list.html: Added.
  • platform/mac/fast/invalid/missing-dl-end-tag-expected.checksum:
  • platform/mac/fast/invalid/missing-dl-end-tag-expected.png:
  • platform/mac/fast/invalid/missing-dl-end-tag-expected.txt:
  • platform/mac/fast/invalid/missing-dt-end-tag-expected.checksum:
  • platform/mac/fast/invalid/missing-dt-end-tag-expected.png:
  • platform/mac/fast/invalid/missing-dt-end-tag-expected.txt:
23:51 Changeset [36050] by mrowe@apple.com

2008-09-02 Glenn Wilson <wilsong@gmail.com>

Reviewed by Darin Adler.

Fix for <https://bugs.webkit.org/show_bug.cgi?id=15360>
Bug 15360: color:#{predefined colorName} is treated as colorName in Safari

We would inappropriately interpret and apply an invalid CSS "color" property
when the value is a predefined color preceded by a '#' symbol. For example,
style="color:#gray;" would apply the color gray when it should not.

In the bison template, "hexcolor" was defined as both "HEX maybe_space" OR "IDENT maybe_space".
This caused identifiers not fitting the appropriate hex format but preceded by a '#' to be
interpreted as a valid color (CSSPrimitiveValue::CSS_PARSER_HEXCOLOR), when it was really just
an ignorable token.

To correct this, "IDENT maybe_space" was removed from "hexcolor" and added under "term" as
'#' IDENT maybe_space, which is then processed as a CSSPrimitiveValue::CSS_STRING instead of
CSSPrimitiveValue::CSS_PARSER_HEXCOLOR.

Test: css1/color_and_background/invalid_color.html

  • css/CSSGrammar.y:

2008-09-02 Glenn Wilson <wilsong@gmail.com>

Reviewed by Darin Adler.

Test for <https://bugs.webkit.org/show_bug.cgi?id=15360>
Bug 15360: color:#{predefined colorName} is treated as colorName in Safari

Added new test to verify that CSS "color" attributes with '#'-preceeded predefined color names
are not rendered in those colors.

  • css1/color_and_background/invalid_color.html: Added.
  • css1/color_and_background/invalid_color-expected.txt: Added.
23:38 Changeset [36049] by mrowe@apple.com

Build fix. Remove the now unnecessary check for "4" in the user agent string.

Reviewed by Tim Hatcher.

  • WebKit.xcodeproj/project.pbxproj:
23:28 Changeset [36048] by mrowe@apple.com

2008-09-02 Csaba Osztrogonac <oszi@inf.u-szeged.hu>

Reviewed by Darin Adler.

Bug 20296: OpcodeStats doesn't build on platforms which don't have mergesort().
<https://bugs.webkit.org/show_bug.cgi?id=20296>

  • VM/Opcode.cpp: (KJS::OpcodeStats::~OpcodeStats): mergesort() replaced with qsort()
23:22 Changeset [36047] by mrowe@apple.com

2008-09-02 Mihnea Ovidenie <mihnea@adobe.com>

Reviewed by Darin Adler.

Fix for https://bugs.webkit.org/show_bug.cgi?id=19964
Bug 19964: Divide by zero crash in RenderBox::calculateBackgroundSize with 0,0 bmp background image

Add a check to RenderBox::repaintLayerRectsForImage to make sure the current layer image can be rendered.

Test: css3/khtml-background-size-0x0-bmp.html

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

2008-09-02 Mihnea Ovidenie <mihnea@adobe.com>

Reviewed by Darin Adler.

Test for https://bugs.webkit.org/show_bug.cgi?id=19964
Bug 19964: Divide by zero crash in RenderBox::calculateBackgroundSize with 0,0 bmp background image

  • css3/khtml-background-size-0x0-bmp-expected.txt: Added.
  • css3/khtml-background-size-0x0-bmp.html: Added.
  • css3/support/0x0.bmp: Added.
23:12 Changeset [36046] by mrowe@apple.com

2008-09-02 Glenn Wilson <wilsong@gmail.com>

Reviewed by Eric Seidel.

Fix https://bugs.webkit.org/show_bug.cgi?id=20397
Bug 20397: Invalid webkit-border-bottom-left-radius property causes crash

The function checkForOrphanedUnits() would change the length of a list whose size was
was already determined before the call to checkForOrphanedUnits was made. Later in
the caller, the old size was being used for boundary management.

This has been fixed by moving the call to checkForOrphanedUnits() earlier in the
calling function, before the size of the list is determined.

Test: fast/css/orphaned_units_crash.html

  • css/CSSParser.cpp: (WebCore::CSSParser::parseValue): Moved call to checkForOrphanedUnits() earlier in the function.

2008-09-02 Glenn Wilson <wilsong@gmail.com>

Reviewed by Eric Seidel.

Tests for https://bugs.webkit.org/show_bug.cgi?id=20397
Bug 20397: Invalid webkit-border-bottom-left-radius property causes crash

Added new tests to check whether an orphaned unit identifier in particular
CSS attributes will crash the browser.

  • fast/css/orphaned_units_crash-expected.txt: Added.
  • fast/css/orphaned_units_crash.html: Added.
23:10 Changeset [36045] by cwzwarich@webkit.org

2008-09-02 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Not reviewed.

Move the ChangeLog of r35906 to its rightful place.

23:01 Changeset [36044] by mrowe@apple.com

2008-09-02 Dirk Schulze <vbs85@gmx.de>

Reviewed by Darin Adler.

Fallback on invalid fill or stroke styles in Canvas was
transparent black. Changed it to last valid style.

Canvas fillStyle() and strokeStyle() needs fallback
https://bugs.webkit.org/show_bug.cgi?id=20474

Tests: fast/canvas/canvas-invalid-fillstyle.html

fast/canvas/canvas-invalid-strokestyle.html

  • html/CanvasStyle.cpp: (WebCore::CanvasStyle::applyStrokeColor): (WebCore::CanvasStyle::applyFillColor):

2008-09-02 Dirk Schulze <vbs85@gmx.de>

Reviewed by Darin Adler.

Tests for https://bugs.webkit.org/show_bug.cgi?id=20474
Tests behaviour on invalid fillStyle() or strokeStyle() in canvas.

  • fast/canvas/canvas-invalid-fillstyle-expected.txt: Added.
  • fast/canvas/canvas-invalid-fillstyle.html: Added.
  • fast/canvas/canvas-invalid-fillstyle.js: Added.
  • fast/canvas/canvas-invalid-strokestyle-expected.txt: Added.
  • fast/canvas/canvas-invalid-strokestyle.html: Added.
  • fast/canvas/canvas-invalid-strokestyle.js: Added.
22:49 Changeset [36043] by mrowe@apple.com

2008-09-02 Dirk Schulze <vbs85@gmx.de>

Reviewed by Darin Adler.

Fix https://bugs.webkit.org/show_bug.cgi?id=20468
Updated drawImage() in canvas to match the current specification.

Test: fast/canvas/drawImage-with-negative-source-destination.html

  • html/CanvasRenderingContext2D.cpp: (WebCore::normalizeRect): (WebCore::CanvasRenderingContext2D::drawImage):

2008-09-02 Dirk Schulze <vbs85@gmx.de>

Reviewed by Darin Adler.

Tests for https://bugs.webkit.org/show_bug.cgi?id=20468
Test negative source and destination rect in drawImage()

  • fast/canvas/drawImage-with-invalid-args-expected.txt:
  • fast/canvas/drawImage-with-invalid-args.html:
  • fast/canvas/drawImage-with-negative-source-destination-expected.txt: Added.
  • fast/canvas/drawImage-with-negative-source-destination.html: Added.
  • fast/canvas/drawImage-with-negative-source-destination.js: Added.
22:41 Changeset [36042] by mrowe@apple.com

<rdar://problem/5768210> Switch back to the system version of SQLite

Reviewed by Darin Adler.

Use the system version of SQLite when it is new enough to provide the functionality
that WebCore requires.

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/WebCore.xcconfig:
22:23 Changeset [36041] by mrowe@apple.com

Versioning.

22:13 Changeset [36040] by mrowe@apple.com

Versioning.

22:04 Changeset [36039] by ggaren@apple.com

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

Reviewed by Oliver Hunt.


Fast path for array.length and string.length.


SunSpider says 0.5% faster.

20:19 Changeset [36038] by mitz@apple.com
  • update expected results now that log() et al. report line numbers
  • fast/dom/Window/console-functions-expected.txt:
19:59 Changeset [36037] by mitz@apple.com
  • build fix
  • page/animation/AnimationBase.h:
19:58 Changeset [36036] by ggaren@apple.com

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

Reviewed by Anders Carlsson.


Added optimized paths for comparing to null.


SunSpider says 0.5% faster.

19:46 Changeset [36035] by cwzwarich@webkit.org

2008-09-02 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Not reviewed.

Remove a local change that was accidentally committed in r36034.

  • resources/sunspider-standalone-driver.js:
19:42 Changeset [36034] by cwzwarich@webkit.org

2008-09-02 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Oliver Hunt.

Tests for bug 17936: "ASSERTION FAILED: false" (GetterSetterImp::toObject is called)
<https://bugs.webkit.org/show_bug.cgi?id=17936>

This bug was fixed by the rewrite of much of the code handling getters
and setters in r36016, the revision that introduced the polymorphic
inline cache.

  • fast/js/delete-getters-setters-expected.txt: Added.
  • fast/js/delete-getters-setters.html: Added.
  • fast/js/resources/delete-getters-setters.js: Added.
19:39 Changeset [36033] by ggaren@apple.com

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

Reviewed by Sam Weinig.

Changed jsDriver.pl to dump the exact text you would need in order to
reproduce a test result. This enables a fast workflow where you copy
and paste a test failure in the terminal.

  • tests/mozilla/jsDriver.pl:
19:31 Changeset [36032] by ggaren@apple.com

JavaScriptCore:

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

Reviewed by Sam Weinig.


Implemented the rest of Darin's review comments for the 09-01 inline
caching patch.


SunSpider says 0.5% faster, but that seems like noise.

  • JavaScriptCore.xcodeproj/project.pbxproj: Put PutPropertySlot into its own file, and added BatchedTransitionOptimizer.
  • VM/CodeBlock.cpp: (KJS::CodeBlock::~CodeBlock): Use array indexing instead of a pointer iterator.
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::CodeGenerator): Used BatchedTransitionOptimizer to make batched put and remove for declared variables fast, without forever pessimizing the global object. Removed the old getDirect/removeDirect hack that tried to do the same in a more limited way.
  • VM/CodeGenerator.h: Moved IdentifierRepHash to the KJS namespace since it doesn't specialize anything in WTF.
  • VM/Machine.cpp: (KJS::Machine::Machine): Nixed the DummyConstruct tag because it was confusingly named.

(KJS::Machine::execute): Used BatchedTransitionOptimizer, as above. Fixed
up some comments.

(KJS::cachePrototypeChain): Cast to JSObject*, since it's more specific.

(KJS::Machine::tryCachePutByID): Use isNull() instead of comparing to
jsNull(), since isNull() leaves more options open for the future.
(KJS::Machine::tryCacheGetByID): ditto
(KJS::Machine::privateExecute): ditto

  • VM/SamplingTool.cpp: (KJS::SamplingTool::dump): Use C++-style cast, to match our style guidelines.
  • kjs/BatchedTransitionOptimizer.h: Added. New class that allows host code to add a batch of properties to an object in an efficient way.
  • kjs/JSActivation.cpp: Use isNull(), as above.
  • kjs/JSArray.cpp: Get rid of DummyConstruct tag, as above.
  • kjs/JSArray.h:
  • kjs/JSGlobalData.cpp: Nixed two unused StructureIDs.
  • kjs/JSGlobalData.h:
  • kjs/JSImmediate.cpp: Use isNull(), as above.
  • kjs/JSObject.cpp: (KJS::JSObject::mark): Moved mark tracing code elsewhere, to make this function more readable.

(KJS::JSObject::put): Use isNull(), as above.

(KJS::JSObject::createInheritorID): Return a raw pointer, since the
object is owned by a data member, not necessarily the caller.

  • kjs/JSObject.h:
  • kjs/JSString.cpp: Use isNull(), as above.
  • kjs/PropertyMap.h: Updated to use PropertySlot::invalidOffset.
  • kjs/PropertySlot.h: Changed KJS_INVALID_OFFSET to WTF::notFound because C macros are so 80's.
  • kjs/PutPropertySlot.h: Added. Split out of PropertySlot.h. Also renamed PutPropertySlot::SlotType to PutPropertySlot::Type, and slotBase to base, since "slot" was redundant.
  • kjs/StructureID.cpp: Added a new transition *away* from dictionary status, to support BatchedTransitionOptimizer.

(KJS::StructureIDChain::StructureIDChain): No need to store m_size as
a data member, so keep it in a local, which might be faster.

  • kjs/StructureID.h:
  • kjs/SymbolTable.h: Moved IdentifierRepHash to KJS namespace, as above.
  • kjs/ustring.h:

JavaScriptGlue:

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

Reviewed by Sam Weinig.


Implemented the rest of Darin's review comments for the 09-01 inline
caching patch.


  • ForwardingHeaders/kjs/PutPropertySlot.h: Added.
18:32 Changeset [36031] by dino@apple.com

2008-09-02 Chris Marrin <cmarrin@apple.com>

Reviewed by Dave Hyatt.

AnimationController.cpp should be split into separate files
https://bugs.webkit.org/show_bug.cgi?id=20604

Note: All makefiles, except WebCore.xcodeproj have been changed without testing, upon
recommendation of Dave Hyatt.

  • GNUmakefile.am:
  • WebCore.pro:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • WebCoreSources.bkl:

Build files.

  • page/AnimationController.cpp: Removed.
  • page/AnimationController.h: Removed.
  • page/animation: Added.
  • page/animation/AnimationBase.cpp: Added.
  • page/animation/AnimationBase.h: Added.
  • page/animation/AnimationController.cpp: Copied from WebCore/page/AnimationController.cpp.
  • page/animation/AnimationController.h: Copied from WebCore/page/AnimationController.h.
  • page/animation/CompositeAnimation.cpp: Added.
  • page/animation/CompositeAnimation.h: Added.
  • page/animation/ImplicitAnimation.cpp: Added.
  • page/animation/ImplicitAnimation.h: Added.
  • page/animation/KeyframeAnimation.cpp: Added.
  • page/animation/KeyframeAnimation.h: Added.
17:57 Changeset [36030] by mitz@apple.com
  • release build fix
  • platform/graphics/cg/GraphicsContextCG.cpp: (WebCore::calculateDrawingMode):
14:35 Changeset [36029] by timothy@apple.com

Make console functions log the correct resource URL and
line number for where the call originated.

https://bugs.webkit.org/show_bug.cgi?id=17234
<rdar://problem/5732837>

Reviewed by Kevin McCullough.

Test: manual-tests/inspector/console-call-line-numbers.html

  • bindings/js/JSConsoleCustom.cpp: (WebCore::JSConsole::count): Call the impl. (WebCore::JSConsole::timeEnd): Ditto.
  • manual-tests/inspector/console-call-line-numbers.html: Added.
  • manual-tests/inspector/resources/script-console-calls.js: Added.
  • page/Console.cpp: (WebCore::retrieveLastCaller): Helper to get the URL and line. (WebCore::Console::error): Call retrieveLastCaller to get the URL and line number to pass to addMessageToConsole. (WebCore::Console::info): Ditto. (WebCore::Console::log): Ditto. (WebCore::Console::assertCondition): Ditto. (WebCore::Console::count): Ditto. (WebCore::Console::timeEnd): Ditto. (WebCore::Console::warn): Ditto.
  • page/Console.h:
  • page/Console.idl: Make count and timeEnd custom.
14:30 Changeset [36028] by timothy@apple.com

Removed IDL files from WebCore's framework resources.

  • WebCore.xcodeproj/project.pbxproj:
14:11 Changeset [36027] by cwzwarich@webkit.org

2008-09-02 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Rubber-stamped by Oliver Hunt.

Make SunSpider work with JavaScript shells that don't take filenames
after a '-f' argument.

  • sunspider:
13:39 Changeset [36026] by mitz@apple.com

Reviewed by Dave Hyatt.

  • html/HTMLParser.cpp: (WebCore::HTMLParser::handleResidualStyleCloseTagAcrossBlocks): Added a cap on the number of consecutive identical residual style tags to reopen. (WebCore::HTMLParser::popBlock): Ditto.
09:16 Changeset [36025] by ap@webkit.org

Reviewed by Adam Roben.

A little database quota management cleanup.

  • storage/OriginQuotaManager.cpp: (WebCore::OriginQuotaManager::OriginQuotaManager): (WebCore::OriginQuotaManager::lock): (WebCore::OriginQuotaManager::unlock): (WebCore::OriginQuotaManager::trackOrigin): (WebCore::OriginQuotaManager::tracksOrigin): (WebCore::OriginQuotaManager::addDatabase): (WebCore::OriginQuotaManager::removeDatabase): (WebCore::OriginQuotaManager::removeOrigin): (WebCore::OriginQuotaManager::markDatabase): (WebCore::OriginQuotaManager::diskUsage):
  • storage/OriginQuotaManager.h: Changed to assert that a lock is taken more directly and reliably. Removed comments about main/background threads, as this is likely to stop being true with synchronous Database calls being made on worker threads.
  • storage/OriginUsageRecord.cpp: (WebCore::OriginUsageRecord::OriginUsageRecord): (WebCore::OriginUsageRecord::addDatabase): (WebCore::OriginUsageRecord::removeDatabase): (WebCore::OriginUsageRecord::markDatabase): (WebCore::OriginUsageRecord::diskUsage):
  • storage/OriginUsageRecord.h: (WebCore::OriginUsageRecord::DatabaseEntry::DatabaseEntry): Don't use a magic value for unknown. It is totally unnecessary for DatabaseEntry, and can be replaced with a single boolean for OriginUsageRecord. Added assertions for string parameters being unshared.
08:15 Changeset [36024] by aroben@apple.com

Windows build fixes

  • JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Add StructureID.{cpp,h} to the project. Also let VS reorder this file.
  • VM/CodeBlock.cpp: Include StringExtras so that snprintf will be defined on Windows.

09/01/08:

22:08 Changeset [36023] by mrowe@apple.com

New tag.

21:26 Changeset [36022] by abarth@webkit.org

WebCore:

2008-09-01 Adam Barth <abarth@webkit.org>

Reviewed by Sam Weinig.

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

Make granting LoadLocalResources conditional on a policy.

  • WebCore.base.exp:
  • dom/Document.cpp: (WebCore::Document::initSecurityContext):
  • loader/FrameLoader.cpp: (WebCore::FrameLoader::setLocalLoadPolicy): (WebCore::FrameLoader::restrictAccessToLocal):
  • loader/FrameLoader.h: (WebCore::FrameLoader::):
  • platform/SecurityOrigin.cpp: (WebCore::SecurityOrigin::grantLoadLocalResources):
  • platform/SecurityOrigin.h:

WebKit/mac:

2008-09-01 Adam Barth <abarth@webkit.org>

Reviewed by Sam Weinig.

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

Add a linked-on-or-after check to prevent substitute data from loading
local resources on newer users of WebKit.

  • Misc/WebKitVersionChecks.h:
  • WebView/WebView.mm: (-[WebView _commonInitializationWithFrameName:groupName:]):
16:34 Changeset [36021] by dino@apple.com

2008-09-01 Dean Jackson <dino@apple.com>

Reviewed by Sam Weinig.

https://bugs.webkit.org/show_bug.cgi?id=20571
Make sure Window object can assign Animation/Transition event
listeners via attributes.

Also added a bunch of transition event tests, although
only transition-end-event-window is directly relevant to this patch.

(WebCore::JSDOMWindowBase::put):

Tests: transitions/transition-end-event-all-properties.html

transitions/transition-end-event-attributes.html
transitions/transition-end-event-container.html
transitions/transition-end-event-left.html
transitions/transition-end-event-multiple-01.html
transitions/transition-end-event-multiple-02.html
transitions/transition-end-event-multiple-03.html
transitions/transition-end-event-multiple-04.html
transitions/transition-end-event-nested.html
transitions/transition-end-event-transform.html
transitions/transition-end-event-window.html

16:05 Changeset [36020] by dino@apple.com

2008-09-01 Dean Jackson <dino@apple.com>

Reviewed by Sam Weinig

Code styling cleanup.

  • bindings/js/JSDOMWindowBase.cpp: (WebCore::JSDOMWindowBase::getValueProperty): (WebCore::JSDOMWindowBase::put):
15:55 Changeset [36019] by weinig@apple.com

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

Fix release build.

15:49 Changeset [36018] by jmalonzo@webkit.org

2008-09-01 Jan Michael Alonzo <jmalonzo@webkit.org>

Reviewed by Oliver Hunt.

Gtk buildfix

  • GNUmakefile.am:
  • kjs/PropertyMap.cpp: rename Identifier.h to identifier.h
  • kjs/StructureID.cpp: include JSObject.h
15:40 Changeset [36017] by weinig@apple.com

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

Reviewed by Darin Adler.

First cut at inline caching for access to vanilla JavaScript properties.


Updated for JavaScriptCore changes. Mostly mechanical addition of StructureIDs
to JavaScriptGlue classes, and PutPropertySlot& arguments to put functions.

14:22 Changeset [36016] by weinig@apple.com

JavaScriptCore:

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

Reviewed by Darin Adler.

First cut at inline caching for access to vanilla JavaScript properties.


SunSpider says 4% faster. Tests heavy on dictionary-like access have
regressed a bit -- we have a lot of room to improve in this area,
but this patch is over-ripe as-is.


JSCells now have a StructureID that uniquely identifies their layout,
and holds their prototype.


JSValue::put takes a PropertySlot& argument, so it can fill in details
about where it put a value, for the sake of caching.

  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::CodeGenerator): Avoid calling removeDirect if we can, since it disables inline caching in the global object. This can probably improve in the future.
  • kjs/JSGlobalObject.cpp: Nixed reset(), since it complicates caching, and wasn't really necessary.
  • kjs/JSObject.cpp: Tweaked getter / setter behavior not to rely on the IsGetterSetter flag, since the flag was buggy. This is necessary in order to avoid accidentally accessing a getter / setter as a normal property.


Also changed getter / setter creation to honor ReadOnly, matching Mozilla.


  • kjs/PropertyMap.cpp: Nixed clear(), since it complicates caching and isn't necessary.
  • kjs/Shell.cpp: Moved SamplingTool dumping outside the loop. This allows you to aggregate sampling of multiple files (or the same file repeatedly), which helped me track down regressions.
  • kjs/ustring.h: Moved IdentifierRepHash here to share it.

WebCore:

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

Reviewed by Darin Adler.

First cut at inline caching for access to vanilla JavaScript properties.

Updated for JavaScriptCore changes. Mostly mechanical addition of StructureIDs
to WebCore classes, and PutPropertySlot& arguments to put functions.

(WebCore::JSCSSStyleDeclaration::customPut): Be sure to play nice with
inline caching for global properties, so global assignment can be optimized.

  • ForwardingHeaders/kjs/StructureID.h: Added.
  • bindings/js/JSDOMBinding.h: (WebCore::DOMObject::DOMObject):
  • bindings/js/JSDOMWindowBase.cpp: (WebCore::JSDOMWindowBase::put):
  • bindings/js/JSDOMWindowBase.h:
  • bindings/js/JSDOMWindowCustom.h: (WebCore::JSDOMWindow::customPut):
  • bindings/js/JSDOMWindowShell.cpp: (WebCore::JSDOMWindowShell::JSDOMWindowShell): (WebCore::JSDOMWindowShell::put):
  • bindings/js/JSDOMWindowShell.h:
  • bindings/js/JSEventTargetBase.h: (WebCore::JSEventTargetBase::put):
  • bindings/js/JSEventTargetNode.h: (WebCore::JSEventTargetNode::put):
  • bindings/js/JSHTMLAppletElementCustom.cpp: (WebCore::JSHTMLAppletElement::customPut):
  • bindings/js/JSHTMLEmbedElementCustom.cpp: (WebCore::JSHTMLEmbedElement::customPut):
  • bindings/js/JSHTMLInputElementBase.cpp: (WebCore::JSHTMLInputElementBase::put):
  • bindings/js/JSHTMLInputElementBase.h:
  • bindings/js/JSHTMLObjectElementCustom.cpp: (WebCore::JSHTMLObjectElement::customPut):
  • bindings/js/JSHistoryCustom.cpp: (WebCore::JSHistory::customPut):
  • bindings/js/JSInspectedObjectWrapper.cpp: (WebCore::JSInspectedObjectWrapper::wrap): (WebCore::JSInspectedObjectWrapper::JSInspectedObjectWrapper):
  • bindings/js/JSInspectedObjectWrapper.h:
  • bindings/js/JSInspectorCallbackWrapper.cpp: (WebCore::JSInspectorCallbackWrapper::wrap): (WebCore::JSInspectorCallbackWrapper::JSInspectorCallbackWrapper):
  • bindings/js/JSInspectorCallbackWrapper.h:
  • bindings/js/JSLocationCustom.cpp: (WebCore::JSLocation::customPut):
  • bindings/js/JSPluginElementFunctions.cpp: (WebCore::runtimeObjectCustomPut):
  • bindings/js/JSPluginElementFunctions.h:
  • bindings/js/JSQuarantinedObjectWrapper.cpp: (WebCore::JSQuarantinedObjectWrapper::JSQuarantinedObjectWrapper): (WebCore::JSQuarantinedObjectWrapper::put):
  • bindings/js/JSQuarantinedObjectWrapper.h:
  • bindings/js/JSStorageCustom.cpp: (WebCore::JSStorage::customPut):
  • bindings/objc/WebScriptObject.mm: (-[WebScriptObject setValue:forKey:]):
  • bindings/scripts/CodeGeneratorJS.pm:
  • bridge/NP_jsobject.cpp: (_NPN_SetProperty):
  • bridge/jni/jni_jsobject.mm: (JavaJSObject::setMember):
  • bridge/objc/objc_class.mm: (KJS::Bindings::ObjcClass::fallbackObject):
  • bridge/objc/objc_runtime.h:
  • bridge/objc/objc_runtime.mm: (ObjcFallbackObjectImp::ObjcFallbackObjectImp): (ObjcFallbackObjectImp::put):
  • bridge/runtime.cpp: (KJS::Bindings::Instance::createRuntimeObject):
  • bridge/runtime_array.cpp: (RuntimeArray::put):
  • bridge/runtime_array.h:
  • bridge/runtime_object.cpp: (RuntimeObjectImp::RuntimeObjectImp): (RuntimeObjectImp::put):
  • bridge/runtime_object.h:

LayoutTests:

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

Reviewed by Darin Adler.

First cut at inline caching for access to vanilla JavaScript properties.


Tests for things I broke along the way.


  • fast/dom/getter-on-window-object2-expected.txt:
  • fast/js/pic: Added.
  • fast/js/pic/cached-deleted-properties-expected.txt: Added.
  • fast/js/pic/cached-deleted-properties.html: Added.
  • fast/js/pic/cached-getter-dictionary-and-proto-expected.txt: Added.
  • fast/js/pic/cached-getter-dictionary-and-proto.html: Added.
  • fast/js/pic/cached-getter-setter-expected.txt: Added.
  • fast/js/pic/cached-getter-setter.html: Added.
  • fast/js/pic/cached-prototype-setter-expected.txt: Added.
  • fast/js/pic/cached-prototype-setter.html: Added.
  • fast/js/pic/cached-single-entry-transition-expected.txt: Added.
  • fast/js/pic/cached-single-entry-transition.html: Added.
  • fast/js/pic/get-empty-string-expected.txt: Added.
  • fast/js/pic/get-empty-string.html: Added.
  • fast/js/pic/get-set-proxy-object-expected.txt: Added.
  • fast/js/pic/get-set-proxy-object.html: Added.
  • fast/js/pic/rehash-poisons-structure-expected.txt: Added.
  • fast/js/pic/rehash-poisons-structure.html: Added.
12:51 Changeset [36015] by weinig@apple.com

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

Reviewed by Sam Weinig.

Eagerly allocate the Math object's numeric constants. This avoids
constantly reallocating them in loops, and also ensures that the Math
object will not use the single property optimization, which makes
properties ineligible for caching.

SunSpider reports a small speedup, in combination with inline caching.

  • kjs/MathObject.cpp: (KJS::MathObject::MathObject): (KJS::MathObject::getOwnPropertySlot):
  • kjs/MathObject.h:
12:46 Changeset [36014] by jmalonzo@webkit.org

2008-09-01 Jan Michael Alonzo <jmalonzo@webkit.org>

Gtk build fix, not reviewed.

  • GNUmakefile.am: Add SmallStrings.cpp in both release and debug builds
10:18 Changeset [36013] by cwzwarich@webkit.org

2008-09-01 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Not reviewed.

Fix a typo in the ChangeLog for r36009.

05:44 Changeset [36012] by jmalonzo@webkit.org

2008-09-01 Alp Toker <alp@nuanti.com>

Reviewed by Eric Seidel.

https://bugs.webkit.org/show_bug.cgi?id=19939
[GTK] webkit_web_history_item_get_title() fails with assertion

Make sure newly constructed WebHistoryItem objects wrap a WebCore
history item when necessary. Avoid G_PARAM_CONSTRUCT since it destroys
history data -- use WEBKIT_PARAM flags instead as they do the right
thing. This restores history functionality.

Also use CString to simplify UTF-8 string management.

  • webkit/webkitwebbackforwardlist.cpp: (_WebKitWebBackForwardListPrivate::webkit_web_back_forward_list_get_forward_list_with_limit): (_WebKitWebBackForwardListPrivate::webkit_web_back_forward_list_get_back_list_with_limit): No need to initialize the vector with a size since it's cleared by the callee.
  • webkit/webkitwebhistoryitem.cpp: (_WebKitWebHistoryItemPrivate::webkit_web_history_item_finalize): (_WebKitWebHistoryItemPrivate::webkit_web_history_item_class_init): (_WebKitWebHistoryItemPrivate::webkit_web_history_item_new_with_core_item): (_WebKitWebHistoryItemPrivate::webkit_web_history_item_new): (_WebKitWebHistoryItemPrivate::webkit_web_history_item_new_with_data): (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_title): (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_alternate_title): (_WebKitWebHistoryItemPrivate::webkit_web_history_item_set_alternate_title): (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_uri): (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_original_uri):
05:43 Changeset [36011] by jmalonzo@webkit.org

2008-09-01 Dirk Schulze <vbs85@gmx.de>

Reviewed by Eric Seidel.

Fixed border-radius for Cairo.

  • platform/graphics/cairo/GraphicsContextCairo.cpp: (WebCore::GraphicsContext::strokeArc):
05:43 Changeset [36010] by jmalonzo@webkit.org

2008-09-01 Dirk Schulze <vbs85@gmx.de>

Reviewed by Eric Seidel.

Added canvas's globalAlpha to cairo.

  • platform/graphics/GraphicsContext.h:
  • platform/graphics/cairo/GraphicsContextCairo.cpp: (WebCore::GraphicsContext::fillPath): (WebCore::GraphicsContext::strokePath): (WebCore::GraphicsContext::setAlpha): (WebCore::GraphicsContext::getAlpha):
  • platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h: (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
  • platform/graphics/cairo/ImageCairo.cpp: (WebCore::BitmapImage::draw):
Note: See TracTimeline for information about the timeline view.