Timeline


and

10/22/08:

20:36 Changeset [37804] by oliver@apple.com

Really "fix" CTI mode on windows 2k3.

Reviewed my Maciej Stachowiak

This adds new methods fastMallocExecutable and fastFreeExecutable
to wrap allocation for cti code. This still just makes fastMalloc
return executable memory all the time, which will be fixed in a
later patch.

However in windows debug builds all executable allocations will be
allocated on separate executable pages, which should resolve any
remaining 2k3 issues. Conveniently the 2k3 bot will now also fail
if there are any fastFree vs. fastFreeExecutable errors.

19:53 Changeset [37803] by ddkilzer@apple.com

Bug 21781: WebCore::Settings should have a maximum decoded image size setting

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

Reviewed by Antti.

No tests since there is no change in behavior.

  • loader/CachedImage.cpp: (WebCore::CachedImage::maximumDecodedImageSize): Added. Returns WebCore::Settings::maximumDecodedImageSize() or 0 on error. (WebCore::CachedImage::data): Flag an error if the image being loaded is too big.
  • loader/CachedImage.h: (WebCore::CachedImage::maximumDecodedImageSize): Added declaration.
  • page/Settings.cpp: (WebCore::Settings::Settings): Initialize m_maximumDecodedImageSize to the maximum value of size_t.
  • page/Settings.h: (WebCore::Settings::setMaximumDecodedImageSize): Added method. (WebCore::Settings::maximumDecodedImageSize): Ditto.
19:31 Changeset [37802] by cwzwarich@webkit.org

2008-10-22 Cameron Zwarich <zwarich@apple.com>

Reviewed by Kevin McCullough.

Check in changed test results for r37792.

  • fast/dom/Window/window-properties-expected.txt:
18:43 Changeset [37801] by darin@apple.com

2008-10-22 Mike Pinkerton <pinkerton@chromium.org>

Reviewed by Dan Bernstein.
Landed and tweaked a bit by Darin Adler.

Remove PLATFORM(MAC) wrapping USE(ATSUI). It's redundant and inhibits
its use for PLATFORM(CHROMIUM) in the future.

  • platform/graphics/SimpleFontData.h:
17:49 Changeset [37800] by dsmith@webkit.org

WebCore:

2008-10-22 David Smith <catfish.man@gmail.com>

Reviewed by andersca.


https://bugs.webkit.org/show_bug.cgi?id=19974
getElementsByClassName not live enough

Test: fast/dom/getElementsByClassName/015.html

  • dom/StyledElement.cpp: (WebCore::StyledElement::classAttributeChanged): call dispatchSubtreeModifiedEvent()

LayoutTests:

2008-10-22 David Smith <catfish.man@gmail.com>

Reviewed by andersca.


https://bugs.webkit.org/show_bug.cgi?id=19974
getElementsByClassName not live enough

  • fast/dom/getElementsByClassName/015-expected.txt: Added.
  • fast/dom/getElementsByClassName/015.html: Added.
17:11 Changeset [37799] by darin@apple.com

JavaScriptCore:

2008-10-22 Darin Adler <darin@apple.com>

Reviewed by Sam Weinig.

A bit over 3% faster on V8 tests.

  • JavascriptCore.exp: Export leak-related functions..
  • API/JSCallbackConstructor.h: (JSC::JSCallbackConstructor::createStructureID): Set HasStandardGetOwnPropertySlot since this class doesn't override getPropertySlot.
  • API/JSCallbackFunction.h: (JSC::JSCallbackFunction::createStructureID): Ditto.
  • VM/ExceptionHelpers.cpp: (JSC::InterruptedExecutionError::InterruptedExecutionError): Use a structure that's created just for this class instead of trying to share a single "null prototype" structure.
  • VM/Machine.cpp: (JSC::Machine::cti_op_create_arguments_no_params): Rename Arguments::ArgumentsNoParameters to Arguments::NoParameters.


  • kjs/Arguments.h: Rename the enum from Arguments::ArgumentsParameters to Arguments::NoParametersType and the value from Arguments::ArgumentsNoParameters to Arguments::NoParameters. (JSC::Arguments::createStructureID): Added. Returns a structure without HasStandardGetOwnPropertySlot since this class overrides getOwnPropertySlot. (JSC::Arguments::Arguments): Added an assertion that there are no parameters.
  • kjs/DatePrototype.h: (JSC::DatePrototype::createStructureID): Added. Returns a structure without HasStandardGetOwnPropertySlot since this class overrides getOwnPropertySlot.
  • kjs/FunctionPrototype.h: (JSC::FunctionPrototype::createStructureID): Set HasStandardGetOwnPropertySlot since this class doesn't override getPropertySlot.
  • kjs/InternalFunction.h: (JSC::InternalFunction::createStructureID): Ditto.
  • kjs/JSArray.h: (JSC::JSArray::createStructureID): Added. Returns a structure without HasStandardGetOwnPropertySlot since this class overrides getOwnPropertySlot.
  • kjs/JSCell.h: Added declaration of fastGetOwnPropertySlot; a non-virtual version that uses the structure bit to decide whether to call the virtual version.
  • kjs/JSFunction.h: (JSC::JSFunction::createStructureID): Added. Returns a structure without HasStandardGetOwnPropertySlot since this class overrides getOwnPropertySlot.
  • kjs/JSGlobalData.cpp: (JSC::JSGlobalData::JSGlobalData): Initialize new structures; removed nullProtoStructureID.
  • kjs/JSGlobalData.h: Added new structures. Removed nullProtoStructureID.
  • kjs/JSGlobalObject.h: (JSC::JSGlobalObject::createStructureID): Added. Returns a structure without HasStandardGetOwnPropertySlot since this class overrides getOwnPropertySlot.
  • kjs/JSNotAnObject.h: (JSC::JSNotAnObjectErrorStub::JSNotAnObjectErrorStub): Use a structure that's created just for this class instead of trying to share a single "null prototype" structure. (JSC::JSNotAnObjectErrorStub::isNotAnObjectErrorStub): Marked this function virtual for clarity and made it private since no one should call it if they already have a pointer to this specific type. (JSC::JSNotAnObject::JSNotAnObject): Use a structure that's created just for this class instead of trying to share a single "null prototype" structure. (JSC::JSNotAnObject::createStructureID): Added. Returns a structure without HasStandardGetOwnPropertySlot since this class overrides getOwnPropertySlot.
  • kjs/JSObject.h: (JSC::JSObject::createStructureID): Added HasStandardGetOwnPropertySlot. (JSC::JSObject::inlineGetOwnPropertySlot): Added. Used so we can share code between getOwnPropertySlot and fastGetOwnPropertySlot. (JSC::JSObject::getOwnPropertySlot): Moved so that functions are above the functions that call them. Moved the guts of this function into inlineGetOwnPropertySlot. (JSC::JSCell::fastGetOwnPropertySlot): Added. Checks the HasStandardGetOwnPropertySlot bit and if it's set, calls inlineGetOwnPropertySlot, otherwise calls getOwnPropertySlot. (JSC::JSObject::getPropertySlot): Changed to call fastGetOwnPropertySlot. (JSC::JSValue::get): Changed to call fastGetOwnPropertySlot.
  • kjs/JSWrapperObject.h: Made constructor protected to emphasize that this class is only a base class and never instantiated.
  • kjs/MathObject.h: (JSC::MathObject::createStructureID): Added. Returns a structure without HasStandardGetOwnPropertySlot since this class overrides getOwnPropertySlot.
  • kjs/NumberConstructor.h: (JSC::NumberConstructor::createStructureID): Ditto.
  • kjs/RegExpConstructor.h: (JSC::RegExpConstructor::createStructureID): Ditto.
  • kjs/RegExpObject.h: (JSC::RegExpObject::createStructureID): Ditto.
  • kjs/StringObject.h: (JSC::StringObject::createStructureID): Ditto.
  • kjs/TypeInfo.h: Added HasStandardGetOwnPropertySlot flag and hasStandardGetOwnPropertySlot accessor function.

JavaScriptGlue:

2008-10-22 Darin Adler <darin@apple.com>

Reviewed by Sam Weinig.

  • JSRun.cpp: (JSGlueGlobalObject::JSGlueGlobalObject): Moved constructor here. Set up flags in its new location in global object data, and set up a structure for UserObjectImp too. (JSRun::JSRun): Added code to give the JSGlueGlobalObject its own unique structure, rather than using the default one from JSGlobalObject.
  • JSRun.h: Made JSGlueGlobalObject take a structure ID. Also moved the data into a separate data object. And added userObjectStructure, a Structure to be used by UserObjectImp.
  • JSUtils.cpp: Removed unused sharedGlobalData global. (JSObjectKJSValue): Pass Structure in when creating UserObjectImp. (unprotectGlobalObject): Use JSGlueGLobalObject type specifically. (initializeGlobalObjectKey): Removed code to set up unused sharedGlobalData. (getThreadGlobalObject): Added. Shared by JSObjectKJSValue and getThreadGlobalExecState. Also now passes in a structure ID when creating the global object. (getThreadGlobalExecState): Changed to call getThreadGlobalObject.
  • UserObjectImp.cpp: (UserObjectImp::UserObjectImp): Changed to take a structure.
  • UserObjectImp.h: (UserObjectImp::createStructureID): Added. Returns a structure without HasStandardGetOwnPropertySlot since this class overrides getOwnPropertySlot.

WebCore:

2008-10-22 Darin Adler <darin@apple.com>

Reviewed by Sam Weinig.

  • bindings/js/JSDOMWindowShell.h: (WebCore::JSDOMWindowShell::createStructureID): Added. Returns a structure without HasStandardGetOwnPropertySlot since this class overrides getOwnPropertySlot.
  • bindings/js/JSInspectorCallbackWrapper.cpp: (WebCore::JSInspectorCallbackWrapper::wrap): Change to use a unique structure for this class rather than sharing nullProtoStructureID, which no longer exists.
  • bindings/js/JSNamedNodesCollection.h: (WebCore::JSNamedNodesCollection::createStructureID): Added. Returns a structure without HasStandardGetOwnPropertySlot since this class overrides getOwnPropertySlot.
  • bindings/js/JSRGBColor.h: (WebCore::JSRGBColor::createStructureID): Ditto.
  • bindings/scripts/CodeGeneratorJS.pm: Added createStructureID functions for the wrappers, constructors, and prototypes in any case where they override getOwnPropertySlot, without HasStandardGetOwnPropertySlot.
  • bridge/objc/objc_runtime.h: (JSC::Bindings::ObjcFallbackObjectImp::createStructureID): Added. Returns a structure without HasStandardGetOwnPropertySlot since this class overrides getOwnPropertySlot.
  • bridge/qt/qt_runtime.h: (JSC::Bindings::QtRuntimeMethod::createStructureID): Ditto.
  • bridge/runtime_array.h: (JSC::RuntimeArray::createStructureID): Ditto.
  • bridge/runtime_method.h: (JSC::RuntimeMethod::createStructureID): Ditto.
  • bridge/runtime_object.h: (JSC::RuntimeObjectImp::createStructureID): Ditto.
16:34 Changeset [37798] by aroben@apple.com

Bring Windows Cairo Port's font handling in line with CG.
http://bugs.webkit.org/show_bug.cgi?id=21812.

Reviewed by Adam Roben.

  • platform/graphics/win/FontCacheWin.cpp: (WebCore::createGDIFont): Remove unnecessary special-case for Cairo TrueType font search. It should match CG in all font selections.
16:33 Changeset [37797] by aroben@apple.com

WebCore:

2008-10-22 Brent Fulgham <bfulgham@gmail.com>

Correct build regressions in Cairo port for Windows.
http://bugs.webkit.org/show_bug.cgi?id=21724

Reviewed by Adam Roben.

  • WebCore.vcproj/WebCore.vcproj: Fixed include paths and post-build event for the Debug_Cairo and Release_Cairo configurations.
  • platform/graphics/win/GraphicsContextCairoWin.cpp: (WebCore::GraphicsContext::GraphicsContext): Update to newer constructor signature.
  • platform/network/curl/DNSCurl.cpp: Added. (WebCore::prefetchDNS):
  • platform/network/curl/ResourceRequest.h:
  • platform/win/ScrollbarThemeWin.cpp: (WebCore::ScrollbarTheme::nativeTheme):

WebKit/win:

2008-10-22 Brent Fulgham <bfulgham@gmail.com>

Correct build regressions in Cairo port for Windows.
http://bugs.webkit.org/show_bug.cgi?id=21724

Reviewed by Adam Roben.

  • WebView.cpp: (WebView::notifyPreferencesChanged): Don't try to call setShouldPaintNativeControls when SafariTheme support is disabled, as that function doesn't exist in that case.
16:31 Changeset [37796] by beidson@apple.com

LayoutTests:
2008-10-22 Brady Eidson <beidson@apple.com>

Reviewed by Adam Roben

<rdar://6261773> - autocomplete="off" doesn't work on Windows

Remove a skipped test that can now pass with proper DRT support


  • platform/win/Skipped: Remove security/autocomplete-cleared-on-back.html

WebKitTools:
2008-10-22 Brady Eidson <beidson@apple.com>

Reviewed by Adam Roben


<rdar://6261773> - autocomplete="off" doesn't work on Windows

Implement LayoutTestController::elementDoesAutoCompleteForElementWithId() on Windows


  • DumpRenderTree/win/LayoutTestControllerWin.cpp:


WebKit/win:
2008-10-22 Brady Eidson <beidson@apple.com>

Reviewed by Adam Roben


Move elementDoesAutoComplete() to IWebFramePrivate so it is exposed for DRT to use

  • Interfaces/IWebFramePrivate.idl:


  • WebFrame.cpp: (WebFrame::elementDoesAutoComplete):
  • WebFrame.h:


  • WebHTMLRepresentation.cpp: (WebHTMLRepresentation::elementDoesAutoComplete):
16:19 Changeset [37795] by mrowe@apple.com

Merge r37793.

16:12 Changeset [37794] by timothy@apple.com

Add a license to ElementsTreeOutline.js that was left off when it was split out from ElementsPanel.js.

16:06 Changeset [37793] by beidson@apple.com

Reviewed by Adam Roben

<rdar://6261773> - autocomplete="off" doesn't work on Windows

Visual Studio makes a poor decision regarding the combination of enums and bitfields, such that a
statement like "m_autocomplete = Off" followed by "return m_autocomplete == Off" would return "false"
instead of the much more correct "true."


In the past we have worked around this by declaring the bitfield member as an unsigned instead
of the enum type.

For more discussion, see http://trac.webkit.org/changeset/25329

  • html/HTMLInputElement.h: Work around insane Visual Studio enum issue *sigh*
16:05 Changeset [37792] by kmccullough@apple.com

2008-10-22 Kevin McCullough <kmccullough@apple.com>

Reviewed by Oliver Hunt and Tim Hatcher.

https://bugs.webkit.org/show_bug.cgi?id=19225
Bug 19225: JSProfiler: Create automated profiler tests

  • This change exports profiles on the console object so that they can be iterated over via JavaScript, and thus can be used in automated tests.
  • bindings/js/JSConsoleCustom.cpp: Get the profiles and return an array that JS can use. (WebCore::JSConsole::profiles):
  • inspector/InspectorController.h: Use the new typedef. (WebCore::InspectorController::profiles):
  • page/Console.cpp: Keep our own array of profile objects. (WebCore::Console::profileEnd):
  • page/Console.h: Ditto. (WebCore::Console::profiles):
  • page/Console.idl: Expose the profiles to JS.
16:04 Changeset [37791] by kmccullough@apple.com

2008-10-22 Kevin McCullough <kmccullough@apple.com>

Reviewed by Oliver Hunt and Tim Hatcher.

https://bugs.webkit.org/show_bug.cgi?id=19225
Bug 19225: JSProfiler: Create automated profiler tests

  • This change exports profiles on the console object so that they can be iterated over via JavaScript, and thus can be used in automated tests.
  • bindings/js/JSConsoleCustom.cpp: Get the profiles and return an array that JS can use. (WebCore::JSConsole::profiles):
  • inspector/InspectorController.h: Use the new typedef. (WebCore::InspectorController::profiles):
  • page/Console.cpp: Keep our own array of profile objects. (WebCore::Console::profileEnd):
  • page/Console.h: Ditto. (WebCore::Console::profiles):
  • page/Console.idl: Expose the profiles to JS.
14:51 Changeset [37790] by hyatt@apple.com

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

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

Convert buttons over to use the new Theme API on OS X.

Reviewed by Adam Roben

  • platform/LengthBox.h: (WebCore::LengthBox::LengthBox):
  • platform/Theme.cpp: (WebCore::Theme::controlBorder): (WebCore::Theme::controlPadding):
  • platform/Theme.h: (WebCore::Theme::controlFont): (WebCore::Theme::controlSize): (WebCore::Theme::minControlSize): (WebCore::Theme::controlRequiresPreWhiteSpace):
  • platform/mac/ThemeMac.h: (WebCore::ThemeMac::controlRequiresPreWhiteSpace):
  • platform/mac/ThemeMac.mm: (WebCore::checkboxSize): (WebCore::radioSize): (WebCore::buttonSizes): (WebCore::buttonMargins): (WebCore::button): (WebCore::paintButton): (WebCore::ThemeMac::controlFont): (WebCore::ThemeMac::controlSize): (WebCore::ThemeMac::minControlSize): (WebCore::ThemeMac::controlBorder): (WebCore::ThemeMac::controlPadding): (WebCore::ThemeMac::inflateControlPaintRect): (WebCore::ThemeMac::paint):
  • rendering/RenderTheme.cpp: (WebCore::RenderTheme::adjustStyle): (WebCore::RenderTheme::paint): (WebCore::RenderTheme::controlStatesForRenderer): (WebCore::RenderTheme::isDefault): (WebCore::RenderTheme::adjustRadioStyle):
  • rendering/RenderTheme.h: (WebCore::RenderTheme::setRadioSize):
  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::adjustRepaintRect): (WebCore::menuListButtonSizes): (WebCore::RenderThemeMac::adjustMenuListStyle):
  • rendering/style/RenderStyle.h: (WebCore::InheritedFlags::paddingBox): (WebCore::InheritedFlags::setPaddingBox):
14:06 Changeset [37789] by cwzwarich@webkit.org

2008-10-22 Cameron Zwarich <zwarich@apple.com>

Reviewed by Geoff Garen.

Bug 21803: Fuse op_jfalse with op_eq_null and op_neq_null
<https://bugs.webkit.org/show_bug.cgi?id=21803>

Fuse op_jfalse with op_eq_null and op_neq_null to make the new opcodes
op_jeq_null and op_jneq_null.

This is a 2.6% speedup on the V8 Raytrace benchmark, and strangely also
a 4.7% speedup on the V8 Arguments benchmark, even though it uses
neither of the two new opcodes.

  • VM/CTI.cpp: (JSC::CTI::privateCompileMainPass):
  • VM/CodeBlock.cpp: (JSC::CodeBlock::dump):
  • VM/CodeGenerator.cpp: (JSC::CodeGenerator::emitJumpIfTrue): (JSC::CodeGenerator::emitJumpIfFalse):
  • VM/Machine.cpp: (JSC::Machine::privateExecute):
  • VM/Opcode.h:
12:53 Changeset [37788] by simon.fraser@apple.com

2008-10-22 Simon Fraser <simon.fraser@apple.com>

Reviewed by Dave Hyatt

Moved tests from css3 to animations/transforms directories.

  • animations/change-keyframes-expected.txt: Renamed from LayoutTests/css3/change-keyframes-expected.txt.
  • animations/change-keyframes.html: Renamed from LayoutTests/css3/change-keyframes.html.
  • animations/keyframes-rule-expected.txt: Renamed from LayoutTests/css3/keyframes-rule-expected.txt.
  • animations/keyframes-rule.html: Renamed from LayoutTests/css3/keyframes-rule.html.
  • transforms/transform-value-types-expected.txt: Renamed from LayoutTests/css3/transform-value-types-expected.txt.
  • transforms/transform-value-types.html: Renamed from LayoutTests/css3/transform-value-types.html.
12:53 Changeset [37787] by hausmann@webkit.org

2008-10-22 Ariya Hidayat <ariya.hidayat@trolltech.com>

Reviewed by Simon Hausmann.

For public API, use the term boundingRect instead of boundingBox.

  • Api/qwebframe.cpp: (QWebHitTestResultPrivate::QWebHitTestResultPrivate): (QWebHitTestResult::boundingRect):
  • Api/qwebframe.h:
  • Api/qwebframe_p.h:
12:35 Changeset [37786] by simon.fraser@apple.com

2008-10-22 Chris Marrin <cmarrin@apple.com>

Reviewed by Dave Hyatt

Make sure that the AtomicString that identifies a set of animation keyframes
stays live by keeping a copy in the WebKitCSSKeyframesRule.

Also call styleSheetChanged() when the keyframes name changes, but
add an internal method that doesn't call styleSheetChanged() for use
during normal stylesheet parsing.

Test: animations/change-keyframes-name.html

  • css/CSSGrammar.y:
  • css/WebKitCSSKeyframesRule.cpp: (WebCore::WebKitCSSKeyframesRule::setName):
  • css/WebKitCSSKeyframesRule.h: (WebCore::WebKitCSSKeyframesRule::setNameInternal):
11:32 Changeset [37785] by darin@apple.com

2008-10-22 Darin Adler <darin@apple.com>

  • Scripts/do-webcore-rename: More renaming plans.
10:43 Changeset [37784] by ap@webkit.org

Reviewed by Sam Weinig.

https://bugs.webkit.org/show_bug.cgi?id=21791
WebCore JS bindings should be able to use non-static hash tables for properties

Add a map for HashTables to WebCore JS client data.

This makes property access noticeably slower, so it is an opt-in. For classes that need to be
supported in workers in forseeable future this is not critical.

  • bindings/js/JSDOMBinding.cpp: (WebCore::DOMObjectHashTableMap::get): (WebCore::DOMObjectHashTableMap::mapFor): (WebCore::getHashTableForGlobalData): (WebCore::DOMObjectWrapperMap::mapFor): WebCore client data is now a class that contains both a DOM wrapper map and a property hash table one.
  • bindings/js/JSDOMBinding.h: Added getHashTableForGlobalData() to query the hash table map.
  • bindings/scripts/CodeGeneratorJS.pm: If the class has a NoStaticTables attribute, use JSDOMBinding map to access its property hash tables.
  • dom/MessageChannel.idl:
  • dom/MessagePort.idl: Added NoStaticTables attribute.
09:47 Changeset [37783] by darin@chromium.org

2008-10-22 Darin Fisher <darin@chromium.org>

Reviewed by Eric Seidel.

Should not define PLATFORM(WIN,MAC,GTK) when PLATFORM(CHROMIUM) is defined
https://bugs.webkit.org/show_bug.cgi?id=21757

PLATFORM(CHROMIUM) implies HAVE_ACCESSIBILITY

  • wtf/Platform.h:
09:16 Changeset [37782] by alp@webkit.org

2008-10-22 Alp Toker <alp@nuanti.com>

Build fix for older GTK+ versions where GTK_TYPE_TARGET_LIST isn't
defined.

  • webkit/webkitwebview.cpp:
07:24 Changeset [37781] by cwzwarich@webkit.org

2008-10-22 Cameron Zwarich <zwarich@apple.com>

Reviewed by Alexey Proskuryakov.

Correct opcode names in documentation.

  • VM/Machine.cpp: (JSC::Machine::privateExecute):
06:55 Changeset [37780] by alp@webkit.org

2008-10-22 Gustavo Noronha Silva <gns@gnome.org>

Reviewed by Timothy Hatcher.

Build failure because of missing include
https://bugs.webkit.org/show_bug.cgi?id=21765

Build failure fix for WebKit/GTK+; added missing
include (GOwnPtr.h)

  • platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
06:51 Changeset [37779] by alp@webkit.org

2008-10-22 Alp Toker <alp@nuanti.com>

Reviewed by Adam Roben.

Fix crashes on older GTK+ versions (2.8). gtk_widget_style_get()
doesn't initialize values if the requested property doesn't exist, so
initialize the values to the documented defaults before calling it
where necessary. Additionally, avoid critical warnings by not calling
gtk_widget_style_get() when we know the property isn't available.

Note that this is an imported source file which doesn't follow the
WebKit coding style.

Avoid critical warnings on older GTK+ versions (2.8) by not checking
for GTK+ setting properties when we know they don't exist.

03:38 Changeset [37778] by alp@webkit.org

2008-10-22 Alp Toker <alp@nuanti.com>

Fix build for Cairo 1.2.

01:22 Changeset [37777] by mrowe@apple.com

Versioning.

00:56 Changeset [37776] by darin@chromium.org

2008-10-22 Darin Fisher <darin@chromium.org>

Reviewed by Eric Seidel.

A little more PLATFORM(CHROMIUM) in WebCore
https://bugs.webkit.org/show_bug.cgi?id=21758

  • page/AccessibilityObject.h:
  • platform/graphics/Icon.h:
00:54 Changeset [37775] by abarth@webkit.org

2008-10-22 Jungshik Shin <jshin@chromium.org>

Reviewed by Alexey Proskuryakov.
Landed by Adam Barth.

Replace x-mac-cyrillic by windows-1256.

  • http/tests/misc/frame-default-enc-same-domain-expected.txt:
  • http/tests/misc/frame-default-enc-same-domain.html:
00:15 Changeset [37774] by mrowe@apple.com

Versioning.

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

New tag.

10/21/08:

23:49 Changeset [37772] by oliver@apple.com

Attempt to make the win2k3 bot be more useful for testing

RS=Maciej Stachowiak.

Force FastMalloc to make all allocated pages executable in
a vague hope this will allow the Win2k3 bot to be able to
run tests.

Filed Bug 21783: Need more granular control over allocation of executable memory
to cover a more granular version of this patch.

23:07 Changeset [37771] by ap@webkit.org

Reviewed by Darin Adler.

Test: fast/events/message-channel-gc-3.html

https://bugs.webkit.org/show_bug.cgi?id=21769
MessagePort should be GC protected if there are messages to be delivered

  • dom/MessagePort.h: Removed pending activity count. Now we track if a close event is pending, and check if the queue is non-empty. (WebCore::MessagePort::workerContext): Added a stub implementation for a cross-heap GC bug fix (below).
  • dom/MessagePort.cpp: (WebCore::CloseMessagePortTimer::fired): (WebCore::MessagePort::MessagePort): (WebCore::MessagePort::queueCloseEvent): (WebCore::MessagePort::dispatchCloseEvent): (WebCore::MessagePort::hasPendingActivity): Track message and close event activity separately.
  • bindings/js/JSDOMBinding.cpp: (WebCore::markCrossHeapDependentObjectsForDocument): Fixed a bug in cross-heap GC that was causing same-heap ports to never be deleted.
  • wtf/MessageQueue.h: (WTF::::isEmpty): Added. Also added a warning for methods that return a snapshot of queue state, thus likely to cause race conditions.
20:10 Changeset [37770] by mitz@apple.com

Reviewed by Sam Weinig.

  • remove unreachable code
  • platform/text/BidiResolver.h: (WebCore::::embed):
17:41 Changeset [37769] by sfalken@apple.com

2008-10-21 Steve Falkenburg <sfalken@apple.com>

Exclude strings marked with UNLOCALIZED_STRING or UNLOCALIZED_LPCTSTR.

  • Scripts/extract-localizable-strings:
17:22 Changeset [37768] by bdakin@apple.com

2008-10-21 Beth Dakin <bdakin@apple.com>

Reviewed by Darin Adler.

Fix for https://bugs.webkit.org/show_bug.cgi?id=20352
REGRESSION(r31030-31055): Choosing "Print window" from frame set
prints blank page
and corresponding: <rdar://problem/6142398>

viewHeight() and viewWidth() only return valuable information if we
are not printing. Everywhere else in the code, we make sure we are
not printing before we call these functions. Adding a check for
printing here fixes this bug, and framesets print again.

  • rendering/RenderFrameSet.cpp: (WebCore::RenderFrameSet::layout):
17:16 Changeset [37767] by mrowe@apple.com

Merge r37489.

17:16 Changeset [37766] by mrowe@apple.com

Merge r37704.

17:16 Changeset [37765] by mrowe@apple.com

Merge r31577.

15:33 Changeset [37764] by hausmann@webkit.org

2008-06-03 Siraj Razick <siraj.razick@collabora.co.uk>

Reviewed by Simon Hausmann.

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

Expose boundingBox value in QWebHitTestResult

Add API function QRect QWebHitResult::boundingBox() const

API docs by Ariya.

14:29 Changeset [37763] by darin@apple.com

2008-10-21 Darin Adler <darin@apple.com>

Reviewed by Maciej Stachowiak.

  • convert post-increment to pre-increment in a couple more places for speed

Speeds up V8 benchmarks a little on most computers. (But, strangely, slows
them down a little on my computer.)

  • kjs/nodes.cpp: (JSC::statementListEmitCode): Removed default argument, since we always want to specify this explicitly. (JSC::ForNode::emitCode): Tolerate ignoredResult() as the dst -- means the same thing as 0. (JSC::ReturnNode::emitCode): Ditto. (JSC::ThrowNode::emitCode): Ditto. (JSC::FunctionBodyNode::emitCode): Pass ignoredResult() so that we know we don't have to compute the result of function statements.
14:09 Changeset [37762] by pkasting@chromium.org

2008-10-21 Peter Kasting <pkasting@google.com>

Reviewed by Maciej Stachowiak.

Fix an include of a non-public header to use "" instead of <>.

  • API/JSProfilerPrivate.cpp:
10:27 Changeset [37761] by hausmann@webkit.org

2008-10-21 Yael <yael.aharon@nokia.com>

Reviewed by Simon Hausmann.

emit repaintRequested unconditionally when repaint is requested.

05:57 Changeset [37760] by hausmann@webkit.org

2008-10-21 Yael Aharon <yael.aharon@nokia.com>

Reviewed by Simon.

Pixmap in canvas tag was not getting initialized.

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

10/20/08:

23:08 Changeset [37759] by weinig@apple.com

JavaScriptCore:

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

Reviewed by Cameron Zwarich.

Fix for https://bugs.webkit.org/show_bug.cgi?id=21766
REGRESSION: 12 JSC tests fail

The JSGlobalObject was mutating the shared nullProtoStructureID when
used in jsc. Instead of using nullProtoStructureID, use a new StructureID.

  • API/JSCallbackObject.h:
  • API/JSCallbackObjectFunctions.h: (JSC::::JSCallbackObject):
  • API/JSContextRef.cpp: (JSGlobalContextCreateInGroup):
  • kjs/JSGlobalObject.h: (JSC::JSGlobalObject::JSGlobalObject):
  • kjs/Shell.cpp: (GlobalObject::GlobalObject): (jscmain):

JavaScriptGlue:

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

Reviewed by Cameron Zwarich.

Fix for https://bugs.webkit.org/show_bug.cgi?id=21766
REGRESSION: 12 JSC tests fail

The JSGlobalObject constructor no longer takes a JSGlobalData
as an argument.

  • JSRun.cpp: (JSRun::JSRun):
  • JSRun.h: (JSGlueGlobalObject::JSGlueGlobalObject):
  • JSUtils.cpp: (getThreadGlobalExecState):
23:01 Changeset [37758] by simon.fraser@apple.com

2008-10-20 Simon Fraser <simon.fraser@apple.com>

Reviewed by Dan Bernstein

Add a comment explaining layoutDelta(), and an assertion
that checks that delta changes were correctly paired during layout.

  • rendering/RenderView.cpp: (WebCore::RenderView::layout):
  • rendering/RenderView.h:
21:50 Changeset [37757] by timothy@apple.com

Make auto-complete only suggest properties that are valid syntax
when using dot-notation. Also when completing numeric properties,
the quotes are omitted inside the brackets.

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

Reviewed by Oliver Hunt.

  • inspector/front-end/Console.js: (WebInspector.Console.prototype.completions): Skip properties that are not valid identifies when using dot-notation. And omit the quotes when completing numbers in bracket-notation.
21:50 Changeset [37756] by timothy@apple.com

Fixes the Profiles panel in the Web Inspector, which was broken by
the JSValue base-class changes. Also renames some functions and
variables in JavaScriptProfileNode.cpp that where title case.

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

Reviewed by Oliver Hunt.

  • inspector/JavaScriptProfile.cpp: (WebCore::toJS): Use a JSObject pointer instead of JSValuePtr so the returned JSValuePtr will be treated as an object and not a value.
  • inspector/JavaScriptProfileNode.cpp: (WebCore::toJS): Ditto.
19:45 Changeset [37755] by cwzwarich@webkit.org

2008-10-20 Cameron Zwarich <zwarich@apple.com>

Reviewed by Maciej Stachowiak.

Remove an untaken branch in CodeGenerator::emitJumpIfFalse(). This
function is never called with a backwards target LabelID, and there is
even an assertion to this effect at the top of the function body.

  • VM/CodeGenerator.cpp: (JSC::CodeGenerator::emitJumpIfFalse):
19:14 Changeset [37754] by weinig@apple.com

WebCore:

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

Reviewed by Anders Carlsson.

Remove FrameLoaderClient::detachedFromParent4. It is no longer used by any port.

  • loader/EmptyClients.h: (WebCore::EmptyFrameLoaderClient::detachedFromParent4):.
  • loader/FrameLoader.cpp: (WebCore::FrameLoader::detachFromParent):
  • loader/FrameLoaderClient.h:

WebKit/gtk:

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

Reviewed by Anders Carlsson.

Remove FrameLoaderClient::detachedFromParent4. It is no longer used by any port.

  • WebCoreSupport/FrameLoaderClientGtk.cpp:
  • WebCoreSupport/FrameLoaderClientGtk.h:

WebKit/mac:

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

Reviewed by Anders Carlsson.

Remove FrameLoaderClient::detachedFromParent4. It is no longer used by any port.

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

WebKit/qt:

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

Reviewed by Anders Carlsson.

Remove FrameLoaderClient::detachedFromParent4. It is no longer used by any port.

  • WebCoreSupport/FrameLoaderClientQt.cpp:
  • WebCoreSupport/FrameLoaderClientQt.h:

WebKit/win:

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

Reviewed by Anders Carlsson.

Remove FrameLoaderClient::detachedFromParent4. It is no longer used by any port.

  • WebFrame.cpp:
  • WebFrame.h:

WebKit/wx:

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

Reviewed by Anders Carlsson.

Remove FrameLoaderClient::detachedFromParent4. It is no longer used by any port.

  • WebKitSupport/FrameLoaderClientWx.cpp:
  • WebKitSupport/FrameLoaderClientWx.h:
18:22 Changeset [37753] by antti@apple.com

2008-10-20 Antti Koivisto <antti@apple.com>

Reviewed by Adele Peterson.

Fix https://bugs.webkit.org/show_bug.cgi?id=21763
REGRESSION (r36108-r36113): Can't load picture content on wired.com galleries
<rdar://problem/6285025


If we get 304 response we need to explicitly check if that completes the frame load.


No test case, simulating the condition is pretty difficult.

  • loader/loader.cpp: (WebCore::Loader::Host::didReceiveResponse):
18:05 Changeset [37752] by andersca@apple.com

2008-10-20 Anders Carlsson <andersca@apple.com>

Reviewed by Mark Rowe.

Work around <rdar://problem/6301728>.


Don't assert that loads are deferred when we're using CFNetwork on Mac or Windows.


  • loader/MainResourceLoader.cpp: (WebCore::MainResourceLoader::didReceiveResponse): (WebCore::MainResourceLoader::didReceiveData): (WebCore::MainResourceLoader::didFinishLoading): (WebCore::MainResourceLoader::didFail):
17:20 Changeset [37751] by cwzwarich@webkit.org

2008-10-20 Cameron Zwarich <zwarich@apple.com>

Not reviewed.

Update the ChangeLog for previous commit to contain meaningful
information.

  • ChangeLog
17:10 Changeset [37750] by cwzwarich@webkit.org

2008-10-20 Cameron Zwarich <zwarich@apple.com>

Rubber-stamped by Sam Weinig.

  • VM/Machine.cpp: (JSC::Machine::privateExecute):
15:47 Changeset [37749] by bdakin@apple.com

2008-10-20 Beth Dakin <bdakin@apple.com>

Reviewed by Adele Peterson.

Speculative fix for <rdar://problem/6242585> CrashTracer: [USER] 19
crashes in Safari at com.apple.WebCore
WebCore::ScrollView::visibleContentRect const + 153

d->m_view can be null and is null-checked at other points in the
code. The logs indicate that this crash occurs when closing a
window containing a PDF, so in case where we crash, the PDF's view
is probably already null. So the fix is to simply add a null-check.

  • page/Frame.cpp: (WebCore::Frame::selectionRect):
14:31 Changeset [37748] by adele@apple.com

2008-10-20 Adele Peterson <adele@apple.com>

Reviewed by Darin Adler.

  • html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::formData): Removed stray increment that would screw up any form with multiple files in it.
14:27 Changeset [37747] by weinig@apple.com

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

Reviewed by Cameron Zwarich.

Fix for https://bugs.webkit.org/show_bug.cgi?id=21683
Don't create intermediate StructureIDs for builtin objects

Second stage in reduce number of StructureIDs created when initializing the
JSGlobalObject.

  • Use putDirectWithoutTransition for the remaining singleton objects to reduce the number of StructureIDs create for about:blank from 132 to 73.
  • kjs/ArrayConstructor.cpp: (JSC::ArrayConstructor::ArrayConstructor):
  • kjs/BooleanConstructor.cpp: (JSC::BooleanConstructor::BooleanConstructor):
  • kjs/BooleanPrototype.cpp: (JSC::BooleanPrototype::BooleanPrototype):
  • kjs/DateConstructor.cpp: (JSC::DateConstructor::DateConstructor):
  • kjs/ErrorConstructor.cpp: (JSC::ErrorConstructor::ErrorConstructor):
  • kjs/ErrorPrototype.cpp: (JSC::ErrorPrototype::ErrorPrototype):
  • kjs/FunctionConstructor.cpp: (JSC::FunctionConstructor::FunctionConstructor):
  • kjs/FunctionPrototype.cpp: (JSC::FunctionPrototype::FunctionPrototype): (JSC::FunctionPrototype::addFunctionProperties):
  • kjs/FunctionPrototype.h: (JSC::FunctionPrototype::createStructureID):
  • kjs/InternalFunction.cpp:
  • kjs/InternalFunction.h: (JSC::InternalFunction::InternalFunction):
  • kjs/JSGlobalObject.cpp: (JSC::JSGlobalObject::reset):
  • kjs/JSObject.h:
  • kjs/MathObject.cpp: (JSC::MathObject::MathObject):
  • kjs/NumberConstructor.cpp: (JSC::NumberConstructor::NumberConstructor):
  • kjs/NumberPrototype.cpp: (JSC::NumberPrototype::NumberPrototype):
  • kjs/ObjectConstructor.cpp: (JSC::ObjectConstructor::ObjectConstructor):
  • kjs/RegExpConstructor.cpp: (JSC::RegExpConstructor::RegExpConstructor):
  • kjs/RegExpPrototype.cpp: (JSC::RegExpPrototype::RegExpPrototype):
  • kjs/StringConstructor.cpp: (JSC::StringConstructor::StringConstructor):
  • kjs/StringPrototype.cpp: (JSC::StringPrototype::StringPrototype):
  • kjs/StructureID.cpp: (JSC::StructureID::dumpStatistics):
  • kjs/StructureID.h: (JSC::StructureID::setPrototypeWithoutTransition):
13:42 Changeset [37746] by weinig@apple.com

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

Rubber-stamped by David Hyatt.

Split LengthBox and LengthSize into their own files.

  • GNUmakefile.am:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/Length.h: (WebCore::Length::blend):
  • platform/LengthBox.h: Copied from platform/Length.h. (WebCore::LengthBox::LengthBox): (WebCore::LengthBox::nonZero):
  • platform/LengthSize.h: Copied from platform/Length.h. (WebCore::LengthSize::LengthSize): (WebCore::LengthSize::setWidth): (WebCore::LengthSize::setHeight): (WebCore::LengthSize::height):
  • platform/Theme.h:
  • rendering/style/FillLayer.h:
  • rendering/style/NinePieceImage.h: (WebCore::NinePieceImage::NinePieceImage):
  • rendering/style/RenderStyle.h:
  • rendering/style/StyleDashboardRegion.h:
  • rendering/style/StyleSurroundData.h:
  • rendering/style/StyleVisualData.h:
13:15 Changeset [37745] by mitz@apple.com
  • Mac build fix
  • WebCore.xcodeproj/project.pbxproj:
12:30 Changeset [37744] by alp@webkit.org

2008-10-20 Alp Toker <alp@nuanti.com>

Fix autotools dist build target by listing recently added header
files only. Not reviewed.

12:27 Changeset [37743] by hyatt@apple.com

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

Clean up some USE(NEW_THEME) ifdefs (I botched one of them and have broken non-Mac platforms). Also
refactor some of the code that I put in ThemeMac to be cross-platform, since it was in RenderTheme.cpp
originally.

ifdef some methods in RenderTheme.cpp also that are no longer needed with the new Theme.

Reviewed by Adam Roben

  • WebCore.xcodeproj/project.pbxproj:
  • platform/Theme.cpp: Added. (WebCore::Theme::controlSupportsBorder): (WebCore::Theme::controlSupportsPadding):
  • platform/Theme.h:
  • platform/mac/ThemeMac.h:
  • platform/mac/ThemeMac.mm:
  • rendering/RenderTheme.cpp: (WebCore::RenderTheme::adjustStyle):
  • rendering/RenderTheme.h:
12:18 Changeset [37742] by hyatt@apple.com

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

Rename LengthBox's members to have m_ in front of them.

Reviewed by Sam Weinig

  • css/CSSComputedStyleDeclaration.cpp: (WebCore::valueForNinePieceImage): (WebCore::getPositionOffsetValue): (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
  • css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::mapNinePieceImage):
  • platform/Length.h: (WebCore::LengthBox::LengthBox): (WebCore::LengthBox::left): (WebCore::LengthBox::right): (WebCore::LengthBox::top): (WebCore::LengthBox::bottom): (WebCore::LengthBox::operator==): (WebCore::LengthBox::nonZero):
  • rendering/RenderObject.cpp: (WebCore::RenderObject::paintNinePieceImage): (WebCore::RenderObject::addDashboardRegions):
  • rendering/style/RenderStyle.cpp: (WebCore::positionedObjectMoved): (WebCore::RenderStyle::setClip): (WebCore::RenderStyle::noneDashboardRegions):
  • rendering/style/RenderStyle.h: (WebCore::InheritedFlags::left): (WebCore::InheritedFlags::right): (WebCore::InheritedFlags::top): (WebCore::InheritedFlags::bottom): (WebCore::InheritedFlags::clipLeft): (WebCore::InheritedFlags::clipRight): (WebCore::InheritedFlags::clipTop): (WebCore::InheritedFlags::clipBottom): (WebCore::InheritedFlags::marginTop): (WebCore::InheritedFlags::marginBottom): (WebCore::InheritedFlags::marginLeft): (WebCore::InheritedFlags::marginRight): (WebCore::InheritedFlags::paddingTop): (WebCore::InheritedFlags::paddingBottom): (WebCore::InheritedFlags::paddingLeft): (WebCore::InheritedFlags::paddingRight): (WebCore::InheritedFlags::setLeft): (WebCore::InheritedFlags::setRight): (WebCore::InheritedFlags::setTop): (WebCore::InheritedFlags::setBottom): (WebCore::InheritedFlags::setDashboardRegion): (WebCore::InheritedFlags::setClipLeft): (WebCore::InheritedFlags::setClipRight): (WebCore::InheritedFlags::setClipTop): (WebCore::InheritedFlags::setClipBottom): (WebCore::InheritedFlags::setMarginTop): (WebCore::InheritedFlags::setMarginBottom): (WebCore::InheritedFlags::setMarginLeft): (WebCore::InheritedFlags::setMarginRight): (WebCore::InheritedFlags::setPaddingTop): (WebCore::InheritedFlags::setPaddingBottom): (WebCore::InheritedFlags::setPaddingLeft): (WebCore::InheritedFlags::setPaddingRight):
12:03 Changeset [37741] by timothy@apple.com

Make the Resource panel perform graph updates atomically, so when resources
are added the graph and summary graph update at the same time.

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

Reviewed by Kevin McCullough.

  • inspector/front-end/Resource.js: (WebInspector.Resource.prototype.get startTime): Return -1 if the _startTime property is undefined, null or 0. This allows callers to check for -1 and not the other values when there is no startTime yet. (WebInspector.Resource.prototype.get responseReceivedTime): Ditto. (WebInspector.Resource.prototype.get endTime): Ditto. (WebInspector.Resource.prototype.get duration): Remove an extra empty line. (WebInspector.Resource.prototype.get latency): Ditto. (WebInspector.Resource.prototype.get contentLength): Return 0 if the _duration property is undefined or null. This allows callers to always assume a number. (WebInspector.Resource.prototype.get expectedContentLength): Ditto. (WebInspector.Resource.prototype.get errors): Simplify the case where there is no _errors property yet. (WebInspector.Resource.prototype.set errors): Remove the check if the new value if the same as the previous value, since there is no work to guard. (WebInspector.Resource.prototype.get warnings): Simplify the case where there is no _warnings property yet. (WebInspector.Resource.prototype.set warnings): Remove the check if the new value if the same as the previous value, since there is no work to guard. (WebInspector.Resource.CompareByResponseReceivedTime): Add cases for when the responseReceivedTime is -1. (WebInspector.Resource.CompareByEndTime): Add cases for when the endTime is -1.
  • inspector/front-end/ResourcesPanel.js: (WebInspector.ResourcesPanel.prototype.get searchableViews): If a resource does not have a _resourcesTreeElement yet, exclude it from the searchable views. (WebInspector.ResourcesPanel.prototype.set calculator): Set _staleResource to _resources and call refresh to refresh the entire graph. (WebInspector.ResourcesPanel.prototype.set needsRefresh): Set a timeout if the panel is visible that calls refresh. (WebInspector.ResourcesPanel.prototype.refresh): Create the resource tree element and graph for a resource if it hasn't been created yet. If the boundaries changed during the first stale resource pass, do a full pass of all resources when updating the graphs. (WebInspector.ResourcesPanel.prototype.reset): Remove the legend items. (WebInspector.ResourcesPanel.prototype.addResource): Don't create the tree element and graph, these are now created during the first refresh. (WebInspector.ResourcesPanel.prototype.removeResource): Null check _resourcesTreeElement. (WebInspector.ResourcesPanel.prototype.addMessageToResource): Ditto. (WebInspector.ResourcesPanel.prototype.clearMessages): Ditto. (WebInspector.ResourcesPanel.prototype.refreshResource): Remove most of the work, just add the resource to the _staleResources and set needsRefresh. (WebInspector.ResourcesPanel.prototype.recreateViewForResourceIfNeeded): Null check _resourcesTreeElement. (WebInspector.ResourcesPanel.prototype._sortResourcesIfNeeded): Remove code to clear the timeout used by the deleted _sortResourcesSoonIfNeeded. Remove call to removeChild since the insertBefore call will do it if needed. (WebInspector.ResourcesPanel.prototype._updateGraphDividersIfNeeded): Remove code to clear the timeout used by the deleted _updateGraphDividersSoonIfNeeded. (WebInspector.ResourcesPanel.prototype._updateSummaryGraph): Remove code to clear the timeout used by the deleted _updateSummaryGraphSoon. No need to remove the totalLegendLabel, since all the legend items are removed in one pass right before. (WebInspector.ResourcesPanel.prototype._changeSortingFunction): Set the sortingFunction before the calculator so the correct sortingFunction is there when a refresh happens. (WebInspector.ResourceTimeCalculator.prototype.computeBarGraphPercentages): Set start to 0 when the startTime is -1, since that looks best visually. Also set middle and end to the start and middle (respectfully) when startAtZero. This looks best visually. (WebInspector.ResourceGraph): Start the graph as hidden until the first refresh. (WebInspector.ResourceGraph.prototype.refresh): Remove the hidden class.
11:45 Changeset [37740] by hyatt@apple.com

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

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

Make sure that the haveMetadata flag is set to true for generated images from image buffers, so that
no attempt is made to re-cache the frame from a non-existent image source.

Reviewed by Sam Weinig

  • platform/graphics/cairo/ImageCairo.cpp: (WebCore::BitmapImage::BitmapImage):
  • platform/graphics/cg/ImageCG.cpp: (WebCore::BitmapImage::BitmapImage):
11:23 Changeset [37739] by mitz@apple.com

Reviewed by John Sullivan.

  • make hasARenderedDescendant() have internal linkage
  • editing/CompositeEditCommand.cpp: (WebCore::hasARenderedDescendant):
11:04 Changeset [37738] by alp@webkit.org

2008-10-20 Alp Toker <alp@nuanti.com>

Partial GTK+/Win32 build fix. Lowercase library name to enable linking
when cross-compiling Windows binaries from Linux: -lWs2_32 -> -lws2_32

  • configure.ac:
10:57 Changeset [37737] by cfleizach@apple.com

Bug 21721: 1 crash in Safari at com.apple.WebCore • WebCore::RenderTableSection::numColumns const + 12

10:42 Changeset [37736] by ggaren@apple.com

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

Reviewed by Anders Carlsson.

  • VM/Machine.cpp: (JSC::Machine::tryCacheGetByID): Removed a redundant and sometimes incorrect cast, which started ASSERTing after Darin's last checkin.
10:40 Changeset [37735] by hyatt@apple.com

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

Avoid some stderr spew from CG by checking if we have a decoder yet in ImageSourceCG.

Reviewed by Darin Adler

  • platform/graphics/cg/ImageSourceCG.cpp: (WebCore::ImageSource::repetitionCount): (WebCore::ImageSource::frameDurationAtIndex):
10:28 Changeset [37734] by ggaren@apple.com

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

Not reviewed.


Re-enable CTI, which I accidentally disabled while checking in fixes
to bytecode.

  • wtf/Platform.h:
10:10 Changeset [37733] by alp@webkit.org

2008-10-20 Alp Toker <alp@nuanti.com>

Rubber-stamped by Mark Rowe.

Typo fix in function name: mimimum -> minimum.

  • kjs/DateMath.cpp: (JSC::minimumYearForDST): (JSC::equivalentYearForDST):
10:06 Changeset [37732] by alp@webkit.org

2008-10-20 Alp Toker <alp@nuanti.com>

Reviewed by Mark Rowe.

Use pthread instead of GThread where possible in the GTK+ port. This
fixes issues with global initialisation, particularly on GTK+/Win32
where a late g_thread_init() will cause hangs.

Fix the pthread conditionals in the FTP code to correctly define
threadsafe *_r functions on Windows. Partly fixes the GTK+/Win32
build.

09:50 Changeset [37731] by hyatt@apple.com

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

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

Convert checkboxes and radio buttons on OS X over to the new Theme API.

Reviewed by Adam Roben

  • css/CSSComputedStyleDeclaration.cpp: (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
  • css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::mapFillSize):
  • platform/Length.h: (WebCore::LengthSize::LengthSize): (WebCore::LengthSize::operator==): (WebCore::LengthSize::width): (WebCore::LengthSize::height): (WebCore::LengthSize::setWidth): (WebCore::LengthSize::setHeight):
  • platform/Theme.h: (WebCore::Theme::controlSize): (WebCore::Theme::controlSupportsBorder): (WebCore::Theme::controlSupportsPadding): (WebCore::Theme::paint): (WebCore::Theme::inflateControlPaintRect):
  • platform/ThemeTypes.h: (WebCore::):
  • platform/mac/ThemeMac.h:
  • platform/mac/ThemeMac.mm: (WebCore::): (WebCore::controlSizeForFont): (WebCore::sizeFromFont): (WebCore::setControlSize): (WebCore::updateStates): (WebCore::inflateRect): (WebCore::checkboxSizes): (WebCore::checkboxMargins): (WebCore::checkboxSize): (WebCore::checkbox): (WebCore::paintCheckbox): (WebCore::radioSizes): (WebCore::radioMargins): (WebCore::radioSize): (WebCore::radio): (WebCore::paintRadio): (WebCore::ThemeMac::baselinePositionAdjustment): (WebCore::ThemeMac::controlSize): (WebCore::ThemeMac::controlSupportsBorder): (WebCore::ThemeMac::controlSupportsPadding): (WebCore::ThemeMac::inflateControlPaintRect): (WebCore::ThemeMac::paint):
  • rendering/RenderBox.cpp: (WebCore::RenderBox::calculateBackgroundSize):
  • rendering/RenderObject.cpp: (WebCore::mustRepaintFillLayers):
  • rendering/RenderTheme.cpp: (WebCore::RenderTheme::adjustStyle): (WebCore::RenderTheme::paint): (WebCore::RenderTheme::baselinePosition): (WebCore::RenderTheme::adjustRepaintRect): (WebCore::RenderTheme::controlStatesForRenderer): (WebCore::RenderTheme::isFocused):
  • rendering/RenderTheme.h:
  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::adjustRepaintRect):
  • rendering/style/FillLayer.cpp: (WebCore::FillLayer::operator==):
09:48 Changeset [37730] by ggaren@apple.com

JavaScriptCore:

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

Reviewed by Darin Adler.


Fixed https://bugs.webkit.org/show_bug.cgi?id=21735
Emit profiling instrumentation only if the Web Inspector's profiling
feature is enabled

22.2% speedup on empty function call benchmark.
2.9% speedup on v8 benchmark.
0.7% speedup on SunSpider.


Lesser but similar speedups in bytecode.

  • VM/CTI.cpp: (JSC::CTI::compileOpCall): (JSC::CTI::privateCompileMainPass): (JSC::CTI::privateCompileSlowCases): Nixed JITed profiler hooks. Profiler hooks now have their own opcodes. Added support for compiling profiler hook opcodes.


(JSC::CodeBlock::dump): Dump support for the new profiling opcodes.

  • VM/CodeGenerator.h:
  • VM/CodeGenerator.cpp: (JSC::CodeGenerator::CodeGenerator): (JSC::CodeGenerator::emitCall): (JSC::CodeGenerator::emitConstruct): Conditionally emit profiling hooks around call and construct, at the call site. (It's easier to get things right this way, if you have profiled code calling non-profiled code. Also, you get a slightly more accurate profile, since you charge the full cost of the call / construct operation to the callee.)


Also, fixed a bug where construct would fetch the ".prototype" property
from the constructor before evaluating the arguments to the constructor,
incorrectly allowing an "invalid constructor" exception to short-circuit
argument evaluation. I encountered this bug when trying to make
constructor exceptions work with profiling.

  • VM/Machine.cpp: (JSC::Machine::callEval): Removed obsolete profiler hooks.

(JSC::Machine::throwException): Added a check for an exception thrown
within a call instruction. We didn't need this before because the call
instruction would check for a valid call before involing the profiler.
(JSC::Machine::execute): Added a didExecute hook at the end of top-level
function invocation, since op_ret no longer does this for us.

(JSC::Machine::privateExecute): Removed obsolete profiler hooks. Added
profiler opcodes. Changed some ++vPC to vPC[x] notation, since the
latter is better for performance, and it makes reasoning about the
current opcode in exception handling much simpler.

(JSC::Machine::cti_op_call_NotJSFunction): Removed obsolete profiler
hooks.

(JSC::Machine::cti_op_create_arguments_no_params): Added missing
CTI_STACK_HACK that I noticed when adding CTI_STACK_HACK to the new
profiler opcode functions.

(JSC::Machine::cti_op_profile_will_call):
(JSC::Machine::cti_op_profile_did_call): The new profiler opcode
functions.

(JSC::Machine::cti_op_construct_NotJSConstruct): Removed obsolete profiler
hooks.

  • VM/Machine.h: (JSC::Machine::isCallOpcode): Helper for exception handling.
  • VM/Opcode.h: Declare new opcodes.
  • kjs/JSGlobalObject.h: (JSC::JSGlobalObject::supportsProfiling): Added virtual interface that allows WebCore to specify whether the target global object has the Web Inspector's profiling feature enabled.
  • profiler/Profiler.cpp: (JSC::Profiler::willExecute): (JSC::Profiler::didExecute): (JSC::Profiler::createCallIdentifier):
  • profiler/Profiler.h: Added support for invoking the profiler with an arbitrary JSValue*, and not a known object. We didn't need this before because the call instruction would check for a valid call before involing the profiler.

WebCore:

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

Reviewed by Darin Adler.

Fixed https://bugs.webkit.org/show_bug.cgi?id=21735
Emit profiling instrumentation only if the Web Inspector's profiling
feature is enabled

  • bindings/js/JSDOMWindowBase.cpp: (WebCore::JSDOMWindowBase::supportsProfiling):
  • bindings/js/JSDOMWindowBase.h: Implemented the interface for specifying whether a target global object has the Web Inspector's profiling feature enabled.
  • inspector/JavaScriptDebugServer.cpp: (WebCore::JavaScriptDebugServer::recompileAllJSFunctionsSoon): (WebCore::JavaScriptDebugServer::didAddListener): (WebCore::JavaScriptDebugServer::didRemoveListener):
  • inspector/JavaScriptDebugServer.h: Exported an API for recompiling, used by the Settings object.
  • page/Settings.cpp: (WebCore::Settings::Settings): (WebCore::Settings::setDeveloperExtrasEnabled):
  • page/Settings.h: Recompile when the developer menu is enabled/disabled for the first time, to add/remove profiling hooks. In the future, with better Web Inspector UI, we can do this on a page-by-page basis, instead of a global basis.

LayoutTests:

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

Reviewed by Darin Adler.

Test for bugs fixed while working on https://bugs.webkit.org/show_bug.cgi?id=21735
Emit profiling instrumentation only if the Web Inspector's profiling
feature is enabled

  • fast/js/exception-thrown-from-new-expected.txt: Added.
  • fast/js/exception-thrown-from-new.html: Added.
09:42 Changeset [37729] by ap@webkit.org

Add Worker to the results - although it is just a stub right now, it is present in the list
of window properties.

  • fast/dom/Window/window-properties-expected.txt:
09:22 Changeset [37728] by darin@apple.com

2008-10-20 Darin Adler <darin@apple.com>

Reviewed by Geoff Garen.

  • get CTI working on Windows again
  • VM/CTI.cpp: (JSC::CTI::emitCTICall): Add an overload for functions that return JSObject*.
  • VM/CTI.h: Use JSValue* and JSObject* as return types for cti_op functions. Apparently, MSVC doesn't handle returning the JSValuePtr struct in a register. We'll have to look into this more.
  • VM/Machine.cpp: (JSC::Machine::cti_op_convert_this): (JSC::Machine::cti_op_add): (JSC::Machine::cti_op_pre_inc): (JSC::Machine::cti_op_new_object): (JSC::Machine::cti_op_get_by_id): (JSC::Machine::cti_op_get_by_id_second): (JSC::Machine::cti_op_get_by_id_generic): (JSC::Machine::cti_op_get_by_id_fail): (JSC::Machine::cti_op_instanceof): (JSC::Machine::cti_op_del_by_id): (JSC::Machine::cti_op_mul): (JSC::Machine::cti_op_new_func): (JSC::Machine::cti_op_push_activation): (JSC::Machine::cti_op_call_NotJSFunction): (JSC::Machine::cti_op_new_array): (JSC::Machine::cti_op_resolve): (JSC::Machine::cti_op_construct_JSConstructFast): (JSC::Machine::cti_op_construct_NotJSConstruct): (JSC::Machine::cti_op_get_by_val): (JSC::Machine::cti_op_sub): (JSC::Machine::cti_op_lesseq): (JSC::Machine::cti_op_negate): (JSC::Machine::cti_op_resolve_base): (JSC::Machine::cti_op_resolve_skip): (JSC::Machine::cti_op_resolve_global): (JSC::Machine::cti_op_div): (JSC::Machine::cti_op_pre_dec): (JSC::Machine::cti_op_not): (JSC::Machine::cti_op_eq): (JSC::Machine::cti_op_lshift): (JSC::Machine::cti_op_bitand): (JSC::Machine::cti_op_rshift): (JSC::Machine::cti_op_bitnot): (JSC::Machine::cti_op_new_func_exp): (JSC::Machine::cti_op_mod): (JSC::Machine::cti_op_less): (JSC::Machine::cti_op_neq): (JSC::Machine::cti_op_urshift): (JSC::Machine::cti_op_bitxor): (JSC::Machine::cti_op_new_regexp): (JSC::Machine::cti_op_bitor): (JSC::Machine::cti_op_call_eval): (JSC::Machine::cti_op_throw): (JSC::Machine::cti_op_next_pname): (JSC::Machine::cti_op_typeof): (JSC::Machine::cti_op_is_undefined): (JSC::Machine::cti_op_is_boolean): (JSC::Machine::cti_op_is_number): (JSC::Machine::cti_op_is_string): (JSC::Machine::cti_op_is_object): (JSC::Machine::cti_op_is_function): (JSC::Machine::cti_op_stricteq): (JSC::Machine::cti_op_nstricteq): (JSC::Machine::cti_op_to_jsnumber): (JSC::Machine::cti_op_in): (JSC::Machine::cti_op_push_new_scope): (JSC::Machine::cti_op_del_by_val): (JSC::Machine::cti_op_new_error): (JSC::Machine::cti_vm_throw): Change these functions to return pointer types, and never JSValuePtr.
  • VM/Machine.h: Ditto.
09:09 Changeset [37727] by ggaren@apple.com

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

Reviewed by Darin Adler.


Fixed some recent break-age in bytecode mode.

  • VM/CodeBlock.cpp: (JSC::CodeBlock::printStructureIDs): Fixed up an ASSERT caused by Gavin's last checkin. This is a temporary fix so I can keep on moving. I'll send email about what I think is an underlying problem soon.
  • VM/Machine.cpp: (JSC::Machine::privateExecute): Removed a redundant and sometimes incorrect cast, which started ASSERTing after Darin's last checkin.
08:54 Changeset [37726] by hyatt@apple.com

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

Move Length to platform/.

Reviewed by Adam Roben

  • GNUmakefile.am:
  • WebCore.pro:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • WebCoreSources.bkl:
  • platform/Length.cpp: Copied from rendering/Length.cpp.
  • platform/Length.h: Copied from rendering/Length.h.
08:39 Changeset [37725] by alp@webkit.org

2008-10-20 Alp Toker <alp@nuanti.com>

Reviewed by Dave Hyatt.

https://bugs.webkit.org/show_bug.cgi?id=21303
[GTK] Scrolling glitches

Implement a buffering scheme to avoid full repaints when scrolling
views or subframes significantly improving scrolling performance.

Improve rendering performance by coalescing large numbers of small
repaints.

Also fixes long-running issues with scrollbar positioning and frame
invalidation.

Rendering in the GTK+ port should be more similar to other ports after
these changes.

  • WebCoreSupport/ChromeClientGtk.cpp: (WebKit::ChromeClient::repaint): (WebKit::ChromeClient::scroll):
  • WebCoreSupport/FrameLoaderClientGtk.cpp: (WebKit::FrameLoaderClient::forceLayout):
  • webkit/webkitwebview.cpp:
08:29 Changeset [37724] by darin@apple.com

2008-10-20 Darin Adler <darin@apple.com>

  • try to fix Qt build
  • bridge/qt/qt_runtime.cpp: (JSC::Bindings::QtRuntimeMetaMethod::connectGetter): Add asObject calls. (JSC::Bindings::QtRuntimeMetaMethod::disconnectGetter): Ditto.
08:28 Changeset [37723] by darin@apple.com

2008-10-20 Darin Adler <darin@apple.com>

  • try to fix Qt build
  • bridge/qt/qt_instance.cpp: (JSC::Bindings::QtInstance::mark): Use JSValue* instead of JSValuePtr. (JSC::Bindings::QtField::valueFromInstance): Ditto.
  • bridge/qt/qt_instance.h: Ditto.
08:24 Changeset [37722] by darin@apple.com

2008-10-20 Darin Adler <darin@apple.com>

  • another similar Windows build fix
  • VM/CTI.cpp: Changed return type to JSObject* instead of JSValuePtr.
08:19 Changeset [37721] by darin@apple.com

2008-10-20 Darin Adler <darin@apple.com>

  • try to fix Windows build
  • VM/CTI.cpp: Use JSValue* instead of JSValuePtr for ctiTrampoline.
  • VM/CTI.h: Ditto.
08:16 Changeset [37720] by darin@apple.com

2008-10-20 Darin Adler <darin@apple.com>

  • try to fix Tiger build
  • bridge/objc/objc_instance.mm: (ObjcInstance::invokeMethod): Add a const_cast to remove the unwanted volatile qualifier. (ObjcInstance::invokeDefaultMethod): Ditto. (ObjcInstance::getValueOfUndefinedField): Ditto.
  • bridge/objc/objc_runtime.mm: (JSC::Bindings::ObjcField::valueFromInstance): Ditto.
08:14 Changeset [37719] by ap@webkit.org

Commit a file that was missing from the previous check-in.

08:13 Changeset [37718] by ap@webkit.org

Reviewed by Darin Adler.

https://bugs.webkit.org/show_bug.cgi?id=21750
Eliminate the notion of "temporary events"

We mark some events as temporary when dispatching, for the sole reason of
manually calling forgetDOMObject when done dispatching.

There doesn't seem to be any reason to call it manually, as JSEvent destructor
will do this automatically right away.

  • bindings/js/ScriptController.cpp:
  • bindings/js/ScriptController.h: Removed ScriptController::finishedWithEvent(), which was called after dispatching a temporary event.
  • dom/ContainerNode.cpp: (WebCore::dispatchChildInsertionEvents): (WebCore::dispatchChildRemovalEvents):
  • dom/EventTarget.h:
  • dom/EventTargetNode.cpp: (WebCore::EventTargetNode::dispatchEvent): (WebCore::EventTargetNode::dispatchGenericEvent): (WebCore::EventTargetNode::dispatchSubtreeModifiedEvent): (WebCore::EventTargetNode::dispatchWindowEvent): (WebCore::EventTargetNode::dispatchUIEvent): (WebCore::EventTargetNode::dispatchKeyEvent): (WebCore::EventTargetNode::dispatchMouseEvent): (WebCore::EventTargetNode::dispatchWheelEvent): (WebCore::EventTargetNode::dispatchWebKitAnimationEvent): (WebCore::EventTargetNode::dispatchWebKitTransitionEvent): (WebCore::EventTargetNode::dispatchEventForType): (WebCore::EventTargetNode::dispatchProgressEvent): (WebCore::EventTargetNode::dispatchStorageEvent):
  • dom/EventTargetNode.h:
  • dom/MessagePort.cpp: (WebCore::MessagePort::dispatchMessages): (WebCore::MessagePort::dispatchCloseEvent): (WebCore::MessagePort::dispatchEvent):
  • dom/MessagePort.h:
  • editing/Editor.cpp: (WebCore::Editor::dispatchCPPEvent): (WebCore::dispatchEditableContentChangedEvents):
  • editing/ReplaceSelectionCommand.cpp: (WebCore::ReplacementFragment::ReplacementFragment):
  • editing/TypingCommand.cpp: (WebCore::TypingCommand::insertText):
  • loader/appcache/DOMApplicationCache.cpp: (WebCore::DOMApplicationCache::dispatchEvent): (WebCore::DOMApplicationCache::callListener):
  • loader/appcache/DOMApplicationCache.h:
  • page/EventHandler.cpp: (WebCore::EventHandler::dispatchDragEvent): (WebCore::EventHandler::keyEvent): (WebCore::EventHandler::handleTextInputEvent):
  • page/FrameView.cpp: (WebCore::FrameView::scheduleEvent): (WebCore::FrameView::updateOverflowStatus): (WebCore::FrameView::dispatchScheduledEvents):
  • page/FrameView.h:
  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::scrollToOffset): (WebCore::RenderLayer::updateOverflowStatus):
  • svg/SVGElement.cpp: (WebCore::SVGElement::sendSVGLoadEventIfPossible):
  • svg/SVGElementInstance.cpp: (WebCore::SVGElementInstance::dispatchEvent):
  • svg/SVGElementInstance.h:
  • xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::dispatchEvent): (WebCore::XMLHttpRequest::dispatchReadyStateChangeEvent): (WebCore::XMLHttpRequest::dispatchXMLHttpRequestProgressEvent):
  • xml/XMLHttpRequest.h:
  • xml/XMLHttpRequestUpload.cpp: (WebCore::XMLHttpRequestUpload::dispatchEvent): (WebCore::XMLHttpRequestUpload::dispatchXMLHttpRequestProgressEvent):
  • xml/XMLHttpRequestUpload.h: Don't pass the tempEvent boolean around.
07:34 Changeset [37717] by ap@webkit.org

Reviewed by Oliver Hunt.

<rdar://problem/6277777> REGRESSION (r36954): XMLHttpRequest not working when
certain WebView delegate actions are taken

  • WebView/WebFrame.mm: (-[WebFrame _attachScriptDebugger]): Don't accidentally create a window shell if there is none yet.
04:32 Changeset [37716] by alp@webkit.org

2008-10-20 Alp Toker <alp@nuanti.com>

Remove unused includes only. Partial GTK+/Win build fix.

  • platform/graphics/gtk/SimpleFontDataPango.cpp:
02:24 Changeset [37715] by ap@webkit.org

Reviewed by Oliver Hunt.

https://bugs.webkit.org/show_bug.cgi?id=21705
Implement Web Workers client-side API

The implementation is experimental, and disabled by default. It doesn't quite match the
published draft, being influenced by further WHATWG discussions.

This only implements the client-side API, and does not actually create any threads or
global contexts yet.

  • DerivedSources.make: Added DedicatedWorker. SharedWorker is not implemented yet, as I'm still not sure if having separate classes for these helps at all.
  • WebCore.xcodeproj/project.pbxproj: Added new files.
  • bindings/js/JSDOMWindowBase.cpp: (jsDOMWindowBaseWorker): (WebCore::JSDOMWindowBase::put): (setJSDOMWindowBaseWorker): Added window.Worker constructor. Moved JSXSLTProcessorConstructor.h include out of ifdef to match prevailing style.
  • bindings/js/JSDedicatedWorkerConstructor.cpp: Added.
  • bindings/js/JSDedicatedWorkerConstructor.h: Added.
  • bindings/js/JSDedicatedWorkerCustom.cpp: Added. The implementation of event listeners are left custom intentionally, for easier implementation of listeners that are not tied to any Document in the future.
  • dom/DedicatedWorker.cpp: Added.
  • dom/DedicatedWorker.h: Added.
  • dom/DedicatedWorker.idl: Added. Added an implementation that can only load requested scripts for now.
00:29 Changeset [37714] by darin@apple.com

2008-10-19 Darin Adler <darin@apple.com>

Reviewed by Cameron Zwarich.

  • VM/Machine.cpp: (JSC::Machine::cti_op_call_profiler): Use asFunction. (JSC::Machine::cti_vm_lazyLinkCall): Ditto. (JSC::Machine::cti_op_construct_JSConstructFast): Use asObject.
  • kjs/JSCell.h: Re-sort friend classes. Eliminate inheritance from JSValue. Changed cast in asCell from static_cast to reinterpret_cast. Removed JSValue::getNumber(double&) and one of JSValue::getObject overloads.
  • kjs/JSValue.h: Made the private constructor and destructor both non-virtual and also remove the definitions. This class can never be instantiated or derived.

10/19/08:

23:29 Changeset [37713] by darin@apple.com

2008-10-19 Darin Adler <darin@apple.com>

Reviewed by Dan Bernstein.

  • fix assertion seen when opening inspector
  • bindings/js/JSQuarantinedObjectWrapper.cpp: (WebCore::JSQuarantinedObjectWrapper::getOwnPropertySlot): Removed unneeded asObject cast.
22:58 Changeset [37712] by darin@apple.com

2008-10-19 Darin Adler <darin@apple.com>

Reviewed by Cameron Zwarich.

Change JSValuePtr from a typedef into a class. This allows us to support
conversion from JSCell* to JSValuePtr even if JSCell isn't derived from
JSValue.

  • JavaScriptCore.exp: Updated symbols that involve JSValuePtr, since it's now a distinct type.
  • API/APICast.h: (toRef): Extract the JSValuePtr payload explicitly since we can't just cast any more.
  • VM/CTI.cpp: (JSC::CTI::asInteger): Ditto.
  • VM/CodeGenerator.cpp: (JSC::CodeGenerator::addConstant): Get at the payload directly. (JSC::CodeGenerator::emitLoad): Added an overload of JSCell* because otherwise classes derived from JSValue end up calling the bool overload instead of JSValuePtr.
  • VM/CodeGenerator.h: Ditto. Also update traits to use JSValue* and the payload functions.
  • VM/Register.h: Added a JSCell* overload and use of payload functions.
  • kjs/JSCell.h: (JSC::asCell): Use payload function. (JSC::JSValue::asCell): Use JSValue* instead of JSValuePtr. (JSC::JSValuePtr::JSValuePtr): Added. Constructor that takes JSCell* and creates a JSValuePtr.
  • kjs/JSImmediate.h: Added JSValuePtr class. Also updated makeValue and makeInt to work with JSValue* and the payload function.
  • kjs/JSValue.h: Added == and != operators for JSValuePtr. Put them here because eventually all the JSValue functions should go here except what's needed by JSImmediate. Also fix asValue to use JSValue* instead of JSValuePtr.
  • kjs/PropertySlot.h: Change constructor to take JSValuePtr.
  • kjs/protect.h: Update gcProtect functions to work with JSCell* as well as JSValuePtr. Also updated the ProtectedPtr<JSValuePtr> specialization to work more directly. Also changed all the call sites to use gcProtectNullTolerant.
20:49 Changeset [37711] by mitz@apple.com

Rubber-stamped by Timothy Hatcher.

  • remove empty directories and correct the MIME type of inspector images
  • page/inspector: Removed.
  • page/inspector/Images: Removed.
20:43 Changeset [37710] by timothy@apple.com

Make the Web Inspector Resources panel open quicker and change graphs
faster. There was some accidental n2 logic at fault when updating the
graph boundaries.

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

Reviewed by Darin Adler.

  • inspector/front-end/ResourcesPanel.js: (WebInspector.ResourcesPanel.prototype.set calculator): Return early for a null calculator. Remove the second argument passed to _refreshAllResources. (WebInspector.ResourcesPanel.prototype.refresh): Call updateBoundaries on the calculator for all the stale resources before calling refreshResource. Pass true for the first argument of refreshResource to skip the boundary update. (WebInspector.ResourcesPanel.prototype._updateGraphBoundariesIfNeeded): Remove the second argument passed to _refreshAllResources. (WebInspector.ResourcesPanel.prototype._refreshAllResourcesSoon): Remove the skipSort argument since every passed true, and it would be bad to pass false. (WebInspector.ResourcesPanel.prototype._refreshAllResources): Ditto. And if skipBoundaryUpdate is false, call updateBoundaries on the calculator for all the resources before calling refreshResource. Pass true for the first argument of refreshResource to skip the boundary update.
20:43 Changeset [37709] by timothy@apple.com

Visually distinguish resources that loaded from the memory cache.

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

Reviewed by Dan Bernstein.

  • English.lproj/localizedStrings.js: New string.
  • inspector/front-end/Images/timelineHollowPillBlue.png: Added.
  • inspector/front-end/Images/timelineHollowPillGray.png: Added.
  • inspector/front-end/Images/timelineHollowPillGreen.png: Added.
  • inspector/front-end/Images/timelineHollowPillOrange.png: Added.
  • inspector/front-end/Images/timelineHollowPillPurple.png: Added.
  • inspector/front-end/Images/timelineHollowPillRed.png: Added.
  • inspector/front-end/Images/timelineHollowPillYellow.png: Added.
  • inspector/front-end/ResourcesPanel.js: (WebInspector.ResourceCalculator.prototype.computeBarGraphLabels): Add the "(from cache)" suffix to the tooltip. (WebInspector.ResourceTimeCalculator.prototype.computeBarGraphLabels): Add the "(from cache)" suffix to the tooltip. (WebInspector.ResourceGraph): Add the "resource-cached" class.
  • inspector/front-end/inspector.css: New styles to make the timeline bars use the hollow pill images.
20:43 Changeset [37708] by timothy@apple.com

Update the scroll position in the Resources panel when loading
a new page or toggling on small resource rows.

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

Reviewed by Darin Adler.

  • inspector/front-end/ResourcesPanel.js: (WebInspector.ResourcesPanel.prototype.reset): Scroll to the top, since all the resource are being removed. (WebInspector.ResourcesPanel.prototype.removeResource): Call _adjustScrollPosition in case the view is shorter and needs scrolled. (WebInspector.ResourcesPanel.prototype._toggleLargerResources): Ditto. (WebInspector.ResourcesPanel.prototype._adjustScrollPosition): Check the height of the sidebar against the scrollTop and height of the resourcesContainerElement. If the sidebar is shorter, scroll up so the last resource is at the bottom again.
20:43 Changeset [37707] by timothy@apple.com

Show per resource times and sizes when hovering over the bar graph for a resource.

https://bugs.webkit.org/show_bug.cgi?id=14300
rdar://problem/5712802

Reviewed by Cameron Zwarich.

  • English.lproj/localizedStrings.js: Add new strings.
  • inspector/front-end/Images/graphLabelCalloutLeft.png: Added.
  • inspector/front-end/Images/graphLabelCalloutRight.png: Added.
  • inspector/front-end/ResourcesPanel.js: (WebInspector.ResourcesPanel.prototype.refreshResource): Pass the calculator to the ResourceGraph.refresh function. (WebInspector.ResourceCalculator.prototype.computeBarGraphLabels): Default implementation returns the formatted value. (WebInspector.ResourceTimeCalculator.prototype.computeBarGraphLabels): Return discrete values for the latency and download times. Also generate a custom tooltip. (WebInspector.ResourceGraph): Add a mouseover event listener that calls refreshLabelPositions. (WebInspector.ResourceGraph.prototype.refreshLabelPositions): Added. Updates the label positions in case the bar has changed size. (WebInspector.ResourceGraph.prototype.refresh): Set the label text and tooltips.
  • inspector/front-end/inspector.css: New styles for the labels.
17:28 Changeset [37706] by darin@apple.com

JavaScriptCore:

2008-10-19 Darin Adler <darin@apple.com>

Reviewed by Oliver Hunt.

Remove most uses of JSValue, which will be removed in a future patch.

  • VM/Machine.cpp: (JSC::fastToUInt32): Call toUInt32SlowCase function; no longer a member of JSValue.
  • kjs/JSNumberCell.h: (JSC::JSNumberCell::toInt32): Ditto. (JSC::JSNumberCell::toUInt32): Ditto.
  • kjs/JSValue.cpp: (JSC::toInt32SlowCase): Made a non-member function. (JSC::JSValue::toInt32SlowCase): Changed to call non-member function. (JSC::toUInt32SlowCase): More of the same. (JSC::JSValue::toUInt32SlowCase): Ditto.
  • kjs/JSValue.h: Moved static member function so they are no longer member functions at all.
  • VM/CTI.h: Removed forward declaration of JSValue.
  • VM/ExceptionHelpers.h: Ditto.
  • kjs/CallData.h: Ditto.
  • kjs/ConstructData.h: Ditto.
  • kjs/JSGlobalObjectFunctions.h: Ditto.
  • kjs/PropertyMap.h: Ditto.
  • kjs/StructureID.h: Ditto.
  • kjs/collector.h: Ditto.
  • kjs/completion.h: Ditto.
  • kjs/grammar.y: (JSC::makeBitwiseNotNode): Call new non-member toInt32 function. (JSC::makeLeftShiftNode): More of the same. (JSC::makeRightShiftNode): Ditto.
  • kjs/protect.h: Added a specialization for ProtectedPtr<JSValuePtr> so this can be used with JSValuePtr.

JavaScriptGlue:

2008-10-19 Darin Adler <darin@apple.com>

Reviewed by Oliver Hunt.

Remove most uses of JSValue, which will be removed in a future patch.

  • JSValueWrapper.h: Use JSValuePtr instead of JSValue*.

WebCore:

2008-10-19 Darin Adler <darin@apple.com>

Reviewed by Oliver Hunt.

Remove most uses of JSValue, which will be removed in a future patch.

  • bindings/js/JSCustomXPathNSResolver.h: Removed declaration of JSValue and used JSValuePtr instead.
  • bindings/js/JSEventTarget.h: Ditto.
  • bindings/js/JSNodeFilterCondition.h: Ditto.
  • bindings/js/ScheduledAction.h: Ditto.
  • bindings/js/ScriptController.h: Ditto.
  • bindings/objc/WebScriptObjectPrivate.h: Ditto.
  • bridge/c/c_utility.h: Ditto.
  • bridge/jni/jni_jsobject.h: Ditto.
  • bridge/jni/jni_utility.h: Ditto.
  • bridge/objc/WebScriptObject.h: Ditto.
  • dom/Traversal.h: Ditto.
  • inspector/InspectorController.cpp: Ditto.
  • inspector/JavaScriptProfile.h: Ditto.
  • inspector/JavaScriptProfileNode.h: Ditto.
  • loader/FrameLoader.h: Ditto.
  • page/Console.h: Ditto.
  • plugins/MimeTypeArray.h: Ditto.
  • plugins/Plugin.h: Ditto.
  • plugins/PluginArray.h: Ditto.
  • plugins/PluginView.cpp: (WebCore::getString): Ditto. (WebCore::PluginView::performRequest): Ditto.
  • plugins/gtk/PluginViewGtk.cpp: Ditto.
  • plugins/qt/PluginViewQt.cpp: Ditto.
  • plugins/win/PluginViewWin.cpp: Ditto.
  • bridge/qt/qt_class.cpp: (JSC::Bindings::QtClass::fallbackObject): Use JSValuePtr and JSObject* instead of JSValue*.
  • bridge/qt/qt_class.h: Ditto.
  • bridge/qt/qt_instance.cpp: (JSC::Bindings::QtInstance::mark): Ditto. (JSC::Bindings::QtInstance::invokeMethod): Ditto. (JSC::Bindings::QtInstance::defaultValue): Ditto. (JSC::Bindings::QtInstance::stringValue): Ditto. (JSC::Bindings::QtInstance::numberValue): Ditto. (JSC::Bindings::QtInstance::booleanValue): Ditto. (JSC::Bindings::QtInstance::valueOf): Ditto. (JSC::Bindings::QtField::valueFromInstance): Ditto. (JSC::Bindings::QtField::setValueToInstance): Ditto.
  • bridge/qt/qt_instance.h: Ditto.
  • bridge/qt/qt_runtime.cpp: Ditto. (JSC::Bindings::valueRealType): Ditto. (JSC::Bindings::convertValueToQVariant): Ditto. (JSC::Bindings::convertQVariantToValue): Ditto. (JSC::Bindings::findMethodIndex): Ditto. (JSC::Bindings::QtRuntimeMetaMethod::call): Ditto. (JSC::Bindings::QtRuntimeMetaMethod::lengthGetter): Ditto. (JSC::Bindings::QtRuntimeMetaMethod::connectGetter): Ditto. (JSC::Bindings::QtRuntimeMetaMethod::disconnectGetter): Ditto. (JSC::Bindings::QtRuntimeConnectionMethod::call): Ditto. (JSC::Bindings::QtRuntimeConnectionMethod::lengthGetter): Ditto. (JSC::Bindings::QtArray::setValueAt): Ditto. (JSC::Bindings::QtArray::valueAt): Ditto.
  • bridge/qt/qt_runtime.h: Ditto.
  • bridge/testqtbindings.cpp: (main): Use JSValuePtr.

WebKit/mac:

2008-10-19 Darin Adler <darin@apple.com>

Reviewed by Oliver Hunt.

Remove most uses of JSValue, which will be removed in a future patch.

  • WebView/WebFrame.mm: (-[WebFrame _stringByEvaluatingJavaScriptFromString:forceUserGesture:]): Use JSValuePtr instead of JSValue.
  • WebView/WebScriptDebugger.h: Removed declaration of JSValue.

WebKit/qt:

2008-10-19 Darin Adler <darin@apple.com>

Reviewed by Oliver Hunt.

Remove most uses of JSValue, which will be removed in a future patch.

  • Api/qwebframe.cpp: (QWebFrame::evaluateJavaScript): Use JSValuePtr.

WebKit/win:

2008-10-19 Darin Adler <darin@apple.com>

Reviewed by Oliver Hunt.

Remove most uses of JSValue, which will be removed in a future patch.

  • WebScriptCallFrame.cpp: (WebScriptCallFrame::jsValueToString): Use JSValuePtr. (WebScriptCallFrame::stringByEvaluatingJavaScriptFromString): Ditto. (WebScriptCallFrame::valueForVariable): Put more code inside and ifdef. (WebScriptCallFrame::valueByEvaluatingJavaScriptFromString): Ditto.
  • WebScriptCallFrame.h: Use JSValuePtr.
  • WebView.cpp: (WebView::stringByEvaluatingJavaScriptFromString): Use JSValuePtr.

WebKit/wx:

2008-10-19 Darin Adler <darin@apple.com>

Reviewed by Oliver Hunt.

Remove most uses of JSValue, which will be removed in a future patch.

  • WebFrame.cpp: (wxWebFrame::RunScript): Use JSValuePtr.
09:58 Changeset [37705] by darin@apple.com

JavaScriptCore:

2008-10-18 Darin Adler <darin@apple.com>

Reviewed by Oliver Hunt.

Tweak a little more to get closer to where we can make JSValuePtr a class.

  • API/APICast.h: (toJS): Change back to JSValue* here, since we're converting the pointer type.
  • VM/CTI.cpp: (JSC::CTI::unlinkCall): Call asPointer.
  • VM/CTI.h: Cast to JSValue* here, since it's a pointer cast.
  • kjs/DebuggerCallFrame.h: (JSC::DebuggerCallFrame::DebuggerCallFrame): Call noValue.
  • kjs/JSGlobalData.cpp: (JSC::JSGlobalData::JSGlobalData): Call noValue.
  • kjs/JSImmediate.cpp: (JSC::JSImmediate::toObject): Remove unneeded const_cast.
  • kjs/JSWrapperObject.h: (JSC::JSWrapperObject::JSWrapperObject): Call noValue.

JavaScriptGlue:

2008-10-18 Darin Adler <darin@apple.com>

Reviewed by Oliver Hunt.

Tweak a little more to get closer to where we can make JSValuePtr a class.

  • JSObject.cpp: (nativeCallFunction): Call asObject.
  • JSUtils.cpp: (KJSValueToJSObject): Use JSValuePtr and asObject. (JSObjectKJSValue): Ditto. (KJSValueToCFTypeInternal): Ditto. (KJSValueToCFType): Ditto.
  • JSUtils.h: Ditto.
  • UserObjectImp.cpp: (UserObjectImp::callAsFunction): Use JSValuePtr and asObject. (UserObjectImp::userObjectGetter): Ditto. (UserObjectImp::getOwnPropertySlot): Ditto. (UserObjectImp::put): Ditto. (UserObjectImp::toPrimitive): Ditto.
  • UserObjectImp.h: Ditto.

WebCore:

2008-10-18 Darin Adler <darin@apple.com>

Reviewed by Oliver Hunt.

Tweak a little more to get closer to where we can make JSValuePtr a class.

  • bindings/js/JSAudioConstructor.cpp: (WebCore::JSAudioConstructor::JSAudioConstructor): Use asObject. (WebCore::constructAudio): Ditto.
  • bindings/js/JSCSSStyleDeclarationCustom.cpp: (WebCore::JSCSSStyleDeclaration::nameGetter): Ditto.
  • bindings/js/JSCanvasRenderingContext2DCustom.cpp: (WebCore::toHTMLCanvasStyle): Use asString and asObject. (WebCore::JSCanvasRenderingContext2D::setFillColor): Ditto. (WebCore::JSCanvasRenderingContext2D::setStrokeColor): Ditto. (WebCore::JSCanvasRenderingContext2D::drawImage): Ditto. (WebCore::JSCanvasRenderingContext2D::drawImageFromRect): Ditto. (WebCore::JSCanvasRenderingContext2D::setShadow): Ditto. (WebCore::JSCanvasRenderingContext2D::createPattern): Ditto.
  • bindings/js/JSCustomSQLTransactionErrorCallback.cpp: (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent): Use JSValuePtr.
  • bindings/js/JSDOMBinding.cpp: (WebCore::setDOMException): Use noValue.
  • bindings/js/JSDOMBinding.h: (WebCore::getDOMPrototype): Use asObject.
  • bindings/js/JSDOMWindowBase.cpp: (WebCore::showModalDialog): Use noValue. (jsDOMWindowBaseEvent): Use asObject. (jsDOMWindowBaseImage): Ditto. (jsDOMWindowBaseMessageChannel): Ditto. (jsDOMWindowBaseOption): Ditto. (jsDOMWindowBaseXMLHttpRequest): Ditto. (jsDOMWindowBaseAudio): Ditto. (jsDOMWindowBaseXSLTProcessor): Ditto. (WebCore::JSDOMWindowBase::childFrameGetter): Ditto. (WebCore::JSDOMWindowBase::indexGetter): Ditto. (WebCore::JSDOMWindowBase::namedItemGetter): Ditto. (WebCore::JSDOMWindowBase::getOwnPropertySlot): Ditto. (WebCore::JSDOMWindowBase::findJSEventListener): Ditto. (WebCore::JSDOMWindowBase::findOrCreateJSEventListener): Ditto. (WebCore::JSDOMWindowBase::findJSUnprotectedEventListener): Ditto. (WebCore::JSDOMWindowBase::findOrCreateJSUnprotectedEventListener): Ditto. (windowProtoFuncOpen): Use noValue. (WebCore::toJSDOMWindow): Use asObject.
  • bindings/js/JSDOMWindowCustom.cpp: (WebCore::setTimeoutOrInterval): Use asString. (WebCore::toDOMWindow): Use asObject.
  • bindings/js/JSEventListener.cpp: (WebCore::JSAbstractEventListener::handleEvent): Use noValue. (WebCore::JSLazyEventListener::parseCode): Use asObject.
  • bindings/js/JSHTMLCollectionCustom.cpp: (WebCore::JSHTMLCollection::nameGetter): Use asObject.
  • bindings/js/JSHTMLDocumentCustom.cpp: (WebCore::JSHTMLDocument::nameGetter): Ditto.
  • bindings/js/JSHTMLElementCustom.cpp: (WebCore::JSHTMLElement::pushEventHandlerScope): Ditto.
  • bindings/js/JSHTMLFormElementCustom.cpp: (WebCore::JSHTMLFormElement::nameGetter): Ditto.
  • bindings/js/JSHTMLFrameSetElementCustom.cpp: (WebCore::JSHTMLFrameSetElement::nameGetter): Ditto.
  • bindings/js/JSHTMLOptionElementConstructor.cpp: (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor): Ditto. (WebCore::constructHTMLOptionElement): Ditto.
  • bindings/js/JSHTMLOptionsCollectionCustom.cpp: (WebCore::JSHTMLOptionsCollection::remove): Ditto.
  • bindings/js/JSImageConstructor.cpp: (WebCore::JSImageConstructor::JSImageConstructor): Ditto. (WebCore::constructImage): Ditto.
  • bindings/js/JSInspectedObjectWrapper.cpp: (WebCore::JSInspectedObjectWrapper::wrap): Ditto.
  • bindings/js/JSInspectorCallbackWrapper.cpp: (WebCore::JSInspectorCallbackWrapper::wrap): Ditto.
  • bindings/js/JSJavaScriptCallFrameCustom.cpp: (WebCore::JSJavaScriptCallFrame::evaluate): Use noValue.
  • bindings/js/JSMessageChannelConstructor.cpp: (WebCore::JSMessageChannelConstructor::JSMessageChannelConstructor): Use asObject. (WebCore::JSMessageChannelConstructor::construct): Ditto.
  • bindings/js/JSMimeTypeArrayCustom.cpp: (WebCore::JSMimeTypeArray::nameGetter): Ditto.
  • bindings/js/JSNamedNodeMapCustom.cpp: (WebCore::JSNamedNodeMap::nameGetter): Ditto.
  • bindings/js/JSNamedNodesCollection.cpp: (WebCore::JSNamedNodesCollection::lengthGetter): Ditto. (WebCore::JSNamedNodesCollection::indexGetter): Ditto.
  • bindings/js/JSNodeFilterCustom.cpp: (WebCore::toNodeFilter): Ditto.
  • bindings/js/JSNodeListCustom.cpp: (WebCore::JSNodeList::nameGetter): Ditto.
  • bindings/js/JSPluginArrayCustom.cpp: (WebCore::JSPluginArray::nameGetter): Ditto.
  • bindings/js/JSPluginCustom.cpp: (WebCore::JSPlugin::nameGetter): Ditto.
  • bindings/js/JSPluginElementFunctions.cpp: (WebCore::runtimeObjectGetter): Ditto. (WebCore::runtimeObjectPropertyGetter): Ditto.
  • bindings/js/JSQuarantinedObjectWrapper.cpp: (WebCore::JSQuarantinedObjectWrapper::asWrapper): Ditto. (WebCore::JSQuarantinedObjectWrapper::getOwnPropertySlot): Ditto. (WebCore::JSQuarantinedObjectWrapper::construct): Ditto.
  • bindings/js/JSRGBColor.cpp: (jsRGBColorRed): Ditto. (jsRGBColorGreen): Ditto. (jsRGBColorBlue): Ditto.
  • bindings/js/JSSQLResultSetRowListCustom.cpp: (WebCore::JSSQLResultSetRowList::item): Use noValue.
  • bindings/js/JSStorageCustom.cpp: (WebCore::JSStorage::nameGetter): Use asObject. (WebCore::JSStorage::deleteProperty): Ditto. (WebCore::JSStorage::customPut): Ditto.
  • bindings/js/JSStyleSheetListCustom.cpp: (WebCore::JSStyleSheetList::nameGetter): Ditto.
  • bindings/js/JSXMLHttpRequestConstructor.cpp: (WebCore::JSXMLHttpRequestConstructor::JSXMLHttpRequestConstructor): Ditto.
  • bindings/js/JSXSLTProcessorCustom.cpp: (WebCore::JSXSLTProcessor::importStylesheet): Ditto. (WebCore::JSXSLTProcessor::transformToFragment): Ditto. (WebCore::JSXSLTProcessor::transformToDocument): Ditto.
  • bindings/js/ScriptController.cpp: (WebCore::ScriptController::evaluate): Use noValue.
  • bindings/objc/DOMInternal.mm: (-[WebScriptObject _initializeScriptDOMNodeImp]): Ditto.
  • bindings/objc/WebScriptObject.mm: (-[WebScriptObject evaluateWebScript:]): Use JSValuePtr. (-[WebScriptObject valueForKey:]): Ditto. (-[WebScriptObject webScriptValueAtIndex:]): Ditto. (+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]): Use asObject and asString.
  • bindings/scripts/CodeGeneratorJS.pm: Use asObject.
  • bridge/c/c_instance.h: Use JSValuePtr.
  • bridge/c/c_runtime.cpp: (JSC::Bindings::CField::setValueToInstance): Ditto.
  • bridge/c/c_utility.cpp: (JSC::Bindings::convertValueToNPVariant): Use asObject.
  • bridge/jni/jni_instance.cpp: (JavaInstance::booleanValue): Use JSValuePtr. (JavaInstance::invokeMethod): Ditto. And noValue.
  • bridge/jni/jni_jsobject.mm: (JavaJSObject::getSlot): Ditto. (JavaJSObject::convertValueToJObject): Ditto.
  • bridge/jni/jni_runtime.cpp: (JavaField::dispatchValueFromInstance): Ditto. (JavaField::valueFromInstance): Ditto. (JavaField::dispatchSetValueToInstance): Ditto. (JavaField::setValueToInstance): Ditto. (JavaArray::setValueAt): Ditto. (JavaArray::valueAt): Ditto.
  • bridge/jni/jni_runtime.h: Ditto.
  • bridge/jni/jni_utility.cpp: (JSC::Bindings::convertArrayInstanceToJavaArray): Take a JSArray* instead of a JSValue*. (JSC::Bindings::convertValueToJValue): Use asObject and asArray.
  • bridge/objc/objc_class.h: Use JSValuePtr.
  • bridge/objc/objc_instance.h: Ditto.
  • bridge/objc/objc_runtime.h: Ditto.
  • bridge/objc/objc_runtime.mm: (JSC::Bindings::callObjCFallbackObject): Use asObject.
  • bridge/objc/objc_utility.h: Use JSValuePtr.
  • bridge/objc/objc_utility.mm: (JSC::Bindings::convertValueToObjcValue): Use JSValuePtr and asObject. (JSC::Bindings::convertObjcValueToValue): Use jsUndefined() instead of 0.
  • bridge/runtime.cpp: (JSC::Bindings::Instance::getValueOfField): Use JSValuePtr. (JSC::Bindings::Instance::setValueOfField): Ditto.
  • bridge/runtime_array.cpp: (JSC::RuntimeArray::lengthGetter): Use JSValuePtr and asObject. (JSC::RuntimeArray::indexGetter): Ditto.
  • bridge/runtime_array.h: Ditto.
  • bridge/runtime_method.cpp: (JSC::RuntimeMethod::lengthGetter): Ditto. (JSC::callRuntimeMethod): Ditto.
  • bridge/runtime_object.cpp: (JSC::RuntimeObjectImp::fallbackObjectGetter): Ditto. (JSC::RuntimeObjectImp::fieldGetter): Ditto. (JSC::RuntimeObjectImp::methodGetter): Ditto.
  • loader/FrameLoader.cpp: (WebCore::FrameLoader::executeScript): Use noValue.
  • page/Console.cpp: (WebCore::Console::trace): Use asInternalFunction.

WebKit/mac:

2008-10-18 Darin Adler <darin@apple.com>

Reviewed by Oliver Hunt.

Tweak a little more to get closer to where we can make JSValuePtr a class.

  • WebView/WebScriptDebugDelegate.mm: (-[WebScriptCallFrame _convertValueToObjcValue:]): Use JSValuePtr. (-[WebScriptCallFrame exception]): Ditto. (-[WebScriptCallFrame evaluateWebScript:]): Ditto. And noValue.
  • WebView/WebScriptDebugger.mm: (WebScriptDebugger::WebScriptDebugger): Use new DebuggerCallFrame constructor that doesn't require explicitly passing an exception.
  • WebView/WebView.mm: (aeDescFromJSValue): Use JSValuePtr. (-[WebView aeDescByEvaluatingJavaScriptFromString:]): Ditto.
09:41 Changeset [37704] by mitz@apple.com

Reviewed by Timothy Hatcher.

  • lower the default button repaint frequency
  • rendering/RenderButton.cpp: (WebCore::RenderButton::styleDidChange): Changed the timer interval from 0.01 to 0.03.
00:56 Changeset [37703] by mrowe@apple.com

Versioning.

00:55 Changeset [37702] by mrowe@apple.com

New tag.

10/18/08:

23:46 Changeset [37701] by mrowe@apple.com

Versioning.

23:32 Changeset [37700] by mitz@apple.com
  • build fix
  • WebScriptCallFrame.cpp: (WebScriptCallFrame::jsValueToString):
23:26 Changeset [37699] by mitz@apple.com

Reviewed by Mark Rowe.

  • Windows build fix
  • rendering/RenderThemeSafari.cpp: (WebCore::RenderThemeSafari::paintMediaFullscreenButton): (WebCore::RenderThemeSafari::paintMediaMuteButton): (WebCore::RenderThemeSafari::paintMediaPlayButton): (WebCore::RenderThemeSafari::paintMediaSeekBackButton): (WebCore::RenderThemeSafari::paintMediaSeekForwardButton): (WebCore::RenderThemeSafari::paintMediaSliderThumb):
22:20 Changeset [37698] by darin@apple.com

2008-10-18 Darin Adler <darin@apple.com>

  • fix non-all-in-one build
  • kjs/completion.h: (JSC::Completion::Completion): Add include of JSValue.h.
22:17 Changeset [37697] by darin@apple.com

2008-10-18 Darin Adler <darin@apple.com>

Reviewed by Oliver Hunt.

  • fix assertions I introduced with my casting changes

These were showing up as failures in the JavaScriptCore tests.

  • VM/Machine.cpp: (JSC::Machine::cti_op_instanceof): Remove the bogus asCell casting that was at the top of the function, and instead cast at the point of use. (JSC::Machine::cti_op_construct_NotJSConstruct): Moved the cast to object after checking the construct type.
21:31 Changeset [37696] by darin@apple.com

2008-10-18 Darin Adler <darin@apple.com>

  • fix non-all-in-one build
  • kjs/JSGlobalObjectFunctions.h: Add include of JSImmedate.h (for now).
21:21 Changeset [37695] by darin@apple.com

2008-10-18 Darin Adler <darin@apple.com>

  • fix build
  • kjs/interpreter.h: Include JSValue.h instead of JSImmediate.h.
21:19 Changeset [37694] by darin@apple.com

2008-10-18 Darin Adler <darin@apple.com>

  • kjs/interpreter.h: Fix include of JSImmediate.h.
21:16 Changeset [37693] by darin@apple.com

2008-10-18 Darin Adler <darin@apple.com>

  • fix non-all-in-one build
  • kjs/interpreter.h: Add include of JSImmedate.h.
21:06 Changeset [37692] by darin@apple.com

2008-10-18 Darin Adler <darin@apple.com>

  • fix non-all-in-one build
  • kjs/ConstructData.h: Add include of JSImmedate.h (for now).
20:05 Changeset [37691] by darin@apple.com

2008-10-18 Darin Adler <darin@apple.com>

  • try to fix Windows build
  • VM/Machine.cpp: (JSC::Machine::Machine): Use JSCell* type since MSVC seems to only allow calling ~JSCell directly if it's a JSCell*.
19:59 Changeset [37690] by mrowe@apple.com

Merge r37661.

19:53 Changeset [37689] by mitz@apple.com

WebCore:

Reviewed by Sam Weinig.

Add a cache setting for how long decoded image data should be allowed to
persist in memory after the image has died. By default, this is set to
0, which means "forever".

  • loader/Cache.cpp: (WebCore::Cache::Cache): Initialize m_deadDecodedDataDeletionInterval.
  • loader/Cache.h: (WebCore::Cache::setDeadDecodedDataDeletionInterval): Added a setter. (WebCore::Cache::deadDecodedDataDeletionInterval): Added a getter.
  • loader/CachedImage.cpp: (WebCore::CachedImage::CachedImage): Initialize the decoded data deletion timer. (WebCore::CachedImage::decodedDataDeletionTimerFired): Added. Destroys the decoded image data. (WebCore::CachedImage::addClient): Stop the timer if it is active. (WebCore::CachedImage::allClientsRemoved): Start the decoded data deletion timer.
  • loader/CachedImage.h:

WebKit/mac:

Reviewed by Sam Weinig.

  • WebView/WebView.mm: (+[WebView _setCacheModel:]): In the primary web browser model, set the cache's dead decoded data deletion interval to 60 seconds.

WebKit/win:

2008-10-18 Dan Bernstein <mitz@apple.com>

Reviewed by Sam Weinig.

  • WebView.cpp: (WebView::setCacheModel): In the primary web browser model, set the cache's dead decoded data deletion interval to 60 seconds.
19:35 Changeset [37688] by mrowe@apple.com

Merge r37606.

19:35 Changeset [37687] by mrowe@apple.com

Merge r37598.

19:14 Changeset [37686] by darin@apple.com

Fix log typo.

19:12 Changeset [37685] by darin@apple.com

2008-10-18 Darin Adler <darin@apple.com>

Reviewed by Dan Bernstein.

  • html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::formData): Fix loop that goes through the FormDataList to go two at a time in a clearer way. My last patch screwed up the way it got form content from the items. This "two at a time" a confusing way to do things, which explains why I got it wrong last time through, but I decided to just fix it locally for now rather than changing the design of FormDataList.
18:52 Changeset [37684] by darin@apple.com

JavaScriptCore:

2008-10-18 Darin Adler <darin@apple.com>

Reviewed by Cameron Zwarich.

Use JSValuePtr everywhere instead of JSValue*. In the future, we'll be
changing JSValuePtr to be a class, and then eventually renaming it
to JSValue once that's done.

  • JavaScriptCore.exp: Update entry points, since some now take JSValue* instead of const JSValue*.
  • API/APICast.h:
  • API/JSCallbackConstructor.h:
  • API/JSCallbackFunction.cpp:
  • API/JSCallbackFunction.h:
  • API/JSCallbackObject.h:
  • API/JSCallbackObjectFunctions.h:
  • API/JSContextRef.cpp:
  • API/JSObjectRef.cpp:
  • API/JSValueRef.cpp:
  • VM/CTI.cpp:
  • VM/CTI.h:
  • VM/CodeBlock.cpp:
  • VM/CodeBlock.h:
  • VM/CodeGenerator.cpp:
  • VM/CodeGenerator.h:
  • VM/ExceptionHelpers.cpp:
  • VM/ExceptionHelpers.h:
  • VM/JSPropertyNameIterator.cpp:
  • VM/JSPropertyNameIterator.h:
  • VM/Machine.cpp:
  • VM/Machine.h:
  • VM/Register.h:
  • kjs/ArgList.cpp:
  • kjs/ArgList.h:
  • kjs/Arguments.cpp:
  • kjs/Arguments.h:
  • kjs/ArrayConstructor.cpp:
  • kjs/ArrayPrototype.cpp:
  • kjs/BooleanConstructor.cpp:
  • kjs/BooleanConstructor.h:
  • kjs/BooleanObject.h:
  • kjs/BooleanPrototype.cpp:
  • kjs/CallData.cpp:
  • kjs/CallData.h:
  • kjs/ConstructData.cpp:
  • kjs/ConstructData.h:
  • kjs/DateConstructor.cpp:
  • kjs/DateInstance.h:
  • kjs/DatePrototype.cpp:
  • kjs/DebuggerCallFrame.cpp:
  • kjs/DebuggerCallFrame.h:
  • kjs/ErrorConstructor.cpp:
  • kjs/ErrorPrototype.cpp:
  • kjs/ExecState.cpp:
  • kjs/ExecState.h:
  • kjs/FunctionConstructor.cpp:
  • kjs/FunctionPrototype.cpp:
  • kjs/GetterSetter.cpp:
  • kjs/GetterSetter.h:
  • kjs/InternalFunction.h:
  • kjs/JSActivation.cpp:
  • kjs/JSActivation.h:
  • kjs/JSArray.cpp:
  • kjs/JSArray.h:
  • kjs/JSCell.cpp:
  • kjs/JSCell.h:
  • kjs/JSFunction.cpp:
  • kjs/JSFunction.h:
  • kjs/JSGlobalData.h:
  • kjs/JSGlobalObject.cpp:
  • kjs/JSGlobalObject.h:
  • kjs/JSGlobalObjectFunctions.cpp:
  • kjs/JSGlobalObjectFunctions.h:
  • kjs/JSImmediate.cpp:
  • kjs/JSImmediate.h:
  • kjs/JSNotAnObject.cpp:
  • kjs/JSNotAnObject.h:
  • kjs/JSNumberCell.cpp:
  • kjs/JSNumberCell.h:
  • kjs/JSObject.cpp:
  • kjs/JSObject.h:
  • kjs/JSStaticScopeObject.cpp:
  • kjs/JSStaticScopeObject.h:
  • kjs/JSString.cpp:
  • kjs/JSString.h:
  • kjs/JSValue.h:
  • kjs/JSVariableObject.h:
  • kjs/JSWrapperObject.h:
  • kjs/MathObject.cpp:
  • kjs/NativeErrorConstructor.cpp:
  • kjs/NumberConstructor.cpp:
  • kjs/NumberConstructor.h:
  • kjs/NumberObject.cpp:
  • kjs/NumberObject.h:
  • kjs/NumberPrototype.cpp:
  • kjs/ObjectConstructor.cpp:
  • kjs/ObjectPrototype.cpp:
  • kjs/ObjectPrototype.h:
  • kjs/PropertyMap.h:
  • kjs/PropertySlot.cpp:
  • kjs/PropertySlot.h:
  • kjs/RegExpConstructor.cpp:
  • kjs/RegExpConstructor.h:
  • kjs/RegExpMatchesArray.h:
  • kjs/RegExpObject.cpp:
  • kjs/RegExpObject.h:
  • kjs/RegExpPrototype.cpp:
  • kjs/Shell.cpp:
  • kjs/StringConstructor.cpp:
  • kjs/StringObject.cpp:
  • kjs/StringObject.h:
  • kjs/StringObjectThatMasqueradesAsUndefined.h:
  • kjs/StringPrototype.cpp:
  • kjs/StructureID.cpp:
  • kjs/StructureID.h:
  • kjs/collector.cpp:
  • kjs/collector.h:
  • kjs/completion.h:
  • kjs/grammar.y:
  • kjs/interpreter.cpp:
  • kjs/interpreter.h:
  • kjs/lookup.cpp:
  • kjs/lookup.h:
  • kjs/nodes.h:
  • kjs/operations.cpp:
  • kjs/operations.h:
  • kjs/protect.h:
  • profiler/ProfileGenerator.cpp: Replace JSValue* with JSValuePtr.

JavaScriptGlue:

2008-10-18 Darin Adler <darin@apple.com>

Reviewed by Cameron Zwarich.

Use JSValuePtr everywhere instead of JSValue*. In the future, we'll be
changing JSValuePtr to be a class, and then eventually renaming it
to JSValue once that's done.

  • JSObject.cpp:
  • JSValueWrapper.cpp:
  • UserObjectImp.cpp:
  • UserObjectImp.h: Replace JSValue* with JSValuePtr.

WebCore:

2008-10-18 Darin Adler <darin@apple.com>

Reviewed by Cameron Zwarich.

Use JSValuePtr everywhere instead of JSValue*. In the future, we'll be
changing JSValuePtr to be a class, and then eventually renaming it
to JSValue once that's done.

  • bindings/js/JSAttrCustom.cpp:
  • bindings/js/JSCSSRuleCustom.cpp:
  • bindings/js/JSCSSStyleDeclarationCustom.cpp:
  • bindings/js/JSCSSValueCustom.cpp:
  • bindings/js/JSCanvasPixelArrayCustom.h:
  • bindings/js/JSCanvasRenderingContext2DCustom.cpp:
  • bindings/js/JSClipboardCustom.cpp:
  • bindings/js/JSConsoleCustom.cpp:
  • bindings/js/JSCustomSQLStatementCallback.cpp:
  • bindings/js/JSCustomSQLStatementErrorCallback.cpp:
  • bindings/js/JSCustomSQLTransactionCallback.cpp:
  • bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
  • bindings/js/JSCustomVoidCallback.cpp:
  • bindings/js/JSCustomVoidCallback.h:
  • bindings/js/JSCustomXPathNSResolver.cpp:
  • bindings/js/JSDOMApplicationCacheCustom.cpp:
  • bindings/js/JSDOMBinding.cpp:
  • bindings/js/JSDOMBinding.h:
  • bindings/js/JSDOMWindowBase.cpp:
  • bindings/js/JSDOMWindowBase.h:
  • bindings/js/JSDOMWindowCustom.cpp:
  • bindings/js/JSDOMWindowCustom.h:
  • bindings/js/JSDOMWindowShell.cpp:
  • bindings/js/JSDOMWindowShell.h:
  • bindings/js/JSDatabaseCustom.cpp:
  • bindings/js/JSDocumentCustom.cpp:
  • bindings/js/JSElementCustom.cpp:
  • bindings/js/JSEventCustom.cpp:
  • bindings/js/JSEventListener.cpp:
  • bindings/js/JSEventTarget.cpp:
  • bindings/js/JSEventTargetBase.h:
  • bindings/js/JSEventTargetNodeCustom.cpp:
  • bindings/js/JSHTMLAllCollection.h:
  • bindings/js/JSHTMLAppletElementCustom.cpp:
  • bindings/js/JSHTMLCollectionCustom.cpp:
  • bindings/js/JSHTMLDocumentCustom.cpp:
  • bindings/js/JSHTMLEmbedElementCustom.cpp:
  • bindings/js/JSHTMLFormElementCustom.cpp:
  • bindings/js/JSHTMLFrameElementCustom.cpp:
  • bindings/js/JSHTMLFrameSetElementCustom.cpp:
  • bindings/js/JSHTMLIFrameElementCustom.cpp:
  • bindings/js/JSHTMLInputElementCustom.cpp:
  • bindings/js/JSHTMLObjectElementCustom.cpp:
  • bindings/js/JSHTMLOptionsCollectionCustom.cpp:
  • bindings/js/JSHTMLSelectElementCustom.cpp:
  • bindings/js/JSHTMLSelectElementCustom.h:
  • bindings/js/JSHistoryCustom.cpp:
  • bindings/js/JSImageDataCustom.cpp:
  • bindings/js/JSInspectedObjectWrapper.cpp:
  • bindings/js/JSInspectedObjectWrapper.h:
  • bindings/js/JSInspectorCallbackWrapper.cpp:
  • bindings/js/JSInspectorCallbackWrapper.h:
  • bindings/js/JSJavaScriptCallFrameCustom.cpp:
  • bindings/js/JSLocationCustom.cpp:
  • bindings/js/JSMessagePortCustom.cpp:
  • bindings/js/JSMimeTypeArrayCustom.cpp:
  • bindings/js/JSNamedNodeMapCustom.cpp:
  • bindings/js/JSNamedNodesCollection.cpp:
  • bindings/js/JSNamedNodesCollection.h:
  • bindings/js/JSNavigatorCustom.cpp:
  • bindings/js/JSNodeCustom.cpp:
  • bindings/js/JSNodeFilterCondition.cpp:
  • bindings/js/JSNodeFilterCustom.cpp:
  • bindings/js/JSNodeIteratorCustom.cpp:
  • bindings/js/JSNodeListCustom.cpp:
  • bindings/js/JSPluginArrayCustom.cpp:
  • bindings/js/JSPluginCustom.cpp:
  • bindings/js/JSPluginElementFunctions.cpp:
  • bindings/js/JSPluginElementFunctions.h:
  • bindings/js/JSQuarantinedObjectWrapper.cpp:
  • bindings/js/JSQuarantinedObjectWrapper.h:
  • bindings/js/JSRGBColor.cpp:
  • bindings/js/JSRGBColor.h:
  • bindings/js/JSSQLResultSetRowListCustom.cpp:
  • bindings/js/JSSQLTransactionCustom.cpp:
  • bindings/js/JSSVGElementInstanceCustom.cpp:
  • bindings/js/JSSVGLengthCustom.cpp:
  • bindings/js/JSSVGMatrixCustom.cpp:
  • bindings/js/JSSVGPathSegCustom.cpp:
  • bindings/js/JSSVGPathSegListCustom.cpp:
  • bindings/js/JSSVGPointListCustom.cpp:
  • bindings/js/JSSVGTransformListCustom.cpp:
  • bindings/js/JSStorageCustom.cpp:
  • bindings/js/JSStyleSheetCustom.cpp:
  • bindings/js/JSStyleSheetListCustom.cpp:
  • bindings/js/JSTextCustom.cpp:
  • bindings/js/JSTreeWalkerCustom.cpp:
  • bindings/js/JSXMLHttpRequestCustom.cpp:
  • bindings/js/JSXMLHttpRequestUploadCustom.cpp:
  • bindings/js/JSXSLTProcessorCustom.cpp:
  • bindings/js/ScheduledAction.cpp:
  • bindings/js/ScheduledAction.h:
  • bindings/js/ScriptController.cpp:
  • bindings/js/ScriptController.h:
  • bindings/objc/WebScriptObject.mm:
  • bindings/scripts/CodeGeneratorJS.pm:
  • bridge/NP_jsobject.cpp:
  • bridge/c/c_instance.cpp:
  • bridge/c/c_instance.h:
  • bridge/c/c_runtime.cpp:
  • bridge/c/c_runtime.h:
  • bridge/c/c_utility.cpp:
  • bridge/jni/jni_instance.cpp:
  • bridge/jni/jni_instance.h:
  • bridge/jni/jni_jsobject.mm:
  • bridge/jni/jni_objc.mm:
  • bridge/jni/jni_runtime.cpp:
  • bridge/jni/jni_runtime.h:
  • bridge/jni/jni_utility.cpp:
  • bridge/objc/objc_class.mm:
  • bridge/objc/objc_instance.h:
  • bridge/objc/objc_instance.mm:
  • bridge/objc/objc_runtime.h:
  • bridge/objc/objc_runtime.mm:
  • bridge/objc/objc_utility.h:
  • bridge/objc/objc_utility.mm:
  • bridge/runtime.h:
  • bridge/runtime_array.cpp:
  • bridge/runtime_array.h:
  • bridge/runtime_method.cpp:
  • bridge/runtime_method.h:
  • bridge/runtime_object.cpp:
  • bridge/runtime_object.h:
  • inspector/JavaScriptCallFrame.cpp:
  • inspector/JavaScriptCallFrame.h:
  • inspector/JavaScriptProfile.cpp:
  • inspector/JavaScriptProfileNode.cpp:
  • loader/FrameLoader.cpp:
  • loader/FrameLoader.h:
  • page/Console.cpp:
  • page/Console.h:
  • plugins/MimeTypeArray.h:
  • plugins/Plugin.h:
  • plugins/PluginArray.h:
  • xml/XMLHttpRequest.cpp: Replace JSValue* with JSValuePtr.
16:46 Changeset [37683] by mrowe@apple.com

Export logging symbols in debug.

16:19 Changeset [37682] by darin@apple.com

2008-10-18 Darin Adler <darin@apple.com>

  • VM/Machine.cpp: (JSC::Machine::cti_op_call_eval): Removed stray parentheses from my last check-in.
16:08 Changeset [37681] by darin@apple.com

JavaScriptCore:

2008-10-18 Darin Adler <darin@apple.com>

Reviewed by Oliver Hunt.

Remove casts from JSValue* to derived classes, replacing them with
calls to inline casting functions. These functions are also a bit
better than aidrect cast because they also do a runtime assertion.

Removed use of 0 as for JSValue*, changing call sites to use a
noValue() function instead.

Move things needed by classes derived from JSValue out of the class,
since the classes won't be deriving from JSValue any more soon.

I did most of these changes by changing JSValue to not be JSValue* any
more, then fixing a lot of the compilation problems, then rolling out
the JSValue change.

1.011x as fast on SunSpider (presumably due to some of the Machine.cpp changes)

  • API/APICast.h: Removed unneeded forward declarations.
  • API/JSCallbackObject.h: Added an asCallbackObject function for casting.
  • API/JSCallbackObjectFunctions.h: (JSC::JSCallbackObject::asCallbackObject): Added. (JSC::JSCallbackObject::getOwnPropertySlot): Use asObject. (JSC::JSCallbackObject::call): Use noValue. (JSC::JSCallbackObject::staticValueGetter): Use asCallbackObject. (JSC::JSCallbackObject::staticFunctionGetter): Ditto. (JSC::JSCallbackObject::callbackGetter): Ditto.
  • JavaScriptCore.xcodeproj/project.pbxproj: Added RegExpMatchesArray.h.
  • VM/CTI.cpp: (JSC::CTI::asInteger): Added. For use casting a JSValue to an integer. (JSC::CTI::emitGetArg): Use asInteger. (JSC::CTI::emitGetPutArg): Ditto. (JSC::CTI::getConstantImmediateNumericArg): Ditto. Also use noValue. (JSC::CTI::emitInitRegister): Use asInteger. (JSC::CTI::getDeTaggedConstantImmediate): Ditto. (JSC::CTI::compileOpCallInitializeCallFrame): Ditto. (JSC::CTI::compileOpCall): Ditto. (JSC::CTI::compileOpStrictEq): Ditto. (JSC::CTI::privateCompileMainPass): Ditto. (JSC::CTI::privateCompileGetByIdProto): Ditto. (JSC::CTI::privateCompileGetByIdChain): Ditto. (JSC::CTI::privateCompilePutByIdTransition): Ditto.
  • VM/CTI.h: Rewrite the ARG-related macros to use C++ casts instead of C casts and get rid of some extra parentheses. Addd declaration of asInteger.
  • VM/CodeGenerator.cpp: (JSC::CodeGenerator::emitEqualityOp): Use asString. (JSC::CodeGenerator::emitLoad): Use noValue. (JSC::CodeGenerator::findScopedProperty): Change globalObject argument to JSObject* instead of JSValue*. (JSC::CodeGenerator::emitResolve): Remove unneeded cast. (JSC::CodeGenerator::emitGetScopedVar): Use asCell. (JSC::CodeGenerator::emitPutScopedVar): Ditto.
  • VM/CodeGenerator.h: Changed out argument of findScopedProperty. Also change the JSValueMap to use PtrHash explicitly instead of getting it from DefaultHash.
  • VM/JSPropertyNameIterator.cpp: (JSC::JSPropertyNameIterator::toPrimitive): Use noValue.
  • VM/JSPropertyNameIterator.h: (JSC::JSPropertyNameIterator::next): Ditto.
  • VM/Machine.cpp: (JSC::fastIsNumber): Moved isImmediate check here instead of checking for 0 inside Heap::isNumber. Use asCell and asNumberCell. (JSC::fastToInt32): Ditto. (JSC::fastToUInt32): Ditto. (JSC::jsLess): Use asString. (JSC::jsLessEq): Ditto. (JSC::jsAdd): Ditto. (JSC::jsTypeStringForValue): Use asObject. (JSC::jsIsObjectType): Ditto. (JSC::jsIsFunctionType): Ditto. (JSC::inlineResolveBase): Use noValue. (JSC::Machine::callEval): Use asString. Initialize result to undefined, not 0. (JSC::Machine::Machine): Remove unneeded casts to JSCell*. (JSC::Machine::throwException): Use asObject. (JSC::Machine::debug): Remove explicit calls to the DebuggerCallFrame constructor. (JSC::Machine::checkTimeout): Use noValue. (JSC::cachePrototypeChain): Use asObject. (JSC::Machine::tryCachePutByID): Use asCell. (JSC::Machine::tryCacheGetByID): Use aCell and asObject. (JSC::Machine::privateExecute): Use noValue, asCell, asObject, asString, asArray, asActivation, asFunction. Changed code that creates call frames for host functions to pass 0 for the function pointer -- the call frame needs a JSFunction* and a host function object is not one. This was caught by the assertions in the casting functions. Also remove some unneeded casts in cases where two values are compared. (JSC::Machine::retrieveLastCaller): Use noValue. (JSC::Machine::tryCTICachePutByID): Use asCell. (JSC::Machine::tryCTICacheGetByID): Use aCell and asObject. (JSC::setUpThrowTrampolineReturnAddress): Added this function to restore the PIC-branch-avoidance that was recently lost. (JSC::Machine::cti_op_add): Use asString. (JSC::Machine::cti_op_instanceof): Use asCell and asObject. (JSC::Machine::cti_op_call_JSFunction): Use asFunction. (JSC::Machine::cti_op_call_NotJSFunction): Changed code to pass 0 for the function pointer, since we don't have a JSFunction. Use asObject. (JSC::Machine::cti_op_tear_off_activation): Use asActivation. (JSC::Machine::cti_op_construct_JSConstruct): Use asFunction and asObject. (JSC::Machine::cti_op_construct_NotJSConstruct): use asObject. (JSC::Machine::cti_op_get_by_val): Use asArray and asString. (JSC::Machine::cti_op_resolve_func): Use asPointer; this helps prepare us for a situation where JSValue is not a pointer. (JSC::Machine::cti_op_put_by_val): Use asArray. (JSC::Machine::cti_op_put_by_val_array): Ditto. (JSC::Machine::cti_op_resolve_global): Use asGlobalObject. (JSC::Machine::cti_op_post_inc): Change VM_CHECK_EXCEPTION_2 to VM_CHECK_EXCEPTION_AT_END, since there's no observable work done after that point. Also use asPointer. (JSC::Machine::cti_op_resolve_with_base): Use asPointer. (JSC::Machine::cti_op_post_dec): Change VM_CHECK_EXCEPTION_2 to VM_CHECK_EXCEPTION_AT_END, since there's no observable work done after that point. Also use asPointer. (JSC::Machine::cti_op_call_eval): Use asObject, noValue, and change VM_CHECK_EXCEPTION_ARG to VM_THROW_EXCEPTION_AT_END. (JSC::Machine::cti_op_throw): Change return value to a JSValue*. (JSC::Machine::cti_op_in): Use asObject. (JSC::Machine::cti_op_switch_char): Use asString. (JSC::Machine::cti_op_switch_string): Ditto. (JSC::Machine::cti_op_put_getter): Use asObject. (JSC::Machine::cti_op_put_setter): Ditto. (JSC::Machine::cti_vm_throw): Change return value to a JSValue*. Use noValue.
  • VM/Machine.h: Change return values of both cti_op_throw and cti_vm_throw to JSValue*.
  • VM/Register.h: Remove nullJSValue, which is the same thing as noValue(). Also removed unneeded definition of JSValue.
  • kjs/ArgList.h: Removed unneeded definition of JSValue.
  • kjs/Arguments.h: (JSC::asArguments): Added.
  • kjs/ArrayPrototype.cpp: (JSC::getProperty): Use noValue. (JSC::arrayProtoFuncToString): Use asArray. (JSC::arrayProtoFuncToLocaleString): Ditto. (JSC::arrayProtoFuncConcat): Ditto. (JSC::arrayProtoFuncPop): Ditto. Also removed unneeded initialization of the result, which is set in both sides of the branch. (JSC::arrayProtoFuncPush): Ditto. (JSC::arrayProtoFuncShift): Removed unneeded initialization of the result, which is set in both sides of the branch. (JSC::arrayProtoFuncSort): Use asArray.
  • kjs/BooleanObject.h: (JSC::asBooleanObject): Added.
  • kjs/BooleanPrototype.cpp: (JSC::booleanProtoFuncToString): Use asBooleanObject. (JSC::booleanProtoFuncValueOf): Ditto.
  • kjs/CallData.cpp: (JSC::call): Use asObject and asFunction.
  • kjs/ConstructData.cpp: (JSC::construct): Ditto.
  • kjs/DateConstructor.cpp: (JSC::constructDate): Use asDateInstance.
  • kjs/DateInstance.h: (JSC::asDateInstance): Added.
  • kjs/DatePrototype.cpp: (JSC::dateProtoFuncToString): Use asDateInstance. (JSC::dateProtoFuncToUTCString): Ditto. (JSC::dateProtoFuncToDateString): Ditto. (JSC::dateProtoFuncToTimeString): Ditto. (JSC::dateProtoFuncToLocaleString): Ditto. (JSC::dateProtoFuncToLocaleDateString): Ditto. (JSC::dateProtoFuncToLocaleTimeString): Ditto. (JSC::dateProtoFuncValueOf): Ditto. (JSC::dateProtoFuncGetTime): Ditto. (JSC::dateProtoFuncGetFullYear): Ditto. (JSC::dateProtoFuncGetUTCFullYear): Ditto. (JSC::dateProtoFuncToGMTString): Ditto. (JSC::dateProtoFuncGetMonth): Ditto. (JSC::dateProtoFuncGetUTCMonth): Ditto. (JSC::dateProtoFuncGetDate): Ditto. (JSC::dateProtoFuncGetUTCDate): Ditto. (JSC::dateProtoFuncGetDay): Ditto. (JSC::dateProtoFuncGetUTCDay): Ditto. (JSC::dateProtoFuncGetHours): Ditto. (JSC::dateProtoFuncGetUTCHours): Ditto. (JSC::dateProtoFuncGetMinutes): Ditto. (JSC::dateProtoFuncGetUTCMinutes): Ditto. (JSC::dateProtoFuncGetSeconds): Ditto. (JSC::dateProtoFuncGetUTCSeconds): Ditto. (JSC::dateProtoFuncGetMilliSeconds): Ditto. (JSC::dateProtoFuncGetUTCMilliseconds): Ditto. (JSC::dateProtoFuncGetTimezoneOffset): Ditto. (JSC::dateProtoFuncSetTime): Ditto. (JSC::setNewValueFromTimeArgs): Ditto. (JSC::setNewValueFromDateArgs): Ditto. (JSC::dateProtoFuncSetYear): Ditto. (JSC::dateProtoFuncGetYear): Ditto.
  • kjs/DebuggerCallFrame.cpp: (JSC::DebuggerCallFrame::thisObject): Use asObject. (JSC::DebuggerCallFrame::evaluate): Use noValue.
  • kjs/DebuggerCallFrame.h: Added a constructor that takes only a callFrame.
  • kjs/ExecState.h: (JSC::ExecState::clearException): Use noValue.
  • kjs/FunctionPrototype.cpp: (JSC::functionProtoFuncToString): Use asFunction. (JSC::functionProtoFuncApply): Use asArguments and asArray.
  • kjs/GetterSetter.cpp: (JSC::GetterSetter::getPrimitiveNumber): Use noValue.
  • kjs/GetterSetter.h: (JSC::asGetterSetter): Added.
  • kjs/InternalFunction.cpp: (JSC::InternalFunction::name): Use asString.
  • kjs/InternalFunction.h: (JSC::asInternalFunction): Added.
  • kjs/JSActivation.cpp: (JSC::JSActivation::argumentsGetter): Use asActivation.
  • kjs/JSActivation.h: (JSC::asActivation): Added.
  • kjs/JSArray.cpp: (JSC::JSArray::putSlowCase): Use noValue. (JSC::JSArray::deleteProperty): Ditto. (JSC::JSArray::increaseVectorLength): Ditto. (JSC::JSArray::setLength): Ditto. (JSC::JSArray::pop): Ditto. (JSC::JSArray::sort): Ditto. (JSC::JSArray::compactForSorting): Ditto.
  • kjs/JSArray.h: (JSC::asArray): Added.
  • kjs/JSCell.cpp: (JSC::JSCell::getJSNumber): Use noValue.
  • kjs/JSCell.h: (JSC::asCell): Added. (JSC::JSValue::asCell): Changed to not preserve const. Given the wide use of JSValue* and JSCell*, it's not really useful to use const. (JSC::JSValue::isNumber): Use asValue. (JSC::JSValue::isString): Ditto. (JSC::JSValue::isGetterSetter): Ditto. (JSC::JSValue::isObject): Ditto. (JSC::JSValue::getNumber): Ditto. (JSC::JSValue::getString): Ditto. (JSC::JSValue::getObject): Ditto. (JSC::JSValue::getCallData): Ditto. (JSC::JSValue::getConstructData): Ditto. (JSC::JSValue::getUInt32): Ditto. (JSC::JSValue::getTruncatedInt32): Ditto. (JSC::JSValue::getTruncatedUInt32): Ditto. (JSC::JSValue::mark): Ditto. (JSC::JSValue::marked): Ditto. (JSC::JSValue::toPrimitive): Ditto. (JSC::JSValue::getPrimitiveNumber): Ditto. (JSC::JSValue::toBoolean): Ditto. (JSC::JSValue::toNumber): Ditto. (JSC::JSValue::toString): Ditto. (JSC::JSValue::toObject): Ditto. (JSC::JSValue::toThisObject): Ditto. (JSC::JSValue::needsThisConversion): Ditto. (JSC::JSValue::toThisString): Ditto. (JSC::JSValue::getJSNumber): Ditto.
  • kjs/JSFunction.cpp: (JSC::JSFunction::argumentsGetter): Use asFunction. (JSC::JSFunction::callerGetter): Ditto. (JSC::JSFunction::lengthGetter): Ditto. (JSC::JSFunction::construct): Use asObject.
  • kjs/JSFunction.h: (JSC::asFunction): Added.
  • kjs/JSGlobalObject.cpp: (JSC::lastInPrototypeChain): Use asObject.
  • kjs/JSGlobalObject.h: (JSC::asGlobalObject): Added. (JSC::ScopeChainNode::globalObject): Use asGlobalObject.
  • kjs/JSImmediate.h: Added noValue, asPointer, and makeValue functions. Use rawValue, makeValue, and noValue consistently instead of doing reinterpret_cast in various functions.
  • kjs/JSNumberCell.h: (JSC::asNumberCell): Added. (JSC::JSValue::uncheckedGetNumber): Use asValue and asNumberCell. (JSC::JSValue::toJSNumber): Use asValue.
  • kjs/JSObject.cpp: (JSC::JSObject::put): Use asObject and asGetterSetter. (JSC::callDefaultValueFunction): Use noValue. (JSC::JSObject::defineGetter): Use asGetterSetter. (JSC::JSObject::defineSetter): Ditto. (JSC::JSObject::lookupGetter): Ditto. Also use asObject. (JSC::JSObject::lookupSetter): Ditto. (JSC::JSObject::hasInstance): Use asObject. (JSC::JSObject::fillGetterPropertySlot): Use asGetterSetter.
  • kjs/JSObject.h: (JSC::JSObject::getDirect): Use noValue. (JSC::asObject): Added. (JSC::JSValue::isObject): Use asValue. (JSC::JSObject::get): Removed unneeded const_cast. (JSC::JSObject::getPropertySlot): Use asObject. (JSC::JSValue::get): Removed unneeded const_cast. Use asValue, asCell, and asObject. (JSC::JSValue::put): Ditto. (JSC::JSObject::allocatePropertyStorageInline): Fixed spelling of "oldPropertStorage".
  • kjs/JSString.cpp: (JSC::JSString::getOwnPropertySlot): Use asObject.
  • kjs/JSString.h: (JSC::asString): Added. (JSC::JSValue::toThisJSString): Use asValue.
  • kjs/JSValue.h: Make PreferredPrimitiveType a top level enum instead of a member of JSValue. Added an asValue function that returns this. Removed overload of asCell for const. Use asValue instead of getting right at this.
  • kjs/ObjectPrototype.cpp: (JSC::objectProtoFuncIsPrototypeOf): Use asObject. (JSC::objectProtoFuncDefineGetter): Ditto. (JSC::objectProtoFuncDefineSetter): Ditto.
  • kjs/PropertySlot.h: (JSC::PropertySlot::PropertySlot): Take a const JSValue* so the callers don't have to worry about const. (JSC::PropertySlot::clearBase): Use noValue. (JSC::PropertySlot::clearValue): Ditto.
  • kjs/RegExpConstructor.cpp: (JSC::regExpConstructorDollar1): Use asRegExpConstructor. (JSC::regExpConstructorDollar2): Ditto. (JSC::regExpConstructorDollar3): Ditto. (JSC::regExpConstructorDollar4): Ditto. (JSC::regExpConstructorDollar5): Ditto. (JSC::regExpConstructorDollar6): Ditto. (JSC::regExpConstructorDollar7): Ditto. (JSC::regExpConstructorDollar8): Ditto. (JSC::regExpConstructorDollar9): Ditto. (JSC::regExpConstructorInput): Ditto. (JSC::regExpConstructorMultiline): Ditto. (JSC::regExpConstructorLastMatch): Ditto. (JSC::regExpConstructorLastParen): Ditto. (JSC::regExpConstructorLeftContext): Ditto. (JSC::regExpConstructorRightContext): Ditto. (JSC::setRegExpConstructorInput): Ditto. (JSC::setRegExpConstructorMultiline): Ditto. (JSC::constructRegExp): Use asObject.
  • kjs/RegExpConstructor.h: (JSC::asRegExpConstructor): Added.
  • kjs/RegExpObject.cpp: (JSC::regExpObjectGlobal): Use asRegExpObject. (JSC::regExpObjectIgnoreCase): Ditto. (JSC::regExpObjectMultiline): Ditto. (JSC::regExpObjectSource): Ditto. (JSC::regExpObjectLastIndex): Ditto. (JSC::setRegExpObjectLastIndex): Ditto. (JSC::callRegExpObject): Ditto.
  • kjs/RegExpObject.h: (JSC::asRegExpObject): Added.
  • kjs/RegExpPrototype.cpp: (JSC::regExpProtoFuncTest): Use asRegExpObject. (JSC::regExpProtoFuncExec): Ditto. (JSC::regExpProtoFuncCompile): Ditto. (JSC::regExpProtoFuncToString): Ditto.
  • kjs/StringObject.h: (JSC::StringObject::internalValue): Use asString. (JSC::asStringObject): Added.
  • kjs/StringPrototype.cpp: (JSC::stringProtoFuncReplace): Use asRegExpObject. (JSC::stringProtoFuncToString): Ue asStringObject. (JSC::stringProtoFuncMatch): Use asRegExpObject. (JSC::stringProtoFuncSearch): Ditto. (JSC::stringProtoFuncSplit): Ditto.
  • kjs/StructureID.cpp: (JSC::StructureID::getEnumerablePropertyNames): Use asObject. (JSC::StructureID::createCachedPrototypeChain): Ditto. (JSC::StructureIDChain::StructureIDChain): Use asCell and asObject.
  • kjs/collector.h: (JSC::Heap::isNumber): Removed null handling. This can only be called on valid cells. (JSC::Heap::cellBlock): Removed overload for const and non-const. Whether the JSCell* is const or not really should have no effect on whether you can modify the collector block it's in.
  • kjs/interpreter.cpp: (JSC::Interpreter::evaluate): Use noValue and noObject.
  • kjs/nodes.cpp: (JSC::FunctionCallResolveNode::emitCode): Use JSObject for the global object rather than JSValue. (JSC::PostfixResolveNode::emitCode): Ditto. (JSC::PrefixResolveNode::emitCode): Ditto. (JSC::ReadModifyResolveNode::emitCode): Ditto. (JSC::AssignResolveNode::emitCode): Ditto.
  • kjs/operations.h: (JSC::equalSlowCaseInline): Use asString, asCell, asNumberCell, (JSC::strictEqualSlowCaseInline): Ditto.

WebCore:

2008-10-18 Darin Adler <darin@apple.com>

Reviewed by Oliver Hunt.

Update for change to make PreferredPrimitiveType no longer
a member of JSValue.

  • bridge/c/c_instance.cpp: (JSC::Bindings::CInstance::defaultValue): Removed JSValue:: prefix.
  • bridge/jni/jni_instance.cpp: (JavaInstance::defaultValue): Ditto.
  • bridge/objc/objc_instance.mm: (ObjcInstance::defaultValue): Ditto.
  • bridge/qt/qt_instance.cpp: (JSC::Bindings::QtInstance::defaultValue): Ditto.
  • bridge/runtime.h: Ditto. Also removed typedef.
14:54 Changeset [37680] by darin@apple.com

2008-10-18 Darin Adler <darin@apple.com>

  • try to fix Windows build
  • rendering/RenderThemeSafari.cpp: (WebCore::RenderThemeSafari::paintCheckbox): Explicitly qualify part name with SafariTheme namespace, since there is now an identically named constant in the ControlPart enum. (WebCore::RenderThemeSafari::paintButton): Ditto. (WebCore::RenderThemeSafari::paintTextField): Ditto. (WebCore::RenderThemeSafari::paintTextArea): Ditto. (WebCore::RenderThemeSafari::paintSearchField): Ditto. (WebCore::RenderThemeSafari::paintSearchFieldCancelButton): Ditto. (WebCore::RenderThemeSafari::paintSearchFieldResultsDecoration): Ditto. (WebCore::RenderThemeSafari::paintSearchFieldResultsButton): Ditto.
14:23 Changeset [37679] by jmalonzo@webkit.org

2008-10-18 Jan Michael Alonzo <jmalonzo@webkit.org>

Reviewed by Alp Toker.

[GTK] crash after selecting a file on an <input type=file>
https://bugs.webkit.org/show_bug.cgi?id=21385

Follow Mac and Win's behaviors for Icon::paint

  • platform/graphics/gtk/IconGtk.cpp: (WebCore::Icon::paint): check if painting is enabled before painting the icon
02:44 Changeset [37678] by cwzwarich@webkit.org

2008-10-18 Cameron Zwarich <zwarich@apple.com>

Reviewed by Oliver Hunt.

Bug 21702: Special op_create_activation for the case where there are no named parameters
<https://bugs.webkit.org/show_bug.cgi?id=21702>

This is a 2.5% speedup on the V8 Raytrace benchmark and a 1.1% speedup
on the V8 Earley-Boyer benchmark.

  • VM/CTI.cpp: (JSC::CTI::privateCompileMainPass):
  • VM/Machine.cpp: (JSC::Machine::cti_op_create_arguments_no_params):
  • VM/Machine.h:
  • kjs/Arguments.h: (JSC::Arguments::): (JSC::Arguments::Arguments):
01:44 Changeset [37677] by oliver@apple.com

2008-10-18 Zan Dobersek <zandobersek@gmail.com>

Reviewed by Oliver Hunt.

Qt port build fix.

  • platform/qt/RenderThemeQt.h:
00:06 Changeset [37676] by jmalonzo@webkit.org

2008-10-17 Luke Kenneth Casson Leighton <lkcl@lkcl.net>

Reviewed by Mark Rowe. Landed by Jan Alonzo.

https://bugs.webkit.org/show_bug.cgi?id=20403
[Gtk] Segfault after a table with an iframe is attempted to be added twice to DOM model with javascript

  • WebCoreSupport/FrameLoaderClientGtk.cpp: (WebKit::FrameLoaderClient::frameLoaderDestroyed): (WebKit::FrameLoaderClient::detachedFromParent4):
Note: See TracTimeline for information about the timeline view.