⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



May 15, 2008:

10:53 PM Changeset in webkit [33512] by kevino@webkit.org
  • 4 edits in trunk

wx build fix. Add rendering/style to includes dir.

10:10 PM Changeset in webkit [33511] by kmccullough@apple.com
  • 2 edits in trunk/JavaScriptCore

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

  • Build fix.
8:27 PM Changeset in webkit [33510] by alice.liu@apple.com
  • 15 edits in trunk/WebCore

2008-05-15 Alice Liu <alice.liu@apple.com>

Reviewed by Beth Dakin.

Fixed <rdar://problem/5882283> Implement ARIA aria-activedescendant
Also added support for aria roles listbox and option, and aria-selected,
and aria-multiselectable for listboxes

  • dom/Element.cpp: (WebCore::Element::attributeChanged):
  • dom/Element.h:
  • dom/StyledElement.cpp: (WebCore::StyledElement::attributeChanged):
  • html/HTMLAttributeNames.in:
  • page/AXObjectCache.cpp: (WebCore::AXObjectCache::handleActiveDescendantChanged):
  • page/AXObjectCache.h: (WebCore::AXObjectCache::accessibilityEnabled): (WebCore::AXObjectCache::handleActiveDescendantChanged):
  • page/AccessibilityListBox.cpp: (WebCore::AccessibilityListBox::selectedChildren): (WebCore::AccessibilityListBox::visibleChildren):
  • page/AccessibilityListBox.h:
  • page/AccessibilityListBoxOption.h: (WebCore::AccessibilityListBoxOption::selectedChildren): (WebCore::AccessibilityListBoxOption::visibleChildren):
  • page/AccessibilityObject.cpp:
  • page/AccessibilityObject.h: (WebCore::AccessibilityObject::isListBox): (WebCore::AccessibilityObject::shouldFocusActiveDescendant): (WebCore::AccessibilityObject::activeDescendant): (WebCore::AccessibilityObject::handleActiveDescendantChanged):
  • page/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::title): (WebCore::AccessibilityRenderObject::accessibilityShouldUseUniqueId): (WebCore::AccessibilityRenderObject::focusedUIElement): (WebCore::AccessibilityRenderObject::shouldFocusActiveDescendant): (WebCore::AccessibilityRenderObject::activeDescendant): (WebCore::AccessibilityRenderObject::handleActiveDescendantChanged): (WebCore::RoleEntry::): (WebCore::AccessibilityRenderObject::ariaRoleAttribute): (WebCore::AccessibilityRenderObject::ariaListboxSelectedChildren): (WebCore::AccessibilityRenderObject::selectedChildren): (WebCore::AccessibilityRenderObject::ariaListboxVisibleChildren): (WebCore::AccessibilityRenderObject::visibleChildren):
  • page/AccessibilityRenderObject.h: (WebCore::AccessibilityRenderObject::isDetached):
  • page/mac/AccessibilityObjectWrapper.mm: (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
8:20 PM Changeset in webkit [33509] by timothy@apple.com
  • 3 edits
    3 adds in trunk

Fixes a bug in the view source parsing of text within <script>,
<style>, <xmp>, <textarea> and other special tags. The text was
being parsed as HTML and would be syntax highlighted if a "<"
was encountered.

<rdar://problem/5790805> Inspector's source view missing some words,
doubles others in JS source in <script> tag (17752)

Reviewed by Dave Hyatt.

Added test: fast/frames/viewsource-plain-text-tags.html

  • html/HTMLTokenizer.cpp:

(WebCore::HTMLTokenizer::scriptHandler): Set scriptCodeSize and
scriptCodeResync to zero before an early return in view source mode.
This was causing text from a previous script tag to show up in
then next style tag.
(WebCore::HTMLTokenizer::parseTag): Enter an if block in view source
mode even if n is null. The n is property guarded in other places
and not used by view source mode. Removes a redundant null check on n.
Add a new null check of n before setting scriptSrcCharset. Other code
in HTMLTokenizer is already guarded for this code path.

8:20 PM Changeset in webkit [33508] by timothy@apple.com
  • 3 edits in trunk/WebCore

Changes the Web Inspector node highlight to be less aggressive
and only highlight when hovering over the selected node in the DOM
tree or breadcrumbs. You can highlight on hover for any node if
you hold down the Alt/Option key while hovering.

Reviewed by Kevin McCullough.

  • page/inspector/ElementsPanel.js:
  • page/inspector/inspector.js:
7:51 PM Changeset in webkit [33507] by kmccullough@apple.com
  • 5 edits in trunk/JavaScriptCore

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

Reviewed by Tim.

<rdar://problem/5770054> JavaScript profiler (10928)

  • Cache some values to save on computing them repetitively. This will be a big savings when we sort since we won't have to walk the tree for every comparison!
  • We cache these values when we end profiling because otherwise we won't know which profile to get the totalTime for the whole profile from without retaining a reference to the head profile or looking up the profile from the list of all profiles.
  • Also it's safe to assume we won't be asked for these values while we are still profiling since the WebInspector only get's profileNodes from profiles that are in the allProfiles() list and a profile is only added to that list after it has finished and these values will no longer change.
  • JavaScriptCore.exp:
  • profiler/ProfileNode.cpp: (KJS::ProfileNode::ProfileNode): (KJS::ProfileNode::stopProfiling): (KJS::ProfileNode::printDataInspectorStyle): (KJS::ProfileNode::printDataSampleStyle): (KJS::ProfileNode::endAndRecordCall):
  • profiler/ProfileNode.h: (KJS::ProfileNode::totalTime): (KJS::ProfileNode::selfTime): (KJS::ProfileNode::totalPercent): (KJS::ProfileNode::selfPercent):
  • profiler/Profiler.cpp: (KJS::Profiler::stopProfiling):
7:37 PM Changeset in webkit [33506] by Stephanie Lewis
  • 2 edits in trunk/WebKit/mac

2008-05-15 Stephanie Lewis <Stephanie Lewis>

fix mac build

  • WebView/WebView.mm: (-[WebView closeWithFastTeardown]):
7:31 PM Changeset in webkit [33505] by Stephanie Lewis
  • 2 edits in trunk/WebCore

2008-05-15 Stephanie Lewis <Stephanie Lewis>

Fix windows build

  • loader/FrameLoader.cpp: (WebCore::FrameLoader::stopLoading):
6:07 PM Changeset in webkit [33504] by Stephanie Lewis
  • 8 edits in trunk

2008-05-15 Stephanie Lewis <Stephanie Lewis>

Reviewed by Anders.

Turn on fast teardown. I added a preference for using full teardown because
the LEAKS output will be useless without a full teardown.

preference for fullteardown

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.m: (-[WebPreferences setFullDocumentTeardownEnabled:]): (-[WebPreferences fullDocumentTeardownEnabled]):
  • WebView/WebPreferencesPrivate.h:


on application quit dispatch unload events and destroy plugins then exit

  • WebView/WebView.mm: (-[WebView closeWithFastTeardown]): (-[WebView _close]):
  • WebView/WebViewPrivate.h:

export a symbol needed for fast teardown

  • WebCore.base.exp:
5:51 PM Changeset in webkit [33503] by Stephanie Lewis
  • 25 edits in trunk

2008-05-15 Stephanie Lewis <Stephanie Lewis>

Reviewed by Anders.

Keep track on pending unload event counts

No change in behavior so no new tests, but I am dumping the
unload event count to track the new variable.

  • WebCore.base.exp:

increment/decrement the count when an event is added/removed

  • dom/Document.cpp: (WebCore::Document::removeHTMLWindowEventListener): (WebCore::Document::addWindowEventListener): (WebCore::Document::removeWindowEventListener): (WebCore::Document::setPendingFrameUnloadEventCount):
  • dom/Document.h:

set the count to 0 for each frame after the unload event has been dispatched

  • loader/FrameLoader.cpp: (WebCore::FrameLoader::stopLoading):

keep track of the number of pending unload events for the eventHandler's frame

  • page/EventHandler.cpp: (WebCore::EventHandler::EventHandler):

(WebCore::EventHandler::pendingFrameUnloadEventCount):

(WebCore::EventHandler::setPendingFrameUnloadEventCount):

  • page/EventHandler.h:

keep track of the total number of pending unload events for all of the frames

  • page/Page.cpp: (WebCore::Page::Page): (WebCore::Page::pendingUnloadEventCount): (WebCore::Page::setPendingUnloadEventCount):

age/Page.h:

get the pending frame unload count from WebCore

  • WebView/WebFrame.mm: (-[WebFrame _pendingFrameUnloadEventCount]):
  • WebView/WebFramePrivate.h:

Dump the unload count for a frame after parsing is finished.

  • DumpRenderTree/mac/FrameLoadDelegate.mm: (-[FrameLoadDelegate webView:didFinishDocumentLoadForFrame:]):

Dump unload event counts for frames.

  • fast/dom/Window/get-set-properties-expected.txt:
  • fast/events/onunload-expected.txt:
  • fast/events/onunload-not-on-body-expected.txt:
  • fast/events/onunload-window-property-expected.txt:
  • fast/forms/button-state-restore-expected.txt:
  • fast/history/history_reload-expected.txt:
  • fast/loader/onunload-form-submit-crash-2-expected.txt:
  • fast/loader/onunload-form-submit-crash-expected.txt:
  • http/tests/xmlhttprequest/xhr-onunload-expected.txt:
  • platform/mac/fast/loader/start-load-in-unload-expected.txt:
4:40 PM Changeset in webkit [33502] by sfalken@apple.com
  • 2 edits in trunk/WebCore

2008-05-15 Steve Falkenburg <sfalken@apple.com>

Fix build.

  • WebCore.vcproj/WebCore.vcproj:
4:39 PM Changeset in webkit [33501] by sullivan@apple.com
  • 2 edits in trunk/WebKit/mac

2008-05-15 John Sullivan <sullivan@apple.com>

Reviewed by Kevin Decker


  • fixed <rdar://problem/5940275> Inspector highlighting moves to bottom-left corner of screen when new tab appears


The highlight should go away entirely, but this simple patch just makes it not jump away.
The issue with it not going away entirely is harder to fix and covered by <rdar://problem/5322306>

  • WebInspector/WebNodeHighlight.m: (-[WebNodeHighlight _repositionHighlightWindow]): Bail out if target view isn't in a window
4:37 PM Changeset in webkit [33500] by Stephanie Lewis
  • 10 edits in trunk/WebKit/mac

2008-05-15 Stephanie Lewis <Stephanie Lewis>

Reviewed by Anders.

Track views that contain plugin instances so that they can be destroyed at application
quit without walking the entire document tree.

Add/Remove Netscape plugin views from instance list. Start/stop are when netscape
plugins are created and destroyed

  • Plugins/WebBaseNetscapePluginView.mm: (-[WebBaseNetscapePluginView start]): (-[WebBaseNetscapePluginView stop]):


Add/remove WebKit plugin views from instance list

  • Plugins/WebPluginController.mm: (-[WebPluginController addPlugin:]): (-[WebPluginController destroyPlugin:]): (-[WebPluginController destroyAllPlugins]):

Add a set of views with plugin instances to the WebPluginDatabase

  • Plugins/WebPluginDatabase.h:
  • Plugins/WebPluginDatabase.mm: (-[WebPluginDatabase init]): (-[WebPluginDatabase dealloc]): (-[WebPluginDatabase addPluginInstanceView:]): (-[WebPluginDatabase removePluginInstanceView:]): (-[WebPluginDatabase removePluginInstanceViewsFor:]): (-[WebPluginDatabase destroyAllPluginInstanceViews]):


Handle cases where plugin views are detached before the plugin is destroyed.

  • WebCoreSupport/WebFrameLoaderClient.mm: (WebFrameLoaderClient::detachedFromParent2): (WebFrameLoaderClient::transitionToCommittedFromCachedPage): (WebFrameLoaderClient::transitionToCommittedForNewPage):

Add plugin instances to the set in the WebPluginDatabase by way of the WebView

  • WebView/WebHTMLView.mm:


  • WebView/WebHTMLViewInternal.h:
  • WebView/WebView.mm: (-[WebView addPluginInstanceView:]): (-[WebView removePluginInstanceView:]): (-[WebView removePluginInstanceViewsFor:]):
  • WebView/WebViewInternal.h:
4:10 PM Changeset in webkit [33499] by beidson@apple.com
  • 4 edits in trunk/WebKit

WebKit/mac:

2008-05-15 Brady Eidson <beidson@apple.com>

Reviewed by Tim Hatcher

Until the settings/preferences equation can be reworked, we'll need to manually set the local storage path
before setting the page group of the new page.


  • WebView/WebView.mm: (-[WebView _commonInitializationWithFrameName:groupName:]): Set the LocalStorage path immediately after creating the page so it is in place for initializing the LocalStorageThread

WebKit/win:

2008-05-06 Brady Eidson <beidson@apple.com>

Reviewed by Tim Hatcher

Until the settings/preferences equation can be reworked, we'll need to manually set the local storage path
before setting the page group of the new page.

Since I still need to add the local storage path to WebPreferences on Windows, mark this with a FIXME for now.

  • WebView.cpp: (WebView::initWithFrame): Mark an important FIXME for setting the LocalStorage path as appropriate. Until this FIXME is handled, Windows will have no persistent LocalStorage
4:03 PM Changeset in webkit [33498] by sfalken@apple.com
  • 2 edits in trunk/WebCore

2008-05-15 Steve Falkenburg <sfalken@apple.com>

Fix build.

  • WebCore.vcproj/WebCore.vcproj:
3:25 PM Changeset in webkit [33497] by sfalken@apple.com
  • 2 edits in trunk/WebCore

2008-05-15 Steve Falkenburg <sfalken@apple.com>

Fix build.

  • WebCore.vcproj/WebCore.vcproj:
2:08 PM Changeset in webkit [33496] by ddkilzer@apple.com
  • 3 edits
    2 adds in trunk

WebCore:

Bug 19085: font-family: initial sets font-family differently than font: initial

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

Reviewed by David Hyatt.

Test: fast/css/font-family-initial.html

  • css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty): Don't set family if first family of initial font description is empty.

LayoutTests:

Bug 19085: font-family: initial sets font-family differently than font: initial

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

Reviewed by David Hyatt.

  • fast/css/font-family-initial-expected.txt: Added.
  • fast/css/font-family-initial.html: Added.
2:00 PM Changeset in webkit [33495] by hyatt@apple.com
  • 6 edits
    2 moves
    1 add in trunk/WebCore

2008-05-15 David Hyatt <hyatt@apple.com>

Move RenderStyle into a new subdirectory, rendering/style/, in preparation for breaking it up into
a bunch of smaller files.

Reviewed by Dan Bernstein

  • GNUmakefile.am:
  • WebCore.pro:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • WebCoreSources.bkl:
  • rendering/RenderStyle.cpp: Removed.
  • rendering/RenderStyle.h: Removed.
  • rendering/style: Added.
  • rendering/style/RenderStyle.cpp: Copied from rendering/RenderStyle.cpp.
  • rendering/style/RenderStyle.h: Copied from rendering/RenderStyle.h.
1:42 PM Changeset in webkit [33494] by ddkilzer@apple.com
  • 2 edits in trunk/WebCore

Fix leaks when stopping a page from loading

Patch suggested by Antti. Reviewed by Antti.

  • loader/DocLoader.cpp: (WebCore::DocLoader::clearPreloads): If a resource is in m_preloads but never made it to the cache, delete it to prevent it from leaking.
12:58 PM Changeset in webkit [33493] by timothy@apple.com
  • 2 edits in trunk/WebKit/mac

Fixes the bug where the Web Inspector would flash white while resizing.
This was cause by deferring the window creation.

<rdar://problem/5873549> REGRESSION: Inspector flickers horribly while resizing (17979)

Reviewed by Darin Adler.

  • WebCoreSupport/WebInspectorClient.mm:

(-[WebInspectorWindowController window]): Don't defer the window creation.

12:49 PM Changeset in webkit [33492] by jchaffraix@webkit.org
  • 3 edits
    2 adds in trunk

WebCore:

2008-05-15 Julien Chaffraix <jchaffraix@webkit.org>

Reviewed by Darin.

https://bugs.webkit.org/show_bug.cgi?id=13942
ASSERTION FAILED: !attrName.contains('/') in HTMLTokenizer.cpp:132 when loading http://bamanzi.blogeden.cn/

In HTML, when an attribute was null (for example when we parse '="somevalue"'
(attribute forgotten or there is a space between the attribute and the '=')),
the fallback was to assign the value to the attribute. However if the value was
a url or did contain a '/', we would trigger the assertion.

To avoid that, we check the value before assigning it now and do not assign it
if it means adding a '/'.

Test: fast/parser/assertion-empty-attribute.html

  • html/HTMLTokenizer.cpp: (WebCore::HTMLTokenizer::parseTag): Add check for '/' in value before assigning it to an attribute when the attribute is null.

LayoutTests:

2008-05-15 Julien Chaffraix <jchaffraix@webkit.org>

Reviewed by Darin.

Test case for https://bugs.webkit.org/show_bug.cgi?id=13942
ASSERTION FAILED: !attrName.contains('/') in HTMLTokenizer.cpp:132 when loading http://bamanzi.blogeden.cn/

  • fast/parser/assertion-empty-attribute-expected.txt: Added.
  • fast/parser/assertion-empty-attribute.html: Added.
10:22 AM Changeset in webkit [33491] by ap@webkit.org
  • 9 edits in trunk

Reviewed by Dan Bernstein.

https://bugs.webkit.org/show_bug.cgi?id=10707
DumpRenderTree should not be able to access non-local resources

  • DumpRenderTree/mac/ResourceLoadDelegate.mm: (-[ResourceLoadDelegate webView:resource:willSendRequest:redirectResponse:fromDataSource:]): Block them, and complain.
10:02 AM Changeset in webkit [33490] by ap@webkit.org
  • 2 edits in trunk/WebKit/mac

Tiger build fix.

  • Misc/WebNSAttributedStringExtras.mm: Import WebTypesInternal.h for NSUInteger.
9:18 AM Changeset in webkit [33489] by kevino@webkit.org
  • 2 edits in trunk/WebKitTools

wx build fix. Update the version of libpng to download and instsall.

8:52 AM Changeset in webkit [33488] by kevino@webkit.org
  • 4 edits
    6 adds in trunk/WebCore

wx build fix for recent breakages. Add EventLoopWx.cpp, update the Bakefiles, and add stubs for new Plugins functions. Also move plugin functions outside of TemporaryLinkStubs.cpp so that they are more noticeable.

7:51 AM Changeset in webkit [33487] by Simon Hausmann
  • 2 edits in trunk/WebCore

2008-05-15 Adam Treat <treat@kde.org>

Reviewed by Simon.

Don't try to setCompositionMode for devices that do not support PorterDuff

6:45 AM Changeset in webkit [33486] by ap@webkit.org
  • 7 edits in trunk

2008-05-15 Adele Peterson <adele@apple.com>

Reviewed and landed by Alexey.

Use TextIterator in +[NSAttributedString _web_attributedStringFromRange:].

6:25 AM Changeset in webkit [33485] by Simon Hausmann
  • 2 edits in trunk/JavaScriptCore

Simon Hausmann <shausman@trolltech.com>

Fix compilation when compiling with MSVC and wchar_t support.

5:45 AM Changeset in webkit [33484] by oliver@apple.com
  • 11 edits in branches/squirrelfish/JavaScriptCore

Revert "Bug 18626: SQUIRRELFISH: support the "slow script" dialog"

This seems to cause a significant perf regression on some systems

2:31 AM Changeset in webkit [33483] by oliver@apple.com
  • 11 edits in branches/squirrelfish/JavaScriptCore

Bug 18626: SQUIRRELFISH: support the "slow script" dialog
<https://bugs.webkit.org/show_bug.cgi?id=18626>

Reviewed by Maciej

Support the slow script dialog for for(;;), while, and do..while
loops.

12:26 AM Changeset in webkit [33482] by Simon Hausmann
  • 2 edits in trunk/WebCore

2008-05-15 Simon Hausmann <Simon Hausmann>

Fix the Qt build by adding NetworkStateNotifier.cpp to the build.

12:14 AM Changeset in webkit [33481] by ggaren@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

2008-05-15 Geoffrey Garen <ggaren@apple.com>

Not reviewed.


We regret to inform you that your program is crashing because you were
stupid.

  • VM/Machine.cpp: (KJS::Machine::privateExecute): Math is hard.

May 14, 2008:

11:50 PM Changeset in webkit [33480] by ggaren@apple.com
  • 10 edits in branches/squirrelfish/JavaScriptCore

2008-05-14 Geoffrey Garen <ggaren@apple.com>

Reviewed by Oliver Hunt.

A little more debugger action: filled in op_debug. All debugger control
flow works now, but variable inspection and backtraces still don't.


SunSpider reports no change.

  • VM/CodeGenerator.cpp: Changed op_debug to accept line number parameters.
  • VM/Machine.cpp: (KJS::Machine::getFunctionAndArguments): Moved op_debug into a NEVER_INLINE function to avoid a stunning 10% performance regression. Also factored out a common function for retrieving the function and arguments from a call frame.
  • kjs/JSActivation.cpp: (KJS::JSActivation::createArgumentsObject): Use the new factored out function mentioned above.
  • kjs/Parser.cpp: (KJS::Parser::parse): Increment m_sourceId before assigning it, so the sourceId we send to the debugger matches the sourceId recorded in the node.
  • kjs/nodes.cpp: Emit debugging hooks.
11:06 PM Changeset in webkit [33479] by mrowe@apple.com
  • 9 edits in tags/Safari-6526.5

Merge r33017.

10:52 PM Changeset in webkit [33478] by mrowe@apple.com
  • 4 edits in trunk

Versioning.

10:49 PM Changeset in webkit [33477] by mrowe@apple.com
  • 1 copy in tags/Safari-6526.5

New tag.

10:49 PM Changeset in webkit [33476] by mitz@apple.com
  • 3 edits
    2 adds in trunk

WebCore:

Reviewed by Mark Rowe.

  • fix <rdar://problem/5907633> Memory corruption after closing a document that uses box-reflect

Test: fast/reflections/teardown-crash.html

  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::~RenderLayer): Changed to not call removeLayers() on the reflection if the document is being destroyed, because in that case the layer tree is not being maintained.

LayoutTests:

Reviewed by Mark Rowe.

  • test for <rdar://problem/5907633> Memory corruption after closing a document that uses box-reflect
  • fast/reflections/teardown-crash-expected.txt: Added.
  • fast/reflections/teardown-crash.html: Added.
7:36 PM Changeset in webkit [33475] by kmccullough@apple.com
  • 2 edits in trunk/JavaScriptCore

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

Reviewed by Tim.

<rdar://problem/5770054> JavaScript profiler (10928)

  • Turn on the profiler.
  • kjs/config.h:
7:06 PM Changeset in webkit [33474] by kmccullough@apple.com
  • 4 edits in trunk

JavaScriptCore:

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

Reviewed by Tim.

<rdar://problem/5770054> JavaScript profiler (10928)

WebCore:

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

Reviewed by Tim.

<rdar://problem/5770054> JavaScript profiler (10928)

  • page/JavaScriptProfileNode.cpp: (WebCore::getTotalPercent): (WebCore::getSelfPercent): (WebCore::ProfileNodeClass):
6:59 PM Changeset in webkit [33473] by timothy@apple.com
  • 2 edits
    1 add in trunk/WebCore

Fixes a crash in JavaScriptDebugServer::returnEvent when debugging
code that contains an eval. This change makes stepping into eval
code work as expected.

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

Reviewed by Kevin McCullough.

Tested with: manual-tests/inspector/returnEvent-crash.html

  • manual-tests/inspector/returnEvent-crash.html: Added.
  • page/JavaScriptDebugServer.cpp:

(WebCore::JavaScriptDebugServer::sourceParsed): Adds #ifdefed
debugging code to prevent the sourceID and URL.
(WebCore::updateCurrentCallFrame): Added. A helper function that
is called from all 4 of the debugger hooks below. This function will
update and/or create JavaScriptCallFrames to match the exec state,
sourceID and lineNumber passed into it. Contains #ifdefed debugging
code that was helpful while fixing this bug.
(WebCore::JavaScriptDebugServer::callEvent): Call updateCurrentCallFrame
before pauseIfNeeded.
(WebCore::JavaScriptDebugServer::atStatement): Ditto.
(WebCore::JavaScriptDebugServer::returnEvent): Ditto.
(WebCore::JavaScriptDebugServer::exception): Ditto.

6:31 PM Changeset in webkit [33472] by alp@webkit.org
  • 2 edits in trunk/WebCore

2008-05-14 Alp Toker <alp@nuanti.com>

GTK+ build fix for r33457. Add NetworkStateNotifier.cpp to the build.

  • GNUmakefile.am:
6:10 PM Changeset in webkit [33471] by kmccullough@apple.com
  • 1 edit in trunk/JavaScriptCore/ChangeLog

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

Giving credit where credit is due.

  • ChangeLog:
6:09 PM Changeset in webkit [33470] by kmccullough@apple.com
  • 5 edits in trunk/JavaScriptCore

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

Reviewed by Geoff and Sam.

<rdar://problem/5770054> JavaScript profiler (10928)
Add the ability to get percentages of total and self time for displaying
in the WebInspector.

  • profiler/Profile.h: (KJS::Profile::totalProfileTime):
  • profiler/ProfileNode.cpp: (KJS::ProfileNode::totalPercent): (KJS::ProfileNode::selfPercent):
  • profiler/ProfileNode.h:
  • profiler/Profiler.h: (KJS::Profiler::currentProfile):
6:06 PM Changeset in webkit [33469] by andersca@apple.com
  • 2 edits
    1 add in trunk/WebKitSite

2008-05-14 Anders Carlsson <andersca@apple.com>

Reviewed by Mitz.

Make our Sticky notes example an offline web app.

  • misc/DatabaseExample.html:
  • misc/DatabaseExample.manifest: Added.
6:02 PM Changeset in webkit [33468] by alp@webkit.org
  • 3 edits in trunk/WebCore

2008-05-14 Alp Toker <alp@nuanti.com>

GTK+ build fix. Include value.h from kjs, not JavaScriptCore.

  • page/JavaScriptProfile.cpp:
  • page/JavaScriptProfileNode.cpp:
5:43 PM Changeset in webkit [33467] by Adam Roben
  • 2 edits in trunk/WebCore

Windows release build fix

  • WebCore.vcproj/WebCore.vcproj: Make sure the warnings we disable on XPathGrammar.cpp are disabled for all configurations, not just Debug_Internal.
5:25 PM Changeset in webkit [33466] by kmccullough@apple.com
  • 17 edits
    5 moves in trunk

JavaScriptCore:

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

Reviewed by Sam.

<rdar://problem/5770054> JavaScript profiler (10928)

  • Rename FunctionCallProfile to ProfileNode.
  • GNUmakefile.am:
  • JavaScriptCore.exp:
  • JavaScriptCore.pri:
  • JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • JavaScriptCoreSources.bkl:
  • profiler/FunctionCallProfile.cpp: Removed.
  • profiler/FunctionCallProfile.h: Removed.
  • profiler/Profile.cpp: (KJS::Profile::Profile): (KJS::Profile::willExecute):
  • profiler/Profile.h: (KJS::Profile::callTree):
  • profiler/ProfileNode.cpp: Copied from profiler/FunctionCallProfile.cpp. (KJS::ProfileNode::ProfileNode): (KJS::ProfileNode::willExecute): (KJS::ProfileNode::didExecute): (KJS::ProfileNode::addChild): (KJS::ProfileNode::findChild): (KJS::ProfileNode::stopProfiling): (KJS::ProfileNode::selfTime): (KJS::ProfileNode::printDataInspectorStyle): (KJS::ProfileNode::printDataSampleStyle): (KJS::ProfileNode::endAndRecordCall):
  • profiler/ProfileNode.h: Copied from profiler/FunctionCallProfile.h. (KJS::ProfileNode::create): (KJS::ProfileNode::children):
  • profiler/Profiler.cpp:

WebCore:

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

Reviewed by Sam.

<rdar://problem/5770054> JavaScript profiler (10928)

  • Rename FunctionCallProfile to ProfileNode
  • ForwardingHeaders/profiler/FunctionCallProfile.h: Removed.
  • ForwardingHeaders/profiler/ProfileNode.h: Copied from ForwardingHeaders/profiler/FunctionCallProfile.h.
  • GNUmakefile.am:
  • WebCore.pro:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • WebCoreSources.bkl:
  • page/JavaScriptFunctionCallProfile.cpp: Removed.
  • page/JavaScriptFunctionCallProfile.h: Removed.
  • page/JavaScriptProfile.cpp:
  • page/JavaScriptProfileNode.cpp: Copied from page/JavaScriptFunctionCallProfile.cpp. (WebCore::ProfileNodeCache): (WebCore::getFunctionName): (WebCore::getTotalTime): (WebCore::getSelfTime): (WebCore::getNumberOfCalls): (WebCore::getChildren): (WebCore::finalize): (WebCore::ProfileNodeClass): (WebCore::toJS):
  • page/JavaScriptProfileNode.h: Copied from page/JavaScriptFunctionCallProfile.h.
5:02 PM Changeset in webkit [33465] by Beth Dakin
  • 6 edits in trunk/WebCore

2008-05-13 Beth Dakin <Beth Dakin>

Reviewed by Brady.

This patch adds support for the ARIA progressbar role and the
following ARIA states (ie HTML attributes): aria-checked, aria-
level, aria-pressed, aria-valuenow, aria-valuemin, and aria-
valuemax.

  • html/HTMLAttributeNames.in:
  • page/AccessibilityObject.h: (WebCore::AccessibilityObject::isProgressIndicator): (WebCore::AccessibilityObject::valueForRange): (WebCore::AccessibilityObject::maxValueForRange): (WebCore::AccessibilityObject::minValueForRange):
  • page/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::isProgressIndicator): (WebCore::AccessibilityRenderObject::isPressed): Check the aria- pressed attribute if this is an ARIA button. (WebCore::AccessibilityRenderObject::headingLevel): Check the aria- level attribute if this is an ARIA heading. (WebCore::AccessibilityRenderObject::intValue): Check the aria- checked attribute if this is an ARIA radio button or checkbox. (WebCore::AccessibilityRenderObject::valueForRange): (WebCore::AccessibilityRenderObject::maxValueForRange): (WebCore::AccessibilityRenderObject::minValueForRange): (WebCore::RoleEntry::): (WebCore::AccessibilityRenderObject::canSetValueAttribute):
  • page/AccessibilityRenderObject.h:
  • page/mac/AccessibilityObjectWrapper.mm: (-[AccessibilityObjectWrapper accessibilityAttributeNames]): (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
4:02 PM Changeset in webkit [33464] by kmccullough@apple.com
  • 6 edits in trunk

JavaScriptCore:

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

Reviewed by John.

<rdar://problem/5770054> JavaScript profiler (10928)

  • Have each FunctionCallProfile be able to return it's total and self time.
  • JavaScriptCore.exp:
  • profiler/FunctionCallProfile.cpp: (KJS::FunctionCallProfile::selfTime):
  • profiler/FunctionCallProfile.h: (KJS::FunctionCallProfile::totalTime):

WebCore:

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

Reviewed by John.

-<rdar://problem/5770054> JavaScript profiler (10928)
Use the FunctionCallProfile's new total and self time functions.

  • page/JavaScriptFunctionCallProfile.cpp: (WebCore::getTotalTime): (WebCore::getSelfTime):
3:50 PM Changeset in webkit [33463] by andersca@apple.com
  • 1 edit
    1 add in trunk/LayoutTests

2008-05-14 Anders Carlsson <andersca@apple.com>

Check in the test result.


  • http/tests/appcache/manifest-with-empty-file-expected.txt: Added.
3:44 PM Changeset in webkit [33462] by andersca@apple.com
  • 3 edits
    3 adds in trunk

WebCore:

2008-05-14 Anders Carlsson <andersca@apple.com>

Reviewed by Adam.

Don't try to store the resource data if it's empty.


  • loader/appcache/ApplicationCacheStorage.cpp: (WebCore::ApplicationCacheStorage::store):

LayoutTests:

2008-05-14 Anders Carlsson <andersca@apple.com>

Reviewed by Adam.

Add test where a manifest references an empty file.


  • http/tests/appcache/manifest-with-empty-file.html: Added.
  • http/tests/appcache/resources/empty.txt: Added.
  • http/tests/appcache/resources/manifest-with-empty-file.manifest: Added.
3:35 PM Changeset in webkit [33461] by Adam Roben
  • 3 edits in trunk/WebCore

Windows build fix

  • platform/network/NetworkStateNotifier.cpp: Added a missing #include.
  • platform/network/NetworkStateNotifier.h: (WebCore::NetworkStateNotifier::NetworkStateNotifier): Removed 'void' return type from the constructor, and fixed the spelling of a member variable.
3:26 PM Changeset in webkit [33460] by kmccullough@apple.com
  • 7 edits
    6 adds in trunk/WebCore

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

Reviewed by Adam.

<rdar://problem/5770054> JavaScript profiler (10928)

  • ForwardingHeaders/profiler/FunctionCallProfile.h: Added.
  • ForwardingHeaders/profiler/Profile.h: Added.
  • GNUmakefile.am: Add the new files to all the projects.
  • WebCore.pro:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • WebCoreSources.bkl:
  • page/InspectorController.cpp: Add the ability to retrieve all of the profiles in JavaScript from the InspectorController. (WebCore::allProfiles): (WebCore::InspectorController::windowScriptObjectAvailable):
  • page/JavaScriptFunctionCallProfile.cpp: Added. Wrapper around the JSC FunctionCallProfile. (WebCore::functionCallProfileCache): This cache makes sure we don't needlessly create duplicate wrappers around the same FunctionCallProfile*. (WebCore::getFunctionName): Callback to return the name of the function. (WebCore::getTotalTime): Callback to return the total time spent in the function. (WebCore::getSelfTime): Callback to return the time spent in self (total
  • time in children) in the function. (WebCore::getNumberOfCalls): Callback to return the number of times this function was called. (WebCore::getChildren): Callback to return the children of this function where the children are the functions this function called. (WebCore::finalize): Cleanup. (WebCore::functionCallProfileClass): Define the JSClassRef for this object. (WebCore::toJS): Create a conversion function to make a usable JSValue to wrap the FunctionCallProfile in JSC.
  • page/JavaScriptFunctionCallProfile.h: Added.
  • page/JavaScriptProfile.cpp: Added. Wrapper around the JSC Profile. (WebCore::profileCache): This cache makes sure we don't needlessly create duplicate wrappers aroudn the same Profile*. (WebCore::getHeadCallback): Callback to return the head of the graph of the functions profiled durring this profile's run. (WebCore::finalize): (WebCore::profileClass): Define the JSClassRef for this object. (WebCore::toJS): Create a conversion function to make a usable JSValue to wrap the Profile from JSC.
  • page/JavaScriptProfile.h: Added.
3:20 PM Changeset in webkit [33459] by Adam Roben
  • 2 edits in trunk/WebKit/win

Fix Bug 18767: Inspector is currently pretty much useless on Windows

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

Reviewed by Tim Hatcher.

  • WebCoreSupport/WebInspectorClient.cpp: (WebInspectorClient::highlight): Only move the highlight behind the Inspector window when first creating the highlight, not every time we update it.
3:07 PM Changeset in webkit [33458] by hyatt@apple.com
  • 2 edits
    2 adds in trunk

2008-05-14 David Hyatt <hyatt@apple.com>

Fix for bug https://bugs.webkit.org/show_bug.cgi?id=16130.

Opacity, transforms, reflections and masks should not honor z-index unless the element is also
positioned. Always reset to auto if the element is not positioned (and then the following code will
adjust auto to 0 as needed).

Reviewed by Dan Bernstein

  • css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::adjustRenderStyle):
2:30 PM Changeset in webkit [33457] by andersca@apple.com
  • 8 edits
    3 adds in trunk/WebCore

2008-05-14 Anders Carlsson <andersca@apple.com>

Reviewed by Brady.

<rdar://problem/5931742> Support navigator.onLine from HTML5


  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj: Add NetworkStateNotifier files.


  • dom/EventNames.h: Add offline and online events.


  • page/Navigator.cpp: (WebCore::Navigator::onLine):
  • page/Navigator.h:
  • page/Navigator.idl: Add navigator.onLine.


  • page/Page.cpp: (WebCore::networkStateChanged): Dispatch offline/online events to all frames.


(WebCore::Page::Page):
Set state change callback.


  • platform/network/NetworkStateNotifier.cpp: Added.
  • platform/network/NetworkStateNotifier.h: Added.
  • platform/network/mac/NetworkStateNotifierMac.cpp: Added. Mac network state notifier.
2:26 PM Changeset in webkit [33456] by eric@webkit.org
  • 2 edits in trunk/WebKit/mac

Reviewed by Oliver.

Add missing NULL check to match rest of file, this was found by the editing fuzzer.

  • WebView/WebResource.mm: (-[WebResource data]):
2:17 PM Changeset in webkit [33455] by Adam Roben
  • 1 edit in trunk/WebCore/ChangeLog

Add some Bugzilla URLs

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

Fix Bug 18888: REGRESSION (r32731): console.log always prints "undefined"

Reviewed by Tim Hatcher.

Tested by pre-existing
manual-tests/inspector/console-log-formatting.html.

  • page/inspector/Console.js: (WebInspector.ConsoleMessage.prototype._format): Changed to explicitly wrap Console._format instead of using bind to do it. Using bind was causing us to pass plainText in as the first parameter instead of as the second.
1:59 PM Changeset in webkit [33453] by timothy@apple.com
  • 2 edits in trunk/WebCore

Fixes the bug where stepping out of a function would show the wrong
call stack (would look like it stepped out twice.)

Reviewed by Adam Roben.

  • page/JavaScriptDebugServer.cpp:

(WebCore::JavaScriptDebugServer::returnEvent):
Call pauseIfNeeded before setting m_currentCallFrame to the caller.

1:40 PM Changeset in webkit [33452] by Stephanie Lewis
  • 2 edits in trunk/WebCore

2008-05-14 Stephanie Lewis <Stephanie Lewis>

Fix 64bit build

  • plugins/PluginView.h:
1:36 PM Changeset in webkit [33451] by ddkilzer@apple.com
  • 6 edits in trunk

WebCore:

REGRESSION (r26474): WebKit fails jQuery test 64 core module: text(String) subtest 1 Check escaped text (createTextNode)

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

Reviewed by Darin.

Tests: fast/dom/dom-parse-serialize-expected.txt:

fast/xsl/xslt-processor-expected.txt:
fast/xsl/xslt-text-expected.txt:

Commit r26474 removed escaping of '>' characters to '&gt;' in serialized
HTML content, which broke one jQuery test. This change restores that
serialization behavior to both attributes and content for consistency.

  • editing/markup.cpp: (WebCore::appendAttributeValue): Escape '>' as '&gt;'. (WebCore::escapeContentText): Ditto. (WebCore::appendEscapedContent): Ditto. This is the bug fix for the jQuery test.

LayoutTests:

REGRESSION (r26474): WebKit fails jQuery test 64 core module: text(String) subtest 1 Check escaped text (createTextNode)

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

Reviewed by Darin.

Updated test results now that '>' is escaped to '&gt;' in both
attributes and content.

  • fast/xsl/xslt-processor-expected.txt:
  • fast/xsl/xslt-text-expected.txt:
  • platform/mac/fast/dom/dom-parse-serialize-expected.txt:
1:04 PM Changeset in webkit [33450] by Adam Roben
  • 3 edits in trunk/WebCore

Fix Bug 19051: REGRESSION (r33447): Assertion in JSDebugServer::removeListener closing tab with Inspector open

m_inspectedPage is now cleared when the Page is destroyed, which never
used to happen. Some of InspectorController's code was not prepared
for this.

Reviewed by Dave Hyatt.

  • page/InspectorController.cpp: (WebCore::InspectorController::~InspectorController): Removed a call to stopDebugging and added an assertion. Debugging should have already been stopped by this point. (WebCore::InspectorController::inspectedPageDestroyed): Moved here from the header file. Added a call to stopDebugging. (WebCore::InspectorController::enabled): Return false if our inspected Page has already been destroyed, since we can't really do much at this point anyway. (WebCore::InspectorController::didCommitLoad): (WebCore::InspectorController::didLoadResourceFromMemoryCache): (WebCore::InspectorController::identifierForInitialRequest): (WebCore::InspectorController::startDebuggingAndReloadInspectedPage): (WebCore::InspectorController::stopDebugging): (WebCore::InspectorController::drawNodeHighlight): Assert that m_inspectedPage hasn't been cleared.
  • page/InspectorController.h:
12:30 PM Changeset in webkit [33449] by justin.garcia@apple.com
  • 10 edits in trunk

WebCore:

2008-05-14 Justin Garcia <justin.garcia@apple.com>

Reviewed by Darin.

<rdar://problem/5914803> Improve performance of WebCore::Editor::setComposition

  • editing/Editor.cpp: (WebCore::Editor::confirmComposition): Remove the previous composition when we insert the new one, not with a separate, slower, delete operation. (WebCore::Editor::setComposition): Ditto.
  • editing/InsertTextCommand.cpp: (WebCore::InsertTextCommand::performTrivialReplace): Remove the selected text with a low level operation that doesn't perform a layout and insert the new text in a way that won't trigger a layout from the removal. (WebCore::InsertTextCommand::input): Call the optimized replace.
  • editing/InsertTextCommand.h:
  • editing/htmlediting.cpp: (WebCore::isTabSpanNode): Check to see if the node is a span, to avoid the expense of getAttribute in the common case.
  • page/Frame.cpp: (WebCore::Frame::selectionLayoutChanged): Selection::start() and end() will already be at VisiblePosition deepEquivalents. Selection::validate() ensures this.

LayoutTests:

2008-05-14 Justin Garcia <justin.garcia@apple.com>

Reviewed by Darin.

<rdar://problem/5914803> Improve performance of WebCore::Editor::setComposition


Replacing all the text in a node is now much less likely to remove it
and cause selection changes.

  • platform/mac/editing/input/text-input-controller-expected.txt:
  • platform/mac/editing/inserting/4959067-expected.txt:
  • platform/mac/editing/style/style-3681552-fix-001-expected.txt:
12:01 PM Changeset in webkit [33448] by ap@webkit.org
  • 2 edits in trunk/WebKit/mac

Reviewed by Dan Bernstein.

NPP_ValidAttributesForMarkedText should return NSArray*, not NSArray.

  • Plugins/nptextinput.h:
11:33 AM Changeset in webkit [33447] by Adam Roben
  • 4 edits in trunk/WebCore

Make the Inspector able to handle being reloaded

When Reload was selected from the context menu in the Inspector, the
Inspector window would close and never be openable again. Now it
closes, then reopens when the page finishes loading.

Reviewed by Tim Hatcher.

  • page/InspectorController.cpp: (WebCore::InspectorController::close): Removed code that cleared out m_page. This is now handled by pageDestroyed.
  • page/InspectorController.h: (WebCore::InspectorController::inspectedPageDestroyed): Added.
  • page/Page.cpp: (WebCore::Page::~Page): Fixed a bug and added a call to the new inspectedPageDestroyed. If we have a parent InspectorController, that means that we are the Page in the Inspector's window (i.e., we are the Inspector's UI), so when we are destroyed we should call InspectorController::pageDestroyed. We also need to call inspectedPageDestroyed on our own InspectorController so that it won't try to call into us.
11:21 AM Changeset in webkit [33446] by jchaffraix@webkit.org
  • 3 edits in trunk/WebKitTools

2008-05-14 Julien Chaffraix <jchaffraix@webkit.org>

Reviewed by Eric.


  • isDarwin() and isCygwin() returned an empty string if the platform equality check fails. We now force the return value to be numeric.
  • Removed platform checks as it was a work around the previous issue.
  • Replaced isDarwin() by isOSX() as they have now the same behaviour.
  • Scripts/build-webkit:
  • Scripts/webkitdirs.pm:
10:55 AM Changeset in webkit [33445] by timothy@apple.com
  • 8 edits
    1 add in trunk/WebCore

Add pause on exception support to the Inspector debugger
with a toggle buttons to enable or disable it.

Reviewed by Adam Roben.

  • page/InspectorController.cpp:

(WebCore::pauseOnExceptions): Call the InspectorController.
(WebCore::setPauseOnExceptions): Ditto.
(WebCore::InspectorController::windowScriptObjectAvailable): Add the new
setPauseOnExceptions and pauseOnExceptions functions to the JS class.
(WebCore::InspectorController::pauseOnExceptions): Call JavaScriptDebugServer.
(WebCore::InspectorController::setPauseOnExceptions): Ditto.

  • page/InspectorController.h:
  • page/JavaScriptDebugServer.cpp:

(WebCore::JavaScriptDebugServer::setPauseOnExceptions): Set m_pauseOnExceptions.
(WebCore::JavaScriptDebugServer::exception): Check m_pauseOnExceptions
and set m_pauseOnNextStatement to true before calling pauseIfNeeded.

  • page/JavaScriptDebugServer.h:
  • page/inspector/Images/pauseOnExceptionButtons.png: Added.
  • page/inspector/ScriptsPanel.js: Adds a status bar button that calls

the new InspectorController functions.

  • page/inspector/inspector.css: New styles.
10:55 AM Changeset in webkit [33444] by timothy@apple.com
  • 4 edits in trunk/WebCore

Rename the Scope Chain pane to Scope Variables. Name the global
object Global. Name objects before the locals "With Block".
Name colsure scopes "Closure". Name any element or document
after Local, "Event Target" and "Event Document", respectfully.

Reviewed by Adam Roben.

  • English.lproj/localizedStrings.js: Add new strings.
  • page/inspector/ObjectPropertiesSection.js:

(WebInspector.ObjectPropertiesSection): Add a new argument that is used
for the empty placeholder text.
(WebInspector.ObjectPropertiesSection.prototype.onpopulate): Use the
empty placeholder text.

  • page/inspector/ScopeChainSidebarPane.js:

(WebInspector.ScopeChainSidebarPane): Rename Scope Chain to Scope Variables.
(WebInspector.ScopeChainSidebarPane.prototype.update): Use the object name as
the subtitle. Use "Global" for the global object title. Use "With Block" for
the title of objects before the locals. Use "No Variables" for the empty
placeholder text for locals.

9:34 AM Changeset in webkit [33443] by ap@webkit.org
  • 3 edits
    3 adds in trunk

Reviewed by Darin.

<rdar://problem/5934376> REGRESSION: A script fails because of a straw BOM character in it.

<https://bugs.webkit.org/show_bug.cgi?id=4931>
Unicode format characters (Cf) should be removed from JavaScript source

Of all Cf characters, we are only removing BOM, because this is what Firefox trunk has
settled upon, after extensive discussion and investigation.

Based on Darin's work on this bug.

Test: fast/js/removing-Cf-characters.html

  • kjs/lexer.cpp: (KJS::Lexer::setCode): Tweak formatting. Use a call to shift(4) to read in the first characters, instead of having special case code here. (KJS::Lexer::shift): Add a loop when reading a character to skip BOM characters.
9:18 AM Changeset in webkit [33442] by ap@webkit.org
  • 3 edits
    2 adds in trunk

2008-05-14 Michael A. Puls II <shadow2531@gmail.com>

Reviewed by Alexey.

Fix for https://bugs.webkit.org/show_bug.cgi?id=16923
Attr nodes with a value of "" should not have any childNodes


In Opera, Firefox and IE, when an attribute node has a value
of "", the attribute node doesn't have any childNodes. This
is true in WebKit also, but not when you assign "" to the
Attr's value when the existing value is non-empty.


Test: fast/dom/attribute-empty-value-no-children.html

  • dom/Attr.cpp: (WebCore::Attr::setValue): Use createTextChild(), which only appends a child text node if the value being assigned is not empty.
8:50 AM Changeset in webkit [33441] by jchaffraix@webkit.org
  • 10 edits in trunk/WebCore

2008-05-14 Julien Chaffraix <jchaffraix@webkit.org>

Reviewed by Eric.

GCC 4.3 build fix.
Removes some compiler warnings.

  • dom/Document.h: (WebCore::FormElementKey::hashTableDeletedValue): GCC complained about the const keyword so remove it as it is only used inside FormElementKey.
  • html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::menuListDefaultEventHandler): Correct coding style (removes a warning too).
  • loader/appcache/ApplicationCacheResource.cpp: Include stdio.h for gcc4.3 build.
  • plugins/PluginPackage.cpp: (WebCore::PluginPackage::PluginPackage): Changed initialization order in the constructor.
  • plugins/PluginView.cpp: (WebCore::PluginView::PluginView): Ditto.
  • plugins/PluginView.h:
  • xml/AccessControlList.cpp: Include stdio.h
  • xml/AccessItem.cpp: Ditto.
  • xml/AccessItemRule.cpp: Ditto.
7:31 AM Changeset in webkit [33440] by Simon Hausmann
  • 2 edits
    1 add in trunk/WebCore

2008-05-14 Ariya Hidayat <ariya.hidayat@trolltech.com>

Reviewed by Simon.

Qt build fix. Add JSJavaScriptCallFrameCustom.cpp to the build
and implemented EventLoopQt.

5:53 AM Changeset in webkit [33439] by Simon Hausmann
  • 2 edits in trunk/WebCore

2008-05-14 Ariya Hidayat <ariya.hidayat@trolltech.com>

Reviewed by Simon.

Qt build fix. Add JavaScriptCallFrame.{idl,cpp} to the build.

5:14 AM Changeset in webkit [33438] by oliver@apple.com
  • 6 edits
    2 adds in branches/squirrelfish

Bug 19024: SQUIRRELFISH: ASSERTION FAILED: activation->isActivationObject() in Machine::unwindCallFrame
<https://bugs.webkit.org/show_bug.cgi?id=19024>

Reviewed by Maciej

This fixes a number of issues. The most important is that we now check every register
file for tainting rather than just looking for function register files as that was
insufficient. Additionally guarded against implicit re-entry into Eval code.

Also added a few additional assertions to reduce the amout of time between something
going wrong and us seeing the error.

1:45 AM Changeset in webkit [33437] by ggaren@apple.com
  • 8 edits in branches/squirrelfish/JavaScriptCore

2008-05-14 Geoffrey Garen <ggaren@apple.com>

Reviewed by Oliver Hunt.


A little more debugger action: emit opcodes for debugger hooks. Right
now, the opcode implementation is just a stub.


SunSpider reports no change.


Some example codegen for "function f() { 1; }":

[ 0] dbg DidEnterCallFrame
[ 2] dbg WillExecuteStatement
[ 4] load tr0, 1(@k0)
[ 7] load tr0, undefined(@k1)
[ 10] dbg WillLeaveCallFrame
[ 12] ret tr0

12:25 AM Changeset in webkit [33436] by oliver@apple.com
  • 3 edits
    2 adds in branches/squirrelfish

Bug 19025: SQUIRRELFISH: malformed syntax in onload handler causes crash
<https://bugs.webkit.org/show_bug.cgi?id=19025>

Reviewed by Geoff

Simple fix -- move the use of functionBodyNode to after the null check.

12:24 AM Changeset in webkit [33435] by oliver@apple.com
  • 3 edits
    1 copy
    2 adds in branches/squirrelfish/LayoutTests

Split the binops tests up a bit more

RS=Geoff

May 13, 2008:

11:32 PM Changeset in webkit [33434] by ggaren@apple.com
  • 4 edits
    2 adds in branches/squirrelfish

JavaScriptCore:

2008-05-13 Geoffrey Garen <ggaren@apple.com>

Reviewed by Oliver Hunt.


Fixed a codegen crash with run-time parse errors.


SunSpider reports no change.


emitThrowError needs to return the temporary holding the error, not dst,
since dst may be NULL. In fact, emitThrowError shouldn't take a dst
parameter at all, since exceptions should not modify the destination
register.

LayoutTests:

2008-05-13 Geoffrey Garen <ggaren@apple.com>

Reviewed by Oliver Hunt.


Added layout test for a codegen crash with run-time parse errors.

  • fast/js/exception-codegen-crash-expected.txt: Added.
  • fast/js/exception-codegen-crash.html: Added.
10:48 PM Changeset in webkit [33433] by oliver@apple.com
  • 3 edits
    1 copy
    1 add in branches/squirrelfish/LayoutTests

Splitting exception sequencing test as it was too long and made DRT unhappy
on non-MacPros.

RS=Geoff

10:25 PM Changeset in webkit [33432] by oliver@apple.com
  • 10 edits in branches/squirrelfish

Bug 19027: SquirrelFish: Incorrect codegen for pre-increment
<https://bugs.webkit.org/show_bug.cgi?id=19027>

Reviewed by Geoff

This fixes the codegen issues for the pre-inc/decrement operators
to prevent incorrectly clobbering the destination in the event of
an exception.

10:06 PM Changeset in webkit [33431] by mitz@apple.com
  • 216 edits
    4 adds in trunk

WebCore:

Reviewed by John Sullivan.

  • Windows part of <rdar://problem/5725912> improve render quality of transformed text
  • platform/graphics/win/FontCGWin.cpp: (WebCore::Font::drawGlyphs): Added call to wkSetCGContextFontRenderingStyle().

WebKitLibraries:

Reviewed by John Sullivan.

  • WebKitSystemInterface support for <rdar://problem/5725912> improve render quality of transformed text
  • libWebKitSystemInterfaceLeopard.a: Improved glyph positioning in transformed graphics contexts.
  • win/include/WebKitSystemInterface/WebKitSystemInterface.h: Added wkSetCGContextFontRenderingStyle().
  • win/lib/WebKitSystemInterface.lib: Updated.
  • win/lib/WebKitSystemInterface_debug.lib: Updated.

LayoutTests:

Reviewed by John Sullivan.

  • updated pixel results for <rdar://problem/5725912> improve render quality of transformed text
  • platform/mac-leopard/fast/backgrounds: Added.
  • platform/mac-leopard/fast/backgrounds/repeat: Added.
  • platform/mac-leopard/fast/backgrounds/repeat/negative-offset-repeat-transformed-expected.checksum: Added.
  • platform/mac-leopard/fast/backgrounds/repeat/negative-offset-repeat-transformed-expected.png: Added.
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-33-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-33-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-84-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-84-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/coords-trans-02-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/coords-trans-02-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/coords-trans-03-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/coords-trans-03-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/coords-trans-04-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/coords-trans-04-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/coords-trans-05-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/coords-trans-05-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/coords-trans-06-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/coords-trans-06-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/filters-color-01-b-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/filters-color-01-b-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/filters-composite-02-b-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/filters-composite-02-b-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/filters-comptran-01-b-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/filters-comptran-01-b-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/filters-example-01-b-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/filters-example-01-b-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/metadata-example-01-b-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/metadata-example-01-b-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/paths-data-04-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/paths-data-04-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/paths-data-05-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/paths-data-05-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/paths-data-06-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/paths-data-06-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/paths-data-07-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/paths-data-07-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/paths-data-08-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/paths-data-08-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/struct-frag-02-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/struct-frag-02-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/struct-frag-03-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/struct-frag-03-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/text-path-01-b-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/text-path-01-b-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/text-text-01-b-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/text-text-01-b-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/types-basicDOM-01-b-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/types-basicDOM-01-b-expected.png:
  • platform/mac-leopard/svg/batik/text/textAnchor-expected.checksum:
  • platform/mac-leopard/svg/batik/text/textAnchor-expected.png:
  • platform/mac-leopard/svg/batik/text/textEffect3-expected.checksum:
  • platform/mac-leopard/svg/batik/text/textEffect3-expected.png:
  • platform/mac-leopard/svg/batik/text/textFeatures-expected.checksum:
  • platform/mac-leopard/svg/batik/text/textFeatures-expected.png:
  • platform/mac-leopard/svg/batik/text/textGlyphOrientationHorizontal-expected.checksum:
  • platform/mac-leopard/svg/batik/text/textGlyphOrientationHorizontal-expected.png:
  • platform/mac-leopard/svg/batik/text/textLayout-expected.checksum:
  • platform/mac-leopard/svg/batik/text/textLayout-expected.png:
  • platform/mac-leopard/svg/batik/text/textLength-expected.checksum:
  • platform/mac-leopard/svg/batik/text/textLength-expected.png:
  • platform/mac-leopard/svg/batik/text/textOnPath-expected.checksum:
  • platform/mac-leopard/svg/batik/text/textOnPath-expected.png:
  • platform/mac-leopard/svg/batik/text/textOnPath2-expected.checksum:
  • platform/mac-leopard/svg/batik/text/textOnPath2-expected.png:
  • platform/mac-leopard/svg/batik/text/textOnPath3-expected.checksum:
  • platform/mac-leopard/svg/batik/text/textOnPath3-expected.png:
  • platform/mac-leopard/svg/batik/text/textOnPathSpaces-expected.checksum:
  • platform/mac-leopard/svg/batik/text/textOnPathSpaces-expected.png:
  • platform/mac-leopard/svg/batik/text/textProperties2-expected.checksum:
  • platform/mac-leopard/svg/batik/text/textProperties2-expected.png:
  • platform/mac-leopard/svg/batik/text/verticalText-expected.checksum:
  • platform/mac-leopard/svg/batik/text/verticalText-expected.png:
  • platform/mac-leopard/svg/batik/text/verticalTextOnPath-expected.checksum:
  • platform/mac-leopard/svg/batik/text/verticalTextOnPath-expected.png:
  • platform/mac-leopard/svg/carto.net/button-expected.checksum:
  • platform/mac-leopard/svg/carto.net/button-expected.png:
  • platform/mac-leopard/svg/carto.net/colourpicker-expected.checksum:
  • platform/mac-leopard/svg/carto.net/colourpicker-expected.png:
  • platform/mac-leopard/svg/carto.net/combobox-expected.checksum:
  • platform/mac-leopard/svg/carto.net/combobox-expected.png:
  • platform/mac-leopard/svg/carto.net/scrollbar-expected.checksum:
  • platform/mac-leopard/svg/carto.net/scrollbar-expected.png:
  • platform/mac-leopard/svg/carto.net/selectionlist-expected.checksum:
  • platform/mac-leopard/svg/carto.net/selectionlist-expected.png:
  • platform/mac-leopard/svg/carto.net/slider-expected.checksum:
  • platform/mac-leopard/svg/carto.net/slider-expected.png:
  • platform/mac-leopard/svg/carto.net/textbox-expected.checksum:
  • platform/mac-leopard/svg/carto.net/textbox-expected.png:
  • platform/mac-leopard/svg/carto.net/window-expected.checksum:
  • platform/mac-leopard/svg/carto.net/window-expected.png:
  • platform/mac-leopard/svg/custom/coords-relative-units-transforms-expected.checksum:
  • platform/mac-leopard/svg/custom/coords-relative-units-transforms-expected.png:
  • platform/mac-leopard/svg/custom/feComponentTransfer-Discrete-expected.checksum:
  • platform/mac-leopard/svg/custom/feComponentTransfer-Discrete-expected.png:
  • platform/mac-leopard/svg/custom/feComponentTransfer-Gamma-expected.checksum:
  • platform/mac-leopard/svg/custom/feComponentTransfer-Gamma-expected.png:
  • platform/mac-leopard/svg/custom/feComponentTransfer-Linear-expected.checksum:
  • platform/mac-leopard/svg/custom/feComponentTransfer-Linear-expected.png:
  • platform/mac-leopard/svg/custom/feComponentTransfer-Table-expected.checksum:
  • platform/mac-leopard/svg/custom/feComponentTransfer-Table-expected.png:
  • platform/mac-leopard/svg/custom/focus-ring-expected.checksum:
  • platform/mac-leopard/svg/custom/focus-ring-expected.png:
  • platform/mac-leopard/svg/custom/font-platformDestroy-crash-expected.checksum:
  • platform/mac-leopard/svg/custom/font-platformDestroy-crash-expected.png:
  • platform/mac-leopard/svg/custom/foreign-object-skew-expected.checksum:
  • platform/mac-leopard/svg/custom/foreign-object-skew-expected.png:
  • platform/mac-leopard/svg/custom/getTransformToElement-expected.checksum:
  • platform/mac-leopard/svg/custom/getTransformToElement-expected.png:
  • platform/mac-leopard/svg/custom/invalid-css-expected.checksum:
  • platform/mac-leopard/svg/custom/invalid-css-expected.png:
  • platform/mac-leopard/svg/custom/js-late-clipPath-and-object-creation-expected.checksum:
  • platform/mac-leopard/svg/custom/js-late-clipPath-and-object-creation-expected.png:
  • platform/mac-leopard/svg/custom/js-late-clipPath-creation-expected.checksum:
  • platform/mac-leopard/svg/custom/js-late-clipPath-creation-expected.png:
  • platform/mac-leopard/svg/custom/js-late-gradient-and-object-creation-expected.checksum:
  • platform/mac-leopard/svg/custom/js-late-gradient-and-object-creation-expected.png:
  • platform/mac-leopard/svg/custom/js-late-gradient-creation-expected.checksum:
  • platform/mac-leopard/svg/custom/js-late-gradient-creation-expected.png:
  • platform/mac-leopard/svg/custom/js-late-pattern-and-object-creation-expected.checksum:
  • platform/mac-leopard/svg/custom/js-late-pattern-and-object-creation-expected.png:
  • platform/mac-leopard/svg/custom/js-late-pattern-creation-expected.checksum:
  • platform/mac-leopard/svg/custom/js-late-pattern-creation-expected.png:
  • platform/mac-leopard/svg/custom/marker-default-width-height-expected.checksum:
  • platform/mac-leopard/svg/custom/marker-default-width-height-expected.png:
  • platform/mac-leopard/svg/custom/multiple-title-elements-expected.checksum:
  • platform/mac-leopard/svg/custom/multiple-title-elements-expected.png:
  • platform/mac-leopard/svg/custom/path-textPath-simulation-expected.checksum:
  • platform/mac-leopard/svg/custom/path-textPath-simulation-expected.png:
  • platform/mac-leopard/svg/custom/preserve-aspect-ratio-syntax-expected.checksum:
  • platform/mac-leopard/svg/custom/preserve-aspect-ratio-syntax-expected.png:
  • platform/mac-leopard/svg/custom/shapes-supporting-markers-expected.checksum:
  • platform/mac-leopard/svg/custom/shapes-supporting-markers-expected.png:
  • platform/mac-leopard/svg/custom/stroked-pattern-expected.checksum:
  • platform/mac-leopard/svg/custom/stroked-pattern-expected.png:
  • platform/mac-leopard/svg/custom/struct-use-09-b-expected.checksum:
  • platform/mac-leopard/svg/custom/struct-use-09-b-expected.png:
  • platform/mac-leopard/svg/custom/tref-update-expected.checksum:
  • platform/mac-leopard/svg/custom/tref-update-expected.png:
  • platform/mac-leopard/svg/custom/use-detach-expected.checksum:
  • platform/mac-leopard/svg/custom/use-detach-expected.png:
  • platform/mac-leopard/svg/custom/use-on-disallowed-foreign-object-1-expected.checksum:
  • platform/mac-leopard/svg/custom/use-on-disallowed-foreign-object-1-expected.png:
  • platform/mac-leopard/svg/custom/use-on-disallowed-foreign-object-2-expected.checksum:
  • platform/mac-leopard/svg/custom/use-on-disallowed-foreign-object-2-expected.png:
  • platform/mac-leopard/svg/custom/use-on-disallowed-foreign-object-3-expected.checksum:
  • platform/mac-leopard/svg/custom/use-on-disallowed-foreign-object-3-expected.png:
  • platform/mac-leopard/svg/custom/use-on-disallowed-foreign-object-4-expected.checksum:
  • platform/mac-leopard/svg/custom/use-on-disallowed-foreign-object-4-expected.png:
  • platform/mac-leopard/svg/custom/use-on-disallowed-foreign-object-5-expected.checksum:
  • platform/mac-leopard/svg/custom/use-on-disallowed-foreign-object-5-expected.png:
  • platform/mac-leopard/svg/custom/use-on-disallowed-foreign-object-6-expected.checksum:
  • platform/mac-leopard/svg/custom/use-on-disallowed-foreign-object-6-expected.png:
  • platform/mac-leopard/svg/custom/use-on-non-svg-namespaced-element-expected.checksum:
  • platform/mac-leopard/svg/custom/use-on-non-svg-namespaced-element-expected.png:
  • platform/mac-leopard/svg/custom/use-referencing-nonexisting-symbol-expected.checksum:
  • platform/mac-leopard/svg/custom/use-referencing-nonexisting-symbol-expected.png:
  • platform/mac-leopard/svg/custom/viewbox-syntax-expected.checksum:
  • platform/mac-leopard/svg/custom/viewbox-syntax-expected.png:
  • platform/mac-leopard/svg/hixie/text/003-expected.checksum:
  • platform/mac-leopard/svg/hixie/text/003-expected.png:
  • platform/mac-leopard/svg/hixie/text/003b-expected.checksum:
  • platform/mac-leopard/svg/hixie/text/003b-expected.png:
  • platform/mac-leopard/svg/text/text-align-01-b-expected.checksum:
  • platform/mac-leopard/svg/text/text-align-01-b-expected.png:
  • platform/mac-leopard/svg/text/text-align-02-b-expected.checksum:
  • platform/mac-leopard/svg/text/text-align-02-b-expected.png:
  • platform/mac-leopard/svg/text/text-align-03-b-expected.checksum:
  • platform/mac-leopard/svg/text/text-align-03-b-expected.png:
  • platform/mac-leopard/svg/text/text-align-04-b-expected.checksum:
  • platform/mac-leopard/svg/text/text-align-04-b-expected.png:
  • platform/mac-leopard/svg/text/text-align-05-b-expected.checksum:
  • platform/mac-leopard/svg/text/text-align-05-b-expected.png:
  • platform/mac-leopard/svg/text/text-align-06-b-expected.checksum:
  • platform/mac-leopard/svg/text/text-align-06-b-expected.png:
  • platform/mac-leopard/svg/text/text-altglyph-01-b-expected.checksum:
  • platform/mac-leopard/svg/text/text-altglyph-01-b-expected.png:
  • platform/mac-leopard/svg/text/text-deco-01-b-expected.checksum:
  • platform/mac-leopard/svg/text/text-deco-01-b-expected.png:
  • platform/mac-leopard/svg/text/text-fonts-01-t-expected.checksum:
  • platform/mac-leopard/svg/text/text-fonts-01-t-expected.png:
  • platform/mac-leopard/svg/text/text-fonts-02-t-expected.checksum:
  • platform/mac-leopard/svg/text/text-fonts-02-t-expected.png:
  • platform/mac-leopard/svg/text/text-intro-05-t-expected.checksum:
  • platform/mac-leopard/svg/text/text-intro-05-t-expected.png:
  • platform/mac-leopard/svg/text/text-path-01-b-expected.checksum:
  • platform/mac-leopard/svg/text/text-path-01-b-expected.png:
  • platform/mac-leopard/svg/text/text-text-01-b-expected.checksum:
  • platform/mac-leopard/svg/text/text-text-01-b-expected.png:
  • platform/mac-leopard/svg/text/text-text-03-b-expected.checksum:
  • platform/mac-leopard/svg/text/text-text-03-b-expected.png:
  • platform/mac-leopard/svg/text/text-text-04-t-expected.checksum:
  • platform/mac-leopard/svg/text/text-text-04-t-expected.png:
  • platform/mac-leopard/svg/text/text-text-05-t-expected.checksum:
  • platform/mac-leopard/svg/text/text-text-05-t-expected.png:
  • platform/mac-leopard/svg/text/text-text-06-t-expected.checksum:
  • platform/mac-leopard/svg/text/text-text-06-t-expected.png:
  • platform/mac-leopard/svg/text/text-text-07-t-expected.checksum:
  • platform/mac-leopard/svg/text/text-text-07-t-expected.png:
  • platform/mac-leopard/svg/text/text-text-08-b-expected.checksum:
  • platform/mac-leopard/svg/text/text-text-08-b-expected.png:
  • platform/mac-leopard/svg/text/text-tref-01-b-expected.checksum:
  • platform/mac-leopard/svg/text/text-tref-01-b-expected.png:
  • platform/mac-leopard/svg/text/text-tselect-01-b-expected.checksum:
  • platform/mac-leopard/svg/text/text-tselect-01-b-expected.png:
  • platform/mac-leopard/svg/text/text-tselect-02-f-expected.checksum:
  • platform/mac-leopard/svg/text/text-tselect-02-f-expected.png:
  • platform/mac-leopard/svg/text/text-tspan-01-b-expected.checksum:
  • platform/mac-leopard/svg/text/text-tspan-01-b-expected.png:
  • platform/mac-leopard/svg/text/text-ws-01-t-expected.checksum:
  • platform/mac-leopard/svg/text/text-ws-01-t-expected.png:
  • platform/mac-leopard/svg/text/text-ws-02-t-expected.checksum:
  • platform/mac-leopard/svg/text/text-ws-02-t-expected.png:
9:57 PM Changeset in webkit [33430] by ggaren@apple.com
  • 5 edits in branches/squirrelfish/JavaScriptCore

2008-05-13 Geoffrey Garen <ggaren@apple.com>

Reviewed by Oliver Hunt.


A little more debugger action: supply a real line number, sourceId,
and sourceURL in op_new_error.


SunSpider reports a .2% speedup. Not sure what that's about.

  • VM/Machine.cpp: (KJS::Machine::privateExecute): Use the new good stuff in op_new_error.
  • kjs/nodes.cpp: (KJS::RegExpNode::emitCode): Use the shared emitThrowError instead of rolling our own.
8:38 PM Changeset in webkit [33429] by alp@webkit.org
  • 2 edits
    1 add in trunk/WebCore

2008-05-13 Alp Toker <alp@nuanti.com>

GTK+ build fix. Implement EventLoopGtk.cpp.

  • GNUmakefile.am:
  • platform/gtk/EventLoopGtk.cpp: Added. (WebCore::EventLoop::cycle):
8:29 PM Changeset in webkit [33428] by alp@webkit.org
  • 2 edits in trunk/WebCore

2008-05-13 Alp Toker <alp@nuanti.com>

GTK+ build fix. Fix IDL filename typo and add JavaScriptCallFrame.cpp
to the build.

  • GNUmakefile.am:
8:13 PM Changeset in webkit [33427] by pewtermoose@webkit.org
  • 2 edits in trunk/WebCore

2008-05-13 Matt Lilek <webkit@mattlilek.com>

Not reviewed, partial Gtk build fix.

  • GNUmakefile.am:
8:06 PM Changeset in webkit [33426] by ggaren@apple.com
  • 5 edits in branches/squirrelfish/JavaScriptCore

2008-05-13 Geoffrey Garen <ggaren@apple.com>

Reviewed by Oliver Hunt.


A little more debugger action: implemented the exception callback.


SunSpider reports a .2% speedup. Not sure what that's about.

  • VM/CodeBlock.h: A little refactoring here. Store a pointer to our owner ScopeNode so we can retrieve data from it. This allows us to stop storing copies of the data ourselves. Also, store a "this" register instead of a code type, since we were only using the code type to calculate the "this" register.
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::generate): Calculate the "this" register mentioned above. Also, take care of removing "this" from the symbol table after codegen is done, since relying on the timing of a destructor for correct behavior is not so good.
  • VM/Machine.cpp: (KJS::Machine::throwException): Invoke the debugger's exception callback. (KJS::Machine::privateExecute): Use the "this" register mentioned above.
6:44 PM Changeset in webkit [33425] by timothy@apple.com
  • 3 edits in trunk/WebCore

Fixes a crash when stepping out in the Inspector's debugger.

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

Reviewed by Dan Bernstein.

  • page/InspectorController.cpp:

(WebCore::currentCallFrame): Adds a null check of currentCallFrame,
since it can be null. Also returns JSNull to better signify this.

  • page/inspector/ScriptsPanel.js: Updates the debugger interface

when stepping so the currentCallFrame isn't accessed when not paused.
Adds a _clearInterface function to remove duplicate code.

6:29 PM Changeset in webkit [33424] by pewtermoose@webkit.org
  • 2 edits in trunk/JavaScriptCore

2008-05-13 Matt Lilek <webkit@mattlilek.com>

Not reviewed, build fix.

  • kjs/date_object.cpp: (KJS::DateObjectFuncImp::callAsFunction):
5:46 PM Changeset in webkit [33423] by andersca@apple.com
  • 3 edits in trunk/WebKit/mac

2008-05-13 Anders Carlsson <andersca@apple.com>

Reviewed by Sam.

Don't empty the application cache in _setCacheModel, since it will be called during initialization.
Instead, do it in [WebCache empty].


  • Misc/WebCache.mm: (+[WebCache empty]):
  • WebView/WebView.mm: (+[WebView _setCacheModel:]):
5:38 PM Changeset in webkit [33422] by andersca@apple.com
  • 3 edits in trunk/JavaScriptCore

2008-05-13 Anders Carlsson <andersca@apple.com>

Reviewed by Sam.

<rdar://problem/5933644> Implement Date.now


Implement Date.now which returns the number of milliseconds since the epoch.


  • kjs/CommonIdentifiers.h:
  • kjs/date_object.cpp: (KJS::DateObjectFuncImp::): (KJS::DateObjectImp::DateObjectImp): (KJS::DateObjectFuncImp::callAsFunction):
5:09 PM Changeset in webkit [33421] by ggaren@apple.com
  • 16 edits in branches/squirrelfish/JavaScriptCore

2008-05-13 Geoffrey Garen <ggaren@apple.com>

Reviewed by Oliver Hunt.


Removed some unused exception machinery.


SunSpider reports a .3% speedup.

  • API/JSCallbackObject.h:
  • API/JSCallbackObjectFunctions.h:
  • JavaScriptCore.exp:
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • kjs/internal.cpp:
  • kjs/object.cpp:
  • kjs/object.h:
  • kjs/value.h:
4:55 PM Changeset in webkit [33420] by Chris Fleizach
  • 2 edits in trunk/WebCore

<rdar://problem/5932677> AX: Submit buttons aren't returning AXTitle

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

JavaScriptCore:

2008-05-13 Geoffrey Garen <ggaren@apple.com>

Reviewed by Oliver Hunt.


A little more debugger action.

  • kjs/debugger.cpp:
  • kjs/debugger.h: Removed debuggersPresent because it was unused. Replaced AttachedGlobalObject linked list with a HashSet because HashSet is faster and simpler. Changed all functions to return void instead of bool, because no clients ever return false, and we don't want to support it.
  • kjs/nodes.cpp: Did some up-keep to avoid build bustage. (KJS::Node::handleException): (KJS::BreakpointCheckStatement::execute): (KJS::FunctionBodyNodeWithDebuggerHooks::execute):

WebCore:

2008-05-13 Geoffrey Garen <ggaren@apple.com>

Reviewed by Oliver Hunt.

Updated for API changes in KJS::Debugger.

  • page/JavaScriptDebugServer.cpp: (WebCore::JavaScriptDebugServer::callEvent): (WebCore::JavaScriptDebugServer::atStatement): (WebCore::JavaScriptDebugServer::returnEvent): (WebCore::JavaScriptDebugServer::exception):
  • page/JavaScriptDebugServer.h:

WebKit/mac:

2008-05-13 Geoffrey Garen <ggaren@apple.com>

Reviewed by Oliver Hunt.

Updated for API changes in KJS::Debugger.

  • WebView/WebFrame.mm: (-[WebFrame _attachScriptDebugger]): Changed the order of operations to fix an ASSERT that can happen when re-entering _attachScriptDebugger.
4:11 PM Changeset in webkit [33418] by Chris Fleizach
  • 4 edits in trunk/WebKit

<rdar://problem/4780592> WebKit application has its window announced as HTML content

3:58 PM Changeset in webkit [33417] by Adam Roben
  • 1 edit in trunk/WebCore/ChangeLog

Restore some ChangeLog entries that were deleted in r33395

3:31 PM Changeset in webkit [33416] by timothy@apple.com
  • 4 edits in trunk/WebCore

Adds an overlay window that covers the scripts panel and
informs the user that they need to attach the debugger.
Provides an "Attach Debugger" button below the info text.

Reviewed by Dan Bernstein.

  • English.lproj/localizedStrings.js: New strings.
  • page/inspector/ScriptsPanel.js:

(WebInspector.ScriptsPanel): Create the overlay elements and
append to the main panel element.

  • page/inspector/inspector.css: New styles for the over lay elements.
3:31 PM Changeset in webkit [33415] by timothy@apple.com
  • 3 edits in trunk/WebKit/mac

Fixes a crash seen in Xcode where CallUIDelegateReturningBoolean
was referencing a nil WebView under validateUserInterfaceItem.
The validateUserInterfaceItem methods was being called at a time
when the WebHTMLView is being torndown.

<rdar://problem/5806229> A crash occurs at CallUIDelegateReturningBoolean()
while mousing down on menu bar after Xcode News window is opened

Reviewed by Ada Chan.

  • WebView/WebHTMLView.mm:

(-[WebHTMLView validateUserInterfaceItem:]): NULL check the WebView and
return NO when it is nil. Adds a comment.

  • WebView/WebPDFView.mm:

(-[WebPDFView validateUserInterfaceItem:]): Ditto.

3:31 PM Changeset in webkit [33414] by timothy@apple.com
  • 4 edits in trunk/WebCore

Fixes the assertion and crash that would happen when inspecting a element from a frame.
This change makes JSInspectedObjectWrapper pass unwrapped objects around for global objects
that share the same page group identifier. Also returns jsUndefined() instead of 0 to prevent
crashing in release builds if the page groups don't match.

Passes all the tests in: manual-tests/inspector-wrappers

Reviewed by Adam Roben.

  • bindings/js/JSInspectedObjectWrapper.cpp:

(WebCore::JSInspectedObjectWrapper::prepareIncomingValue): Return jsUndefined() instead of 0.
Call allowsUnwrappedAccessFrom instead of unwrappedExecStateMatches.

  • bindings/js/JSQuarantinedObjectWrapper.cpp:

(WebCore::JSQuarantinedObjectWrapper::allowsUnwrappedAccessFrom): Renamed from unwrappedExecStateMatches.
Return true if the pageGroupIdentifier of both wrappers match.
(WebCore::JSQuarantinedObjectWrapper::callAsFunction): Return jsUndefined() instead of 0.

  • bindings/js/JSQuarantinedObjectWrapper.h: Renamed unwrappedExecStateMatches to allowsUnwrappedAccessFrom.
3:31 PM Changeset in webkit [33413] by timothy@apple.com
  • 2 edits in trunk/WebCore

Fixes the hang that could happen when option-clicking to expand
a disclosure triangle in the Properties pane. This change limits
the recursion depth when expanding the tree elements.

<rdar://problem/5847681> Safari hangs when option-clicking a
disclosure triangle in the Inspector's Properties pane

Reviewed by John Sullivan.

  • page/inspector/treeoutline.js:

(TreeElement.prototype.expandRecursively): Pass an empty info object to
traverseNextTreeElement to get the depthChange value. This is used to
compute a current depth. If the depth exceeds the maxDepth argument, the
item isn't expanded and children wont be populated when traverseNextTreeElement
is called until the depth goes below the maxDepth.
(TreeElement.prototype.traverseNextTreeElement): Added a new info
argument that can be optionally used to return extra info like depth change.

3:30 PM Changeset in webkit [33412] by timothy@apple.com
  • 7 edits in trunk/WebCore

Adds info text to panes and sections in the Inspector's sidebars
that would normally be empty. These help the user know why there
is nothing in these sections.

Reviewed by John Sullivan.

  • English.lproj/localizedStrings.js: Add strings.
  • page/inspector/BreakpointsSidebarPane.js: Adds "No Breakpoints".
  • page/inspector/CallStackSidebarPane.js: Adds "Not Paused".
  • page/inspector/ObjectPropertiesSection.js: Adds "No Properties".
  • page/inspector/ScopeChainSidebarPane.js: Adds "Not Paused".
  • page/inspector/inspector.css: Adds style rules for the info elements.
3:30 PM Changeset in webkit [33411] by timothy@apple.com
  • 10 edits in trunk/WebCore

Implements the rest of the Scripts panel to get the debugger
mostly working. "Basic debugging seems to work."

Reviewed by Geoff Garen.

  • English.lproj/localizedStrings.js: Adds new strings.
  • page/inspector/Resource.js:

(WebInspector.Resource.prototype.get scripts): Returns _scripts and
creates it lazily.
(WebInspector.Resource.prototype.addScript): Add the script object to the
front of the _scripts array.
(WebInspector.Resource.prototype.removeAllScripts): Removed all the scripts
and removes the resource back-reference.
(WebInspector.Resource.prototype.removeScript): Removes the script and
breaks the resource back-reference.

  • page/inspector/ResourceView.js:

(WebInspector.ResourceView): Adds a reminder comment.
(WebInspector.ResourceView.prototype.get headersVisible): Returns _headersVisible.
(WebInspector.ResourceView.prototype.set headersVisible): Stubs out
a setter that currently just sets _headersVisible. Has a comment that
points out this needs implemented when network headers are added.

  • page/inspector/ResourcesPanel.js:

(WebInspector.ResourcesPanel.prototype.show): Sets the headersVisible property of
the visible view to true and shows it again, in case it was being shown in Scripts.
(WebInspector.ResourcesPanel.prototype.recreateViewForResourceIfNeeded):
Copies the headersVisible property from the old view to the new view.
(WebInspector.ResourcesPanel.prototype.showResource): Sets the headersVisible
property to true before showing.

  • page/inspector/ScriptView.js:

(WebInspector.ScriptView): Passes in _addBreakpoint for the add breakpoint delegate.
(WebInspector.ScriptView.prototype._addBreakpoint): Calls ScriptsPanel's addBreakpoint
for the current Script.sourceID and line.

  • page/inspector/ScriptsPanel.js:

(WebInspector.ScriptsPanel):
(WebInspector.ScriptsPanel.prototype.show): Sets the headersVisible property of
the visible view to false and shows it again, in case it was being shown in Resources.
(WebInspector.ScriptsPanel.prototype.addScript): Makes a new Script object and
adds it to a Resource if one is found. Registers any breakpoint that match
the new Script's source URL, and sets the sourceID of the breakpoints.
(WebInspector.ScriptsPanel.prototype.addBreakpoint): Adds the breakpoint to the
BreakpointsSidebarPane. Also adds it to _breakpointsURLMap so it can be found
later in addScript by URL. Finally adds the breakpoint to the SourceFrame that
represents the resources or script.
(WebInspector.ScriptsPanel.prototype.removeBreakpoint): Removes the breakpoint from
the BreakpointsSidebarPane, _breakpointsURLMap and SourceFrame.
(WebInspector.ScriptsPanel.prototype.debuggerPaused): Update the debugger
state variables, the buttons and the CallStackSidebarPane.
(WebInspector.ScriptsPanel.prototype.reset): Clears and resets debugger
and interface state.
(WebInspector.ScriptsPanel.prototype.get visibleView): Returns _visibleView.
(WebInspector.ScriptsPanel.prototype.set visibleView): Sets _visibleView and
calls hide on the old view and show on the new view.
(WebInspector.ScriptsPanel.prototype.showScript): Calls _showScriptOrResource.
(WebInspector.ScriptsPanel.prototype.showResource): Ditto.
(WebInspector.ScriptsPanel.prototype.scriptViewForScript): Lazily creates a
ScriptView for the Script and returns it.
(WebInspector.ScriptsPanel.prototype.sourceFrameForScript): Returns the SourceFrame
for the Script.
(WebInspector.ScriptsPanel.prototype._sourceFrameForScriptOrResource): Returns the
SourceFrame based on the type of object passed in.
(WebInspector.ScriptsPanel.prototype._showScriptOrResource): Shows the view based on
the type of object passed in. If the object is a resource and there are breakpoints
defined for that Resource URL, then populate the SourceFrame with the breakpoints.
(WebInspector.ScriptsPanel.prototype._addScriptToFilesMenu): Adds a script to the
files menu. If the Script is part of a resource, that resource is added.
(WebInspector.ScriptsPanel.prototype._removeScriptFromFilesMenu): Remove a script from
the files menu. If that script is part of a resource and it is the last script of that
resource, then remove the whole resource.
(WebInspector.ScriptsPanel.prototype._clearCurrentExecutionLine): Clears the execution
line from the SourceFrame that is showing it.
(WebInspector.ScriptsPanel.prototype._callFrameSelected): Event listener for when the
call frame changes in the CallStackSidebarPane. Triggers updates to the ScopeChainSidebarPane
and the visible view.
(WebInspector.ScriptsPanel.prototype._changeVisibleFile): Event listener for the change state
of the files select element.
(WebInspector.ScriptsPanel.prototype._updateDebuggerButtons): Update more of the
buttons to reflect the current debugger state. Updates the status text too.
(WebInspector.ScriptsPanel.prototype._toggleDebugging): Reset the UI and state when
the debugger is attached/detached.
(WebInspector.ScriptsPanel.prototype._togglePause): Call InspectorController.resumeDebugger or
InspectorController.pauseInDebugger depending on the paused state.
(WebInspector.ScriptsPanel.prototype._stepOverClicked): Call InspectorController.stepOverStatementInDebugger.
(WebInspector.ScriptsPanel.prototype._stepIntoClicked): Call InspectorController.stepIntoStatementInDebugger.
(WebInspector.ScriptsPanel.prototype._stepOutClicked): InspectorController.stepOutOfFunctionInDebugger.

  • page/inspector/SourceView.js:

(WebInspector.SourceView): Passes in _addBreakpoint for the add breakpoint delegate.
(WebInspector.SourceView.prototype._addBreakpoint): Calls ScriptsPanel's addBreakpoint
for the nearest Script's sourceID and passed in line.

  • page/inspector/inspector.css: New style rules for the UI changes.
  • page/inspector/inspector.js:

(WebInspector.loaded): Add the ScriptsPanel to the panels list.
(WebInspector.parsedScriptSource): Call ScriptsPanel.addScript.
(WebInspector.failedToParseScriptSource): Ditto.
(WebInspector.pausedScript): Call ScriptsPanel.debuggerPaused.

3:30 PM Changeset in webkit [33410] by timothy@apple.com
  • 8 edits
    2 adds in trunk/WebCore

Adds implementations of the Scope Chain and Call Stack sidebar panes.
These panes use the JSJavaScriptCallFrame object that will be passed
to the update functions.

Reviewed by Kevin McCullough.

  • English.lproj/localizedStrings.js: Adds new strings.
  • WebCore.vcproj/WebCore.vcproj: Adds new files.
  • page/inspector/CallStackSidebarPane.js:

(WebInspector.CallStackSidebarPane.prototype.update): Walk the
caller chain of the call frame and make placards for each.
(WebInspector.CallStackSidebarPane.prototype.get selectedCallFrame):
Return _selectedCallFrame.
(WebInspector.CallStackSidebarPane.prototype.set selectedCallFrame):
Set _selectedCallFrame and dispatch the "call frame selected" event.
(WebInspector.CallStackSidebarPane.prototype._placardSelected):
Set the selectedCallFrame based on the clicked placard.

  • page/inspector/Placard.js: Added. A user interface object that can

be used to show a title and a subtitle block with a selected state.

  • page/inspector/ScopeChainSidebarPane.js: Added.

(WebInspector.ScopeChainSidebarPane): Call the base object and set the title.
(WebInspector.ScopeChainSidebarPane.prototype.update): Iterate over the
call frame's scope chain and make ObjectPropertiesSections for each.

  • page/inspector/SidebarPane.js:

(WebInspector.SidebarPane.prototype): Inherit from WebInspector.Object.

  • page/inspector/WebKit.qrc: Add new files.
  • page/inspector/inspector.css: Add placard styles.
  • page/inspector/inspector.html: Add new files.
3:30 PM Changeset in webkit [33409] by timothy@apple.com
  • 3 edits in trunk/WebCore

Fixes the bug where SourceViews would be blank if shown before
the Resource finished loading.

<rdar://problem/5807420> Safari's Web Inspector won't display the
contents of some CSS and JS files

Reviewed by Kevin McCullough.

  • page/inspector/Resource.js:

(WebInspector.Resource.prototype.set finished): Dispatch the finished event
(WebInspector.Resource.prototype): Inherit from WebInspector.Object.prototype.

  • page/inspector/SourceView.js:

(WebInspector.SourceView): Register for the finished event on the resource.
When the event fires, setup the source frame and deregister the event.

3:30 PM Changeset in webkit [33408] by timothy@apple.com
  • 7 edits
    3 adds in trunk/WebCore

Factored most of SourceView out into SourceFrame so it can be shared
by the new ScriptView. Added the ScriptView class to be used for
scripts that arn't Resources (like eval code.) Added a simple Script
object that hold the data from the debugger parsedSource hooks. A
ScriptView holds a Script object, and uses it for source data.

Added breakpoint and execution line support to the SourceFrame
where they are visually represented in the source.

Reviewed by Kevin McCullough.

  • page/inspector/inspector.js:

(WebInspector.performSearch): Change the caller of sourceFrameForResource
to use the SourceFrame result's element property.

  • page/inspector/ResourcesPanel.js: Use the new SourceFrame.
  • page/inspector/Script.js: Added.
  • page/inspector/ScriptView.js: Added.
  • page/inspector/SourceFrame.js: Added.
  • page/inspector/SourceView.js: Use the new SourceFrame.
  • WebCore.vcproj/WebCore.vcproj: Add new files.
  • page/inspector/WebKit.qrc: Ditto.
  • page/inspector/inspector.html: Ditto.
3:29 PM Changeset in webkit [33407] by timothy@apple.com
  • 5 edits
    1 copy in trunk/WebCore

Adds a Breakpoint object and basic add/remove functions on
BreakpointsSidebarPane that call the InspectorController to
add/remove the breakpoint.

Reviewed by Kevin McCullough.

  • page/inspector/Breakpoint.js:

(WebInspector.Breakpoint):
(WebInspector.Breakpoint.prototype.get enabled): Return _enabled.
(WebInspector.Breakpoint.prototype.set enabled): Set _enabled and
dispatch the enabled/disabled event to listeners.

  • page/inspector/BreakpointsSidebarPane.js:

(WebInspector.BreakpointsSidebarPane): Add a breakpoints array.
(WebInspector.BreakpointsSidebarPane.prototype.addBreakpoint):
Adds the breakpoint to the breakpoints array. Registers for the disabled
and enabled event types. Call InspectorController.addBreakpoint if attached.
(WebInspector.BreakpointsSidebarPane.prototype.removeBreakpoint):
Removes the breakpoint from the breakpoints array. Deregisters for the disabled
and enabled event types. Call InspectorController.removeBreakpoint if attached.
(WebInspector.BreakpointsSidebarPane.prototype._breakpointEnableChanged):
Call InspectorController.addBreakpoint or InspectorController.removeBreakpoint
depending on the enabled state of the breakpoint.

  • WebCore.vcproj/WebCore.vcproj: Add new files.
  • page/inspector/WebKit.qrc: Ditto.
  • page/inspector/inspector.html: Ditto.
3:29 PM Changeset in webkit [33406] by timothy@apple.com
  • 3 edits in trunk/WebCore

Make addSourceToFrame not dependent on InspectorResource so it
can be used to add source of a passed in string and mime-type to
a frame. Added addResourceSourceToFrame for use by SourceView.

Also fixes an assertion because of an incorrect static_cast of identifiers
to unsigned long long, when they can be unsigned.

Reviewed by Geoff Garen.

  • page/InspectorController.cpp:

(WebCore::addSourceToFrame): Helper function used by addSourceToFrame
and addResourceSourceToFrame.
(WebCore::addSourceToFrame): Generalized to take a source and mime-type string.
(WebCore::addResourceSourceToFrame): Renamed from addSourceToFrame.
(WebCore::getResourceDocumentNode): Fixes the static_cast to be long long.
(WebCore::InspectorController::windowScriptObjectAvailable): Adds
addResourceSourceToFrame to the JavaScript class.

  • page/inspector/SourceView.js: Use the new addResourceSourceToFrame.
3:29 PM Changeset in webkit [33405] by timothy@apple.com
  • 3 edits in trunk/WebCore

Add debugger related functions to the InspectorController and
expose them to the JavaScript side of InspectorController.

Reviewed by Geoff Garen.

  • page/InspectorController.cpp:

(WebCore::jsStringRef): Added helper to convert a UString to a JSStringRef.
(WebCore::currentCallFrame): Call InspectorController::currentCallFrame.
(WebCore::pauseInDebugger): Call InspectorController::pauseInDebugger.
(WebCore::resumeDebugger): Call InspectorController::resumeDebugger.
(WebCore::stepOverStatementInDebugger): Call InspectorController::stepOverStatementInDebugger.
(WebCore::stepIntoStatementInDebugger): Call InspectorController::stepIntoStatementInDebugger.
(WebCore::stepOutOfFunctionInDebugger): Call InspectorController::stepOutOfFunctionInDebugger.
(WebCore::addBreakpoint): Call InspectorController::addBreakpoint.
(WebCore::removeBreakpoint): Call InspectorController::removeBreakpoint.
(WebCore::InspectorController::windowScriptObjectAvailable): Add the new functions to the
InspectorController JavaScript class.
(WebCore::InspectorController::startDebuggingAndReloadInspectedPage): Clear breakpoints.
(WebCore::InspectorController::currentCallFrame): Return the currentCallFrame from the
JavaScriptDebugServer.
(WebCore::InspectorController::pauseInDebugger): Call JavaScriptDebugServer's pauseOnNextStatement.
(WebCore::InspectorController::resumeDebugger): Call JavaScriptDebugServer's resume.
(WebCore::InspectorController::stepOverStatementInDebugger): Call JavaScriptDebugServer's stepOverStatement.
(WebCore::InspectorController::stepIntoStatementInDebugger): Call JavaScriptDebugServer's stepIntoStatement.
(WebCore::InspectorController::stepOutOfFunctionInDebugger): Call JavaScriptDebugServer's stepOutOfFunction.
(WebCore::InspectorController::addBreakpoint): Call JavaScriptDebugServer's addBreakpoint.
(WebCore::InspectorController::removeBreakpoint): Call JavaScriptDebugServer's removeBreakpoint.
(WebCore::InspectorController::didParseSource): Call into the Inspector's JavaScript.
(WebCore::InspectorController::failedToParseSource): Ditto.
(WebCore::InspectorController::didPause): Ditto.

  • page/InspectorController.h: Add new functions.
3:29 PM Changeset in webkit [33404] by timothy@apple.com
  • 7 edits in trunk

Implements more debugger APIs on JavaScriptDebugServer and reduces
the number of callbacks to JavaScriptDebugListeners. These changes
will better facilitate debugger optimizations when SquirrelFish merges.

Reviewed by Kevin McCullough.

  • page/InspectorController.cpp:

(WebCore::InspectorController::didParseSource): Removed the ExecState.
(WebCore::InspectorController::failedToParseSource): Ditto.
(WebCore::InspectorController::didPause): Added.

  • page/InspectorController.h: Changed the JavaScriptDebugListener functions.
  • page/JavaScriptDebugListener.h: Removed some callbacks and added didPause.
  • page/JavaScriptDebugServer.cpp:

(WebCore::JavaScriptDebugServer::JavaScriptDebugServer): Initialize new data members.
(WebCore::JavaScriptDebugServer::~JavaScriptDebugServer): Delete all values of m_breakpoints.
(WebCore::JavaScriptDebugServer::removeListener): Call resume if the last listener was removed.
(WebCore::JavaScriptDebugServer::hasListenersInterestedInPage): Returns true if there are any
global listeners or a listener for the page.
(WebCore::JavaScriptDebugServer::addBreakpoint): Adds and entry to m_breakpoints.
(WebCore::JavaScriptDebugServer::removeBreakpoint): Removes a entry in m_breakpoints.
(WebCore::JavaScriptDebugServer::hasBreakpoint): Checks if there is a breakpoint for the
sourceID and line.
(WebCore::JavaScriptDebugServer::clearBreakpoints): Removed all breakpoints.
(WebCore::JavaScriptDebugServer::pauseOnNextStatement): Sets m_pauseOnNextStatement to true.
(WebCore::JavaScriptDebugServer::resume): Sets m_paused to false.
(WebCore::JavaScriptDebugServer::stepIntoStatement): Calls resume and sets
m_pauseOnNextStatement to true.
(WebCore::JavaScriptDebugServer::stepOverStatement): Calls resume and sets m_pauseOnExecState to
the current call frame's ExecState.
(WebCore::JavaScriptDebugServer::stepOutOfFunction): Calls resume and sets m_pauseOnExecState to
the current call frame's caller ExecState.
(WebCore::JavaScriptDebugServer::currentCallFrame): Returns m_currentCallFrame if paused.
(WebCore::dispatchDidParseSource): Removed the ExecState argument.
(WebCore::dispatchFailedToParseSource): Ditto.
(WebCore::JavaScriptDebugServer::sourceParsed): Doesn't pass the ExecState to dispatchDidParseSource
or dispatchFailedToParseSource.
(WebCore::dispatchFunctionToListeners):
(WebCore::JavaScriptDebugServer::dispatchFunctionToListeners): Removes all the arguments passed
to the callback.
(WebCore::JavaScriptDebugServer::setJavaScriptPaused): Various overloaded functions
to pause parts of WebCore to prevent JavaScript execution while paused.
(WebCore::JavaScriptDebugServer::pauseIfNeeded): Decides if the debugger should pause based
on the passed in ExecState, source ID and line number. This checks for breakpoints, stepping, etc.
Calls didPause on all the listeners and spins a EventLoop until resume is called.
(WebCore::JavaScriptDebugServer::callEvent): Call pauseIfNeeded.
(WebCore::JavaScriptDebugServer::atStatement): Ditto.
(WebCore::JavaScriptDebugServer::returnEvent): Ditto.
(WebCore::JavaScriptDebugServer::exception): Ditto.

  • page/JavaScriptDebugServer.h: Added new functions.
3:29 PM Changeset in webkit [33403] by timothy@apple.com
  • 5 edits in trunk/WebCore

Change View.show to call detach if the parentNode dosen't
match before appending to the passed in parent element.
This also prevents appending to the same parent element
multiple times.

Reviewed by John Sullivan.

  • page/inspector/FontView.js:

(WebInspector.FontView.prototype.show): Pass the parent element to View.show.

  • page/inspector/ResourceView.js: Optimize the attach method to no append if

there is a parentNode already.

  • page/inspector/SourceView.js: Ditto.
  • page/inspector/View.js: Call detach before appending if the parentNode

doesn't match the passed in element.

3:28 PM Changeset in webkit [33402] by timothy@apple.com
  • 2 edits in trunk/WebCore

Optimize the panel attach method to no append if there is a
parentNode already.

Reviewed by Adam Roben.

  • page/inspector/Panel.js:

(WebInspector.Panel.prototype.attach): Don't append to main-panels
if the panel element already has a parentNode.

3:28 PM Changeset in webkit [33401] by timothy@apple.com
  • 3 edits in trunk/WebCore

Add Widget::isPluginView so the JavaScriptDebugServer can identify
plugins that need to be paused during debugging. This will be used
in a upcoming commit.

Reviewed by Kevin McCullough.

  • platform/Widget.h: Add isPluginView. Return false.
  • plugins/PluginView.h: Add isPluginView. Return true.
3:28 PM Changeset in webkit [33400] by timothy@apple.com
  • 3 edits
    3 adds in trunk/WebCore

Adds an event loop abstraction to platform. This abstraction will be
used by the JavaScriptDebugServer to implement pausing.

Reviewed by Kevin McCullough.

  • platform/EventLoop.h: Added.

(WebCore::EventLoop::EventLoop):
(WebCore::EventLoop::ended): Return m_ended.

  • platform/mac/EventLoopMac.mm: Added.

(WebCore::EventLoop::cycle): Call nextEventMatchingMask and then sendEvent.

  • platform/win/EventLoopWin.cpp: Added.

(WebCore::EventLoop::cycle): Call GetMessage, TranslateMessage and DispatchMessage.

  • WebCore.xcodeproj/project.pbxproj: Add new files.
  • WebCore.vcproj/WebCore.vcproj: Ditto.
3:28 PM Changeset in webkit [33399] by timothy@apple.com
  • 5 edits
    1 copy in trunk/WebCore

Breaks out ObjectPropertiesSection from PropertiesSidebarPane
so it can be used by the Scripts panel's Scope Chain pane.

Rubber-stamped by Adam Roben.

  • page/inspector/ObjectPropertiesSection.js: Added.
  • page/inspector/PropertiesSidebarPane.js: Moved ObjectPropertiesSection

to ObjectPropertiesSection.js.

  • WebCore.vcproj/WebCore.vcproj: Add the new file.
  • page/inspector/WebKit.qrc: Ditto.
  • page/inspector/inspector.html: Ditto.
3:28 PM Changeset in webkit [33398] by timothy@apple.com
  • 2 edits in trunk/WebCore

Add a helper function to the Inspector's Array prototype
that will remove any identical values/objects from the array.

Reviewed by Kevin McCullough.

  • page/inspector/utilities.js:

(Array.prototype.remove): Iterate over the array and strict
compare to the passed in value. If they match, splice that index
out of the array. If onlyFirst is true, return after the first splice.

3:27 PM Changeset in webkit [33397] by timothy@apple.com
  • 4 edits
    4 adds in trunk/WebCore

Adds a JavaScriptCallFrame object and JavaScript binding with an IDL.
This object will expose the stack to the Inspector's debugger.

Reviewed by Adam Roben.

  • DerivedSources.make: Add JavaScriptCallFrame.
  • bindings/js/JSJavaScriptCallFrameCustom.cpp: Added.

(WebCore::JSJavaScriptCallFrame::evaluate): Calls impl evaluate and returns the result.
(WebCore::JSJavaScriptCallFrame::scopeChain): Makes an array of the ScopeChain.

  • page/JavaScriptCallFrame.cpp: Added.

(WebCore::JavaScriptCallFrame::JavaScriptCallFrame):
(WebCore::JavaScriptCallFrame::caller): Returns m_caller.
(WebCore::JavaScriptCallFrame::functionName): Returns the function
name from the ExecState if this is not global code or anonymous.
(WebCore::JavaScriptCallFrame::evaluate): Evaluates a script string
in the scope of the call frame.

  • page/JavaScriptCallFrame.h: Added.

(WebCore::JavaScriptCallFrame::create): Call the ctor can return in a PassRefPtr.
(WebCore::JavaScriptCallFrame::invalidate): Sets m_mexec to 0. This prevents a
stale ExecState from being accessed after the lifetime of the ExecState.
(WebCore::JavaScriptCallFrame::isValid): Checks if m_exec is 0.
(WebCore::JavaScriptCallFrame::execState): Returns m_exec.
(WebCore::JavaScriptCallFrame::sourceIdentifier): Returns m_sourceID.
(WebCore::JavaScriptCallFrame::line): Returns m_line.
(WebCore::JavaScriptCallFrame::setLine): Sets m_line.
(WebCore::JavaScriptCallFrame::scopeChain): Returns by reference m_exec->scopeChain().

  • page/JavaScriptCallFrame.idl: Added.
  • WebCore.xcodeproj/project.pbxproj: Add new files.
  • WebCore.vcproj/WebCore.vcproj: Ditto.
3:27 PM Changeset in webkit [33396] by timothy@apple.com
  • 4 edits
    1 add in trunk/WebCore

Add a new WebInspector.Object base class that will be used for
a few objects in the Web Inspector to support listeners on any
object. This will help add more abstraction to the Inspector.

Reviewed by Adam Roben.

  • page/inspector/Object.js: Added.

(WebInspector.Object): Does nothing.
(WebInspector.Object.prototype.addEventListener): Adds the listener to
the _listeners map by type. Supports a this object argument, for easy
addition of listeners without the need for bind.
(WebInspector.Object.prototype.removeEventListener): Remove the listener
from the _listeners map. If the listener is null and the thisObject was
passed, remove any listener for that thisObject.
(WebInspector.Object.prototype.dispatchEventToListeners): Sends an event
for a type to all listeners for that type. Mimics some of the DOMEvent
methods and properties for the event object passed to the listeners.

  • WebCore.vcproj/WebCore.vcproj: Add new files.
  • page/inspector/WebKit.qrc: Ditto.
  • page/inspector/inspector.html: Ditto.
3:27 PM Changeset in webkit [33395] by timothy@apple.com
  • 2 edits in trunk/WebCore

Update the view source CSS to better match the new Inspector mock-ups.

Reviewed by Kevin McCullough.

  • css/view-source.css:
2:51 PM Changeset in webkit [33394] by Adam Roben
  • 5 edits in trunk/WebKit/win

Neuter WebScriptDebugServer

Some upcoming changes to JavaScriptDebugServer and
JavaScriptDebugListener will break WebScriptDebugServer. Since Drosera
is being replaced by the Inspector's debugger, and Drosera is the only
client of WebScriptDebugServer, it makes more sense to get rid of
WebScriptDebugServer than to update it to keep it working.

We can't actually remove WebScriptDebugServer entirely yet, so I've
just made it non-functional. This will completely break Drosera, but
as stated above, Drosera's days are numbered anyway.

Reviewed by Tim Hatcher and Kevin McCullough.

  • WebCoreSupport/WebFrameLoaderClient.cpp: (WebFrameLoaderClient::dispatchDidLoadMainResource): Removed all code in this function.
  • WebKitDLL.cpp: (LocalServerDidDie): Ditto.
  • WebScriptDebugServer.cpp: Made all IWebScriptDebugServer functions return E_NOTIMPL.
  • WebScriptDebugServer.h: Removed everything but the IWebScriptDebugServer functions.
2:50 PM Changeset in webkit [33393] by oliver@apple.com
  • 5 edits
    2 adds in branches/squirrelfish

Bug 18752: SQUIRRELFISH: exceptions are not always handled by the vm
<https://bugs.webkit.org/show_bug.cgi?id=18752>

Reviewed by Darin

Replace old attempt at "branchless" exceptions as the extra information
being passed made gcc an unhappy compiler, replacing these custom toNumber
calls with ordinary toNumber logic (by relying on toNumber now preventing
side effects after an exception has been thrown) provided sufficient leeway
to add the additional checks for the remaining unchecked cases.

This leaves only toString conversions in certain contexts as possibly
misbehaving.

2:32 PM Changeset in webkit [33392] by sullivan@apple.com
  • 3 edits
    2 adds in trunk

WebCore:

2008-05-13 John Sullivan <sullivan@apple.com>

Reviewed by Dan Bernstein and Kevin Decker


  • fixed <rdar://problem/5879597> reproducible crash in HTMLSelectElement::typeAheadFind

Test: fast/forms/select-type-ahead-list-box-no-selection.html

  • html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::typeAheadFind): When there's no initially-selected element, we were accessing index -1. Check for this case and start at 0.

LayoutTests:

2008-05-13 John Sullivan <sullivan@apple.com>

Reviewed by Justin Garcia and Tim Hatcher


<rdar://problem/5879597> reproducible crash in HTMLSelectElement::typeAheadFind

  • fast/forms/select-type-ahead-list-box-no-selection-expected.txt: Added.
  • fast/forms/select-type-ahead-list-box-no-selection.html: Added.
2:25 PM Changeset in webkit [33391] by weinig@apple.com
  • 3 edits in trunk/WebCore

2008-05-13 Sam Weinig <sam@webkit.org>

Reviewed by Dan Bernstein.

Small cleanup to XMLHttpRequest in preparation for Access Control changes.

  • xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::XMLHttpRequest): (WebCore::XMLHttpRequest::~XMLHttpRequest): (WebCore::XMLHttpRequest::open): (WebCore::XMLHttpRequest::send): (WebCore::XMLHttpRequest::internalAbort): (WebCore::XMLHttpRequest::processSyncLoadResults): (WebCore::XMLHttpRequest::didFinishLoading): (WebCore::XMLHttpRequest::didReceiveResponse): (WebCore::XMLHttpRequest::didReceiveData):
  • xml/XMLHttpRequest.h:
2:23 PM Changeset in webkit [33390] by kmccullough@apple.com
  • 1 edit in trunk/JavaScriptCore/ChangeLog

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

Giving credit where credit is due.

  • ChangeLog:
2:23 PM Changeset in webkit [33389] by mrowe@apple.com
  • 3 edits in trunk/WebKit/mac

<rdar://problem/5926425> HIWebViewCreateWithClass declared as API in HIWebView.h but never exported from WebKit.framework

Reviewed by John Sullivan.

  • Carbon/HIWebView.h: Remove HIWebViewCreateWithClass.
  • Carbon/HIWebView.m: Ditto.

(HIWebViewCreate):
(HIWebViewConstructor):

2:18 PM Changeset in webkit [33388] by kmccullough@apple.com
  • 4 edits in trunk/JavaScriptCore

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

Reviewed by Geoff.

<rdar://problem/5770054> JavaScript profiler (10928)
Use PassRefPtrs instead of RefPtrs when appropriate.

  • profiler/FunctionCallProfile.cpp: (KJS::FunctionCallProfile::addChild):
  • profiler/FunctionCallProfile.h:
  • profiler/Profile.h: (KJS::Profile::callTree):
1:58 PM Changeset in webkit [33387] by Chris Fleizach
  • 2 edits in trunk/WebCore

<rdar://problem/5701210> VO: If image is missing, VoiceOver does not speak the alternative text.

If an image has an alt tag, it should not be ignored

1:57 PM Changeset in webkit [33386] by ggaren@apple.com
  • 26 edits in branches/squirrelfish

JavaScriptCore:

2008-05-13 Geoffrey Garen <ggaren@apple.com>

Reviewed by Oliver Hunt.


First steps toward supporting the debugger API: support the sourceParsed
callback; plus some minor fixups.

SunSpider reports no regression.

  • VM/CodeGenerator.h: Removed a misleading comment.
  • kjs/Parser.h: Changed the parser to take an ExecState*, so it can implement the sourceParsed callback -- that way, we only have to implement the callback in one place.
  • kjs/debugger.cpp: Nixed DebuggerImp, because its sole purpose in life was to demonstrate the misapplication of design patterns.
  • kjs/debugger.h: Changed sourceParsed to take a SourceProvider, to reduce copying, and not to return a value, because pausing execution after parsing is complicated, and no clients needed that ability, anyway.
  • kjs/grammar.y: Make sure never to pass a NULL SourceElements* to didFinishParsing -- that simplifies some code down the road.


  • kjs/nodes.cpp: Don't generate special AST nodes just because the debugger is attached -- that's a relic of the old AST execution model, and those nodes haven't been maintained.

WebCore:

2008-05-13 Geoffrey Garen <ggaren@apple.com>

Reviewed by Oliver Hunt.


Updated JavaScriptDebugServer API to accept a SourceProvider instead
of a UString, to avoid copying.

  • page/JavaScriptDebugServer.cpp: (WebCore::JavaScriptDebugServer::sourceParsed): Updated this function not to return a value.

WebKit/mac:

2008-05-13 Geoffrey Garen <ggaren@apple.com>

Reviewed by Oliver Hunt.


Updated WebScriptDebugger API to accept a SourceProvider instead
of a WebCore::String, to avoid copying.

(WebScriptDebugger::sourceParsed): Updated this function not to return
a value.

WebKit/win:

2008-05-13 Geoffrey Garen <ggaren@apple.com>

Reviewed by Oliver Hunt.


Updated for new JS debugging APIs.

  • WebScriptDebugServer.cpp: (WebScriptDebugServer::didParseSource): (WebScriptDebugServer::failedToParseSource):
  • WebScriptDebugServer.h:
1:55 PM Changeset in webkit [33385] by Chris Fleizach
  • 2 edits in trunk/WebCore

<rdar://problem/5908446> AX: webkit needs to return blockquote information for all AX objects, not just in AXTextMarker info

1:50 PM Changeset in webkit [33384] by ap@webkit.org
  • 5 edits in trunk

Reviewed by John Sullivan.

<rdar://problem/4852077> REGRESSION: The content of the HTML file which is saved as Thai
(ISO 8859-11) disappear.

<rdar://problem/5842597> Thai ISO-8859-11 should be upgraded to Windows-874

Test: fast/encoding/char-decoding.html

  • platform/text/TextCodecICU.cpp: (WebCore::TextCodecICU::registerExtendedEncodingNames): Register ISO-8859-11, which doesn't have a standard IANA name, despite following the usual 8859 naming scheme. Also, made TIS-620 map to windows-874-2000 explicitly.
1:15 PM Changeset in webkit [33383] by mjs@apple.com
  • 7 edits in branches/squirrelfish/LayoutTests

2008-05-13 Maciej Stachowiak <mjs@apple.com>

Reviewed by Sam.


Update results for remainder of split-window merge. The new results are correct.

  • http/tests/security/listener/xss-JSTargetNode-onclick-addEventListener-expected.txt:
  • http/tests/security/listener/xss-JSTargetNode-onclick-shortcut-expected.txt:
  • http/tests/security/listener/xss-XMLHttpRequest-addEventListener-expected.txt:
  • http/tests/security/listener/xss-XMLHttpRequest-shortcut-expected.txt:
  • http/tests/security/listener/xss-window-onclick-addEventListener-expected.txt:
  • http/tests/security/listener/xss-window-onclick-shortcut-expected.txt:
12:35 PM Changeset in webkit [33382] by kmccullough@apple.com
  • 7 edits in trunk/JavaScriptCore

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

Reviewed by Sam.

<rdar://problem/5770054> JavaScript profiler (10928)

  • Made some functions static (as per Adam) and changed from using raw pointers to RefPtr for making these JavaScript Objects.
  • profiler/FunctionCallProfile.cpp: (KJS::FunctionCallProfile::addChild): (KJS::FunctionCallProfile::findChild):
  • profiler/FunctionCallProfile.h: (KJS::FunctionCallProfile::create):
  • profiler/Profile.cpp: (KJS::Profile::Profile): (KJS::Profile::willExecute): (KJS::Profile::didExecute): (KJS::functionNameCountPairComparator):
  • profiler/Profile.h: (KJS::Profile::create): (KJS::Profile::title): (KJS::Profile::callTree):
  • profiler/Profiler.cpp: (KJS::Profiler::startProfiling):
  • profiler/Profiler.h: (KJS::Profiler::allProfiles): (KJS::Profiler::clearProfiles):
12:35 PM Changeset in webkit [33381] by Chris Fleizach
  • 2 edits in trunk/WebCore

Re: [PFR] <rdar://problem/5471973> Some AXLinks are not getting AXTitles though there is title text

11:36 AM Changeset in webkit [33380] by ap@webkit.org
  • 8 edits
    1 move
    7 adds
    1 delete in trunk

Reviewed by Eric Seidel.

https://bugs.webkit.org/show_bug.cgi?id=18681
<rdar://problem/5888130> WebKit should not remove BOM characters from content.

We were only trying to match Firefox, and it doesn't do this any more.

Tests: fast/encoding/bom-in-content.html

fast/encoding/bom-in-content-utf16.html

  • platform/text/TextDecoder.cpp: (WebCore::TextDecoder::checkForBOM): Skip the BOM if it's at the start of input stream.
  • platform/text/TextCodec.cpp:
  • platform/text/TextCodec.h:
  • platform/text/TextCodecICU.cpp: (WebCore::TextCodecICU::decode):
  • platform/text/TextCodecUTF16.cpp: (WebCore::TextCodecUTF16::decode):
  • platform/text/mac/TextCodecMac.cpp: (WebCore::TextCodecMac::decode): Don't remove the BOM.
11:25 AM Changeset in webkit [33379] by ap@webkit.org
  • 3 edits in trunk/LayoutTests

Reviewed by Dan Bernstein.

Add tests verifying that we don't mix up some similar, but incompatible encodings.

  • fast/encoding/char-decoding-expected.txt:
  • fast/encoding/char-decoding.html:
11:14 AM Changeset in webkit [33378] by andersca@apple.com
  • 4 edits
    4 adds in trunk

WebCore:

2008-05-13 Anders Carlsson <andersca@apple.com>

Reviewed by Darin.

Don't crash when a document loader is destroyed while an initial caching attempt
is in progress.

  • loader/appcache/ApplicationCacheGroup.cpp: (WebCore::ApplicationCacheGroup::~ApplicationCacheGroup): Stop loading.


(WebCore::ApplicationCacheGroup::stopLoading):
New method that stops a cache update.


(WebCore::ApplicationCacheGroup::documentLoaderDestroyed):
Delete ourselves here.


  • loader/appcache/ApplicationCacheGroup.h:

LayoutTests:

2008-05-13 Anders Carlsson <andersca@apple.com>

Reviewed by Darin.

Add testcase.


  • http/tests/appcache/navigating-away-while-cache-attempt-in-progress-expected.txt: Added.
  • http/tests/appcache/navigating-away-while-cache-attempt-in-progress.html: Added.
  • http/tests/appcache/resources/navigating-away-while-cache-attempt-in-progress.manifest: Added.
  • http/tests/appcache/resources/slow-resource.php: Added.
9:35 AM Changeset in webkit [33377] by ap@webkit.org
  • 5 edits in trunk

Reviewed by Darin.

<rdar://problem/5841351> Turkish ISO 8859-9 encoding should be treated as windows-1254

Match IE and upgrade ISO-8859-9 to windows-1254, which is its strict superset.

Test: fast/encoding/char-decoding.html

  • platform/text/TextCodecICU.cpp: (WebCore::TextCodecICU::registerExtendedEncodingNames): Register the standard name unconditionally. Previously, we registered windows-949-2000 as a special case that lacked an IANA standard name, and got away with not registering GBK because it happened to be reported by ICU normally earlier than any encoding upgraded to it.
8:22 AM Changeset in webkit [33376] by Simon Hausmann
  • 4 edits in trunk/WebCore

2008-05-13 Tor Arne Vestbø <tavestbo@trolltech.com>

Reviewed by Simon

Fix QtWebKit build on Qt embedded.

7:24 AM Changeset in webkit [33375] by Simon Hausmann
  • 2 edits in trunk/WebCore

2008-05-13 Ariya Hidayat <ariya.hidayat@trolltech.com>

Reviewed by Simon.

For Gtk/X11 and Qt/X11, use a more extensive plug-ins scan directories set

2:46 AM Changeset in webkit [33374] by ap@webkit.org
  • 5 edits in trunk/JavaScriptCore

Reviewed by Geoffrey Garen.

<rdar://problem/4949018> JavaScriptCore API claims to work with UTF8 strings, but only works
with ASCII strings


  • kjs/ustring.h:
  • kjs/ustring.cpp: (KJS::UString::Rep::createFromUTF8): Added. Implementation adapted from JSStringCreateWithUTF8CString().
  • API/JSStringRef.cpp: (JSStringCreateWithUTF8CString):
  • API/JSClassRef.cpp: (OpaqueJSClass::OpaqueJSClass): Use UString::Rep::createFromUTF8().
1:05 AM Changeset in webkit [33373] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

2008-05-13 Andy Shaw <andy@trolltech.com>

Reviewed by Simon.

Fixes: QWebHistory::forward() should go forwards and not back

12:11 AM Changeset in webkit [33372] by oliver@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

Bug 18752: SQUIRRELFISH: exceptions are not always handled by the vm
<https://bugs.webkit.org/show_bug.cgi?id=18752>

Reviewed by Geoff

First step: prevent incorrect evaluation of valueOf/toString conversion
in right hand side of expression after earlier conversion throws.

May 12, 2008:

11:06 PM Changeset in webkit [33371] by mrowe@apple.com
  • 5 edits
    3 adds in branches/squirrelfish

Bug 18934: SQUIRRELFISH: ASSERT @ nytimes.com due to RegisterFile being clobbered
<https://bugs.webkit.org/show_bug.cgi?id=18934>

Reviewed by Geoff

Unfortunately we cannot create new statically optimised globals if there are any
tainted RegisterFiles on the RegisterFileStack. To handle this we re-introduce
(in a slightly cleaner form) the inImplicitCall concept to the RegisterFileStack.

11:06 PM Changeset in webkit [33370] by mrowe@apple.com
  • 5 edits
    2 adds in branches/squirrelfish

JavaScriptCore:

2008-05-12 Geoffrey Garen <ggaren@apple.com>

Reviewed by Maciej Stachowiak.

Introduced support for function.caller.

Improved support for walking interesting scopes for function introspection.

This fixes all remaining layout tests not blocked by rebasing to trunk.

SunSpider reports no change.

  • VM/Machine.cpp: (KJS::Machine::dumpRegisters): Fixed a spacing issue.

LayoutTests:

2008-05-12 Geoffrey Garen <ggaren@apple.com>

Reviewed by Maciej Stachowiak.

Layout test for function.arguments and function.caller in interesting
scopes.

  • fast/js/function-dot-arguments-and-caller-expected.txt: Added.
  • fast/js/function-dot-arguments-and-caller.html: Added.
11:06 PM Changeset in webkit [33369] by mrowe@apple.com
  • 3 edits
    3 adds in branches/squirrelfish

2008-05-11 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Oliver.

Bug 18961: SQUIRRELFISH: Gmail doesn't load
<https://bugs.webkit.org/show_bug.cgi?id=18961>

Fix codegen for logical nodes so that they don't use their destination
as a temporary.

  • kjs/nodes.cpp: (KJS::LogicalAndNode::emitCode): (KJS::LogicalOrNode::emitCode):
  • fast/js/codegen-temporaries-expected.txt: Added.
  • fast/js/codegen-temporaries.html: Added.
  • fast/js/resources/codegen-temporaries.js: Added.
11:06 PM Changeset in webkit [33368] by mrowe@apple.com
  • 1 edit
    1 add in branches/squirrelfish/WebCore

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

Build fix.

  • add missing forwarding header
  • ForwardingHeaders/kjs/SourceProvider.h: Added.
11:06 PM Changeset in webkit [33367] by mrowe@apple.com
  • 38 edits
    3 copies in branches/squirrelfish

JavaScriptCore:

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

Reviewed by Oliver.

Three layout tests are fixed:

fast/js/toString-elision-trailing-comma.html
fast/js/toString-prefix-postfix-preserve-parens.html
fast/js/kde/lval-exceptions.html

Functions now save a shared subrange of the original source used
to make them (so in the common case this adds no storage above the
memory cache).

  • kjs/SourceProvider.h: Added. (KJS::SourceProvider): New abstract base class for classes that provide on-demand access to the source for a JavaScript program. This allows function objects to have access to their original source without copying. (KJS::UStringSourceProvider): SourceProvider subclass backed by a KJS::UString. (KJS::UStringSourceProvider::create): (KJS::UStringSourceProvider::getRange): (KJS::UStringSourceProvider::data): (KJS::UStringSourceProvider::length): (KJS::UStringSourceProvider::UStringSourceProvider):
  • kjs/SourceRange.h: Added. (KJS::SourceRange::SourceRange): Class that holds a SourceProvider and a character range into the source, to encapsulate on-demand access to the source of a function. (KJS::SourceRange::toString):
  • VM/Machine.cpp: (KJS::eval): Pass a UStringSourceProvider to the parser.
  • kjs/Parser.cpp: (KJS::Parser::parse): Take a SourceProvider and pass it on to the lexer.
  • kjs/Parser.h: (KJS::Parser::parse): Take a SourceProvider.
  • kjs/lexer.cpp: (KJS::Lexer::setCode): Take a SourceProvider; keep it around, and use it to get the raw buffer and length.
  • kjs/lexer.h: (KJS::Lexer::sourceRange): Convenience function to get a source range based on the lexer's source provieder, and char offsets right before and after the desired range.
  • kjs/function.cpp: (KJS::globalFuncEval): Pass a UStringSourceProvider to the parser.
  • kjs/function_object.cpp: (KJS::functionProtoFuncToString): Use toSourceString to get the source. (KJS::FunctionObjectImp::construct): Give the parser a UStringSourceProvider.
  • kjs/grammar.y: When parsing a function declaration, function expression, or getter or setter, tell the function body about its SourceRange.
  • kjs/interpreter.cpp: (KJS::Interpreter::checkSyntax): Pass a SourceProvider to the parser. (KJS::Interpreter::evaluate): Pass a SourceProvider to the parser.
  • kjs/interpreter.h:
  • kjs/nodes.h: (KJS::FunctionBodyNode::setSource): Establish a SourceRange for this function. (KJS::FunctionBodyNode::toSourceString): Get the source string out of the SourceRange. (KJS::FuncExprNode::): Take a SourceRange and set it on the body. (KJS::FuncDeclNode::): ditto
  • kjs/testkjs.cpp: (prettyPrintScript): Use a SourceProvider appropriately.
  • JavaScriptCore.exp: Export new symbols.
  • JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Add new files.
  • JavaScriptCore.xcodeproj/project.pbxproj: Add new files.

JavaScriptGlue:

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

Reviewed by Oliver.

  • JSRun.cpp: (JSRun::Evaluate): Use UString version of eveluate() instead of the now departed UChar*/length variant; use of the lower-level version was gratuitous in any case. (JSRun::CheckSyntax): Ditto for checkSyntax().

WebCore:

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

Reviewed by Oliver.

  • bindings/js/StringSourceProvider.h: Added. SourceProvider subclass backed by a WebCore::String. (WebCore::StringSourceProvider::create): (WebCore::StringSourceProvider::getRange): (WebCore::StringSourceProvider::data): (WebCore::StringSourceProvider::length): (WebCore::StringSourceProvider::StringSourceProvider):
  • bindings/js/kjs_proxy.cpp: (WebCore::KJSProxy::evaluate): Pass a StringSourceProvider to evaluate() instead of UChar* / length.
  • html/HTMLScriptElement.cpp: (WebCore::HTMLScriptElement::text): Modified to return the original string as-is when the script element contains only a single text node, to avoid excess memory use.
  • WebCore.vcproj/WebCore.vcproj: Add new file to build.
  • WebCore.xcodeproj/project.pbxproj: ditto

LayoutTests:

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

Reviewed by Oliver.

All of these tests expected function.toString to somewhat change
things from the raw original source. They are now prepared for the
fact that this does not happen.

  • fast/js/function-decompilation-operators.html:
  • fast/js/function-names-expected.txt:
  • fast/js/function-prototype-expected.txt:
  • fast/js/function-prototype.html:
  • fast/js/function-toString-object-literals-expected.txt:
  • fast/js/function-toString-parentheses-expected.txt:
  • fast/js/kde/lval-exceptions-expected.txt:
  • fast/js/modify-non-references-expected.txt:
  • fast/js/resources/function-names.js:
  • fast/js/resources/function-toString-object-literals.js:
  • fast/js/resources/function-toString-parentheses.js:
  • fast/js/resources/modify-non-references.js:
  • fast/js/resources/toString-prefix-postfix-preserve-parens.js:
  • fast/js/toString-prefix-postfix-preserve-parens-expected.txt:
11:06 PM Changeset in webkit [33366] by mrowe@apple.com
  • 6 edits in branches/squirrelfish/JavaScriptCore

Bring back RegisterFile tainting in order to correctly handle
natively implemented getters and setters that re-enter JavaScript

Reviewed by Maciej

11:06 PM Changeset in webkit [33365] by mrowe@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

2008-05-09 Maciej Stachowiak <mjs@apple.com>

Reviewed by Oliver.

  • track character offsets of open and close braces, in preparation for saving function source

I verified that there is no performance regression from this change.

  • kjs/grammar.y:
  • kjs/lexer.cpp: (KJS::Lexer::lex): (KJS::Lexer::matchPunctuator):
  • kjs/lexer.h:
11:06 PM Changeset in webkit [33364] by mrowe@apple.com
  • 1 edit in branches/squirrelfish/JavaScriptCore/ChangeLog

Debug build fix

No reviewer

11:06 PM Changeset in webkit [33363] by mrowe@apple.com
  • 12 edits in branches/squirrelfish

Build fixes for SquirrelFish on windows.

Reviewed by Geoff

11:06 PM Changeset in webkit [33362] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/LayoutTests

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

Reviewed by Sam Weinig.

Restored the expected results for viewsource-empty-attribute-value.html
to what they were prior to r31100. These results expect that the
top-level name in the frame path is "" instead of "1".

It's not clear how r31100 changed the top-level frame in the frame path
to be named "1". The change definitely wasn't related to any expected
behavior in r31100, which was about default margin-bottom for form
elements in quirks mode.

It's also not clear how squirrelfish changes things back.

Sam mentioned that the test result changes intermittently on trunk.

For now, I don't think we need to think deeply about this issue,
since the "" result seems more correct than the "1" result.

  • fast/frames/viewsource-empty-attribute-value-expected.txt:
11:06 PM Changeset in webkit [33361] by mrowe@apple.com
  • 1 edit
    1 add in branches/squirrelfish/LayoutTests

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

Added expected results for this test.

  • fast/js/closure-inside-extra-arg-call-expected.txt: Added.
11:06 PM Changeset in webkit [33360] by mrowe@apple.com
  • 6 edits in branches/squirrelfish/WebCore

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

Reviewed by Oliver Hunt.

Fixed platform/mac/plugins/bindings-test-objc.html.

I've restored -[WebScriptObject setException] and
+[WebScriptObject throwException].

Instead of mucking around in the JavaScript engine's execution state,
throwing an exception sets a global exception string, along with the
environment in which to throw it. An ObjC callback checks the global
exception string and, if it's non-nil and the environment matches the
current exceution environment, throws the global exception string as a
JS exception.

I also removed the old currentGlobalObject infrastructure: it's no longer
used.

11:06 PM Changeset in webkit [33359] by mrowe@apple.com
  • 3 edits
    2 adds in branches/squirrelfish

JavaScriptCore:

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

Reviewed by Geoff.

  • fix activation tearoff in the case where functions are called with too many arguments

Fixes:
fast/canvas/patternfill-repeat.html
fast/dom/SelectorAPI/bug-17313.html

  • VM/Machine.cpp: (KJS::slideRegisterWindowForCall): (KJS::scopeChainForCall): (KJS::Machine::execute): (KJS::Machine::privateExecute):

LayoutTests:

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

Reviewed by Geoff.

Add test cases for failures similar to the SquirrelFish failure on
fast/dom/SelectorAPI/bug-17313.html

  • fast/js/closure-inside-extra-arg-call.html: Added.
  • fast/js/resources/closure-inside-extra-arg-call.js: Added.
11:06 PM Changeset in webkit [33358] by mrowe@apple.com
  • 4 edits
    4 adds in branches/squirrelfish

JavaScriptCore:

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

Reviewed by Oliver Hunt.

Fixed failure in fast/canvas/canvas-pattern-behaviour.html.

SunSpider reports a small speedup. Not sure what that's about.

  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump): Fixed op_call_eval to dump as "op_call_eval". This helped me while debugging.
  • VM/Machine.cpp: (KJS::Machine::unwindCallFrame): When looking for an activation to tear off, don't use the scope chain. Inside eval, the scope chain doesn't belong to us; it belongs to our calling function.

Also, don't use the needsFullScopeChain flag to decide whether to tear
off the activation. "function.arguments" can create an activation
for a function whose needsFullScopeChain flag is set to false.

LayoutTests:

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

Reviewed by Oliver Hunt.

Added specific test cases for the root cause of squirrelfish's failure
in fast/canvas/canvas-pattern-behaviour.html.

  • fast/js/exception-thrown-from-eval-inside-closure-expected.txt: Added.
  • fast/js/exception-thrown-from-eval-inside-closure.html: Added.
  • fast/js/exception-thrown-from-function-with-lazy-activation-expected.txt: Added.
  • fast/js/exception-thrown-from-function-with-lazy-activation.html: Added.
11:05 PM Changeset in webkit [33357] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/LayoutTests

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

Reviewed by Sam Weinig.

Updated test results to reflect correct behavior: The line number in
the old results was off by 2.

  • fast/js/recursion-limit-equal-expected.txt:
11:05 PM Changeset in webkit [33356] by mrowe@apple.com
  • 2 edits
    2 moves
    6 deletes in branches/squirrelfish/LayoutTests

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

Reviewed by Oliver.

  • move frame.xhtml and iframe.xhtml into a resources dir, as they were never meant to be tests
  • dom/xhtml/level2/html/HTMLFrameElement09.xhtml-disabled:
  • dom/xhtml/level2/html/frame.xhtml: Removed.
  • dom/xhtml/level2/html/iframe.xhtml: Removed.
  • dom/xhtml/level2/html/resources/frame.xhtml: Copied from dom/xhtml/level2/html/frame.xhtml.
  • dom/xhtml/level2/html/resources/iframe.xhtml: Copied from dom/xhtml/level2/html/iframe.xhtml.
  • platform/mac/dom/xhtml/level2/html/frame-expected.checksum: Removed.
  • platform/mac/dom/xhtml/level2/html/frame-expected.png: Removed.
  • platform/mac/dom/xhtml/level2/html/frame-expected.txt: Removed.
  • platform/mac/dom/xhtml/level2/html/iframe-expected.checksum: Removed.
  • platform/mac/dom/xhtml/level2/html/iframe-expected.png: Removed.
  • platform/mac/dom/xhtml/level2/html/iframe-expected.txt: Removed.
11:05 PM Changeset in webkit [33355] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.

  • fix function.call for calls of more than 8 arguments

Fixes svg/carto.net/button.svg

  • kjs/list.cpp: (KJS::List::getSlice): properly set up the m_buffer of the target list.
11:05 PM Changeset in webkit [33354] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.

  • don't return a null RegisterID from RegExpNode in the exception case, since the caller may need a real register

Fixes:

  • fast/regex/early-acid3-86.html
  • http/tests/misc/acid3.html
  • kjs/nodes.cpp: (KJS::RegExpNode::emitCode):
11:05 PM Changeset in webkit [33353] by mrowe@apple.com
  • 13 edits
    2 adds in branches/squirrelfish/LayoutTests

o2008-05-07 Geoffrey Garen <ggaren@apple.com>

Reviewed by Oliver Hunt.

Added this test to demonstrate that, for "f(x)", it is correct to evaluate
"x" even if "f" is not a function, and therefore "f(x)" will throw an exception.

  • fast/js/function-argument-evaluation-before-exception-expected.txt: Added.
  • fast/js/function-argument-evaluation-before-exception.html: Added.

These tests now have an extra "access denied" message in them, because
of the behavior change mentioned above.

I also added try/catch clauses to eliminate the "is not object"
exception messages from the test output.

  • http/tests/security/listener/resources/targetChild-JSTargetNode-onclick-addEventListener.html:
  • http/tests/security/listener/resources/targetChild-JSTargetNode-onclick-shortcut.html:
  • http/tests/security/listener/resources/targetChild-XMLHttpRequest-addEventListener.html:
  • http/tests/security/listener/resources/targetChild-XMLHttpRequest-shortcut.html:
  • http/tests/security/listener/resources/targetChild-window-onclick-addEventListener.html:
  • http/tests/security/listener/resources/targetChild-window-onclick-shortcut.html:
  • http/tests/security/listener/xss-JSTargetNode-onclick-addEventListener-expected.txt:
  • http/tests/security/listener/xss-JSTargetNode-onclick-shortcut-expected.txt:
  • http/tests/security/listener/xss-XMLHttpRequest-addEventListener-expected.txt:
  • http/tests/security/listener/xss-XMLHttpRequest-shortcut-expected.txt:
  • http/tests/security/listener/xss-window-onclick-addEventListener-expected.txt:
  • http/tests/security/listener/xss-window-onclick-shortcut-expected.txt:
11:05 PM Changeset in webkit [33352] by mrowe@apple.com
  • 11 edits in branches/squirrelfish/LayoutTests

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

Reviewed by Oliver Hunt.

Fixed up a few more tests that depended on the exact text of exception
messages.

  • In these tests, I fixed a bug in frame.html and iframe.html that caused a function to execute too many times.
  • dom/html/level2/html/HTMLFrameElement09-expected.txt:
  • dom/html/level2/html/HTMLIFrameElement11-expected.txt:
  • dom/html/level2/html/resources/frame.html:
  • dom/html/level2/html/resources/iframe.html:
  • I changed these tests to explicitly report exceptions, so their results don't depend on how the engine constructs messages for implicit exceptions:
  • dom/xhtml/level2/html/HTMLDocument17-expected.txt:
  • dom/xhtml/level2/html/HTMLDocument18-expected.txt:
  • dom/xhtml/level2/html/HTMLDocument19-expected.txt:
  • dom/xhtml/level2/html/HTMLDocument20-expected.txt:
  • dom/xhtml/level2/html/HTMLDocument21-expected.txt:
  • dom/xhtml/level2/html/selfxhtml.js:
11:05 PM Changeset in webkit [33351] by mrowe@apple.com
  • 9 edits in branches/squirrelfish/JavaScriptCore

Partial fix for current performance regressions.

Patch from Cameron Zwarich
Reviewed by Oliver

Fix a performance regression caused by the introduction of property
attributes to SymbolTable in r32859 by encoding the attributes and the
register index into a single field of SymbolTableEntry.

This leaves Node::optimizeVariableAccess() definitely broken, although
it was probably not entirely correct in SquirrelFish before this change.

11:05 PM Changeset in webkit [33350] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

2008-05-06 Maciej Stachowiak <mjs@apple.com>

Rubber stamped by Oliver.

  • add missing ! in an assert that I failed to reverse
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::CodeGenerator):
11:05 PM Changeset in webkit [33349] by mrowe@apple.com
  • 282 edits in branches/squirrelfish/LayoutTests

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

Reviewed by Oliver Hunt.

To facilitate merging between the squirrelfish branch and trunk, I
edited a bunch of layout tests to make sure their results don't depend
on the exact text of an exception message generated by the JavaScript engine.

(We do want to test JavaScript exception messages -- we just don't want
to test them 300 times over, in tests that aren't supposed to be about
JavaScript at all.)

  • I fixed bugs that were causing these tests to throw exceptions by accident, and updated results to reflect correct behavior:
  • editing/selection/contenteditable-click-inside.html:
  • platform/mac/editing/selection/contenteditable-click-inside-expected.checksum:
  • platform/mac/editing/selection/contenteditable-click-inside-expected.png:
  • platform/mac/editing/selection/contenteditable-click-inside-expected.txt:
  • editing/selection/contenteditable-click-outside.html:
  • platform/mac/editing/selection/contenteditable-click-outside-expected.checksum:
  • platform/mac/editing/selection/contenteditable-click-outside-expected.png:
  • platform/mac/editing/selection/contenteditable-click-outside-expected.txt:
  • fast/forms/selected-index-assert.html:
  • fast/forms/selected-index-assert-expected.txt:
  • tables/mozilla_expected_failures/core/captions1.html:
  • platform/mac/tables/mozilla_expected_failures/core/captions1-expected.txt:
  • I changed these tests to explicitly throw/report exceptions, so their results don't depend on how the engine constructs messages for implicit exceptions:
  • fast/xpath/nsresolver-exception.xhtml:
  • fast/xpath/nsresolver-exception-expected.txt:
  • platform/mac/fast/AppleScript/001.html:
  • platform/mac/fast/AppleScript/001-expected.txt:
  • dom/xhtml/level3/core/selfxhtml.js
  • dom/xhtml/level3/core/*expected.txt (about 280 of these changed)
11:04 PM Changeset in webkit [33348] by mrowe@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

2008-05-06 Maciej Stachowiak <mjs@apple.com>

Reviewed by Oliver.

The basic approach is to have "this" only be present in the symbol
table at compile time, not runtime.

  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::~CodeGenerator): Remove "this" from symbol table. (KJS::CodeGenerator::CodeGenerator): Add "this" back when re-using a symbol table.
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::execute): Don't assert that "this" is in the symbol table.
11:04 PM Changeset in webkit [33347] by mrowe@apple.com
  • 12 edits in branches/squirrelfish/WebCore

Bug 18866: SQUIRRELFISH: JS/ObjC bridge is broken <https://bugs.webkit.org/show_bug.cgi?id=18866>
Bug 18867: SQUIRRELFISH: JS/NPRuntime bridge is broken <https://bugs.webkit.org/show_bug.cgi?id=18867>

Reviewed by Maciej

This fixes function binding logic for the ObjC and NPRuntime by
replacing incorrect implementations of implementsCall (which is
no longer virtual) with implementations of getCallData.

11:04 PM Changeset in webkit [33346] by mrowe@apple.com
  • 9 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

Trivial support for function.arguments: Currently, we only support
function.arguments from within the scope of function.

This fixes the remaining Mozilla JS test failures.

SunSpider reports no change.

  • VM/Machine.cpp: (KJS::Machine::privateExecute): Separated scope chain deref from activation register copying: since it is now possible for client code to create an activation on behalf of a function that otherwise wouldn't need one, having an activation no longer necessarily means that you need to deref the scope chain.

(KJS::Machine::getCallFrame): For now, this function only examines the
current scope. Walking parent scopes requires some refactoring in the
way we track execution stacks.

  • kjs/ExecState.cpp: (KJS::ExecState::ExecState): We use a negative call frame offset to indicate that a given scope is not a function call scope.
11:04 PM Changeset in webkit [33345] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

Fix call frame set up for native -> JS function calls.

Review by Geoff

11:04 PM Changeset in webkit [33344] by mrowe@apple.com
  • 8 edits
    2 adds in branches/squirrelfish

JavaScriptCore:

2008-05-05 Geoffrey Garen <ggaren@apple.com>

Reviewed by Maciej Stachowiak.

Fixed ecma_3/Object/8.6.2.6-001.js, and similar bugs.

SunSpider reports a .4% speedup. Not sure what that's about.

  • VM/Machine.cpp: (KJS::Machine::privateExecute): Check for exception return from equal, since toPrimitive can throw.
  • kjs/operations.cpp: (KJS::strictEqual): In response to an error I made in an earlier version of this patch, I changed strictEqual to make clear the fact that it performs no conversions and can't throw, making it slightly more efficient in the process.

LayoutTests:

2008-05-05 Geoffrey Garen <ggaren@apple.com>

Reviewed by Maciej Stachowiak.

Layout test for exceptions thrown from equality comparisons.

  • fast/js/exception-thrown-from-equal-expected.txt: Added.
  • fast/js/exception-thrown-from-equal.html: Added.
11:04 PM Changeset in webkit [33343] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

2008-05-05 Maciej Stachowiak <mjs@apple.com>

Reviewed by Oliver.

  • fix some dumb mistakes in my last patch
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitPushScope): (KJS::CodeGenerator::emitGetPropertyNames):
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
11:04 PM Changeset in webkit [33342] by mrowe@apple.com
  • 5 edits in branches/squirrelfish/JavaScriptCore

2008-05-05 Maciej Stachowiak <mjs@apple.com>

Reviewed by Oliver.

  • document opcodes relating to jumps, scopes, and property name iteration

Documented jmp, jtrue, false, push_scope, pop_scope, get_pnames,
next_pname and jmp_scopes.

  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitJump): (KJS::CodeGenerator::emitJumpIfTrue): (KJS::CodeGenerator::emitJumpIfFalse): (KJS::CodeGenerator::emitPushScope): (KJS::CodeGenerator::emitNextPropertyName): (KJS::CodeGenerator::emitGetPropertyNames):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • kjs/nodes.cpp: (KJS::LogicalAndNode::emitCode): (KJS::LogicalOrNode::emitCode): (KJS::ConditionalNode::emitCode): (KJS::IfNode::emitCode): (KJS::IfElseNode::emitCode): (KJS::DoWhileNode::emitCode): (KJS::WhileNode::emitCode): (KJS::ForNode::emitCode): (KJS::ForInNode::emitCode): (KJS::WithNode::emitCode):
11:04 PM Changeset in webkit [33341] by mrowe@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

Bug 18749: SQUIRRELFISH: const support is broken
<https://bugs.webkit.org/show_bug.cgi?id=18749>

Cameron Zwarich <cwzwarich@uwaterloo.ca>
Reviewed by Oliver.

Adds support for const during code generation.

Fixes 2 layout tests.

11:04 PM Changeset in webkit [33340] by mrowe@apple.com
  • 5 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoff.

  • document some more opcodes (and fix argument names)

Added docs for eq, neq, stricteq, nstriceq, less and lesseq.

  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitEqual): (KJS::CodeGenerator::emitNotEqual): (KJS::CodeGenerator::emitStrictEqual): (KJS::CodeGenerator::emitNotStrictEqual): (KJS::CodeGenerator::emitLess): (KJS::CodeGenerator::emitLessEq):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • kjs/nodes.cpp: (KJS::LessNode::emitCode): (KJS::GreaterNode::emitCode): (KJS::LessEqNode::emitCode): (KJS::GreaterEqNode::emitCode): (KJS::EqualNode::emitCode): (KJS::NotEqualNode::emitCode): (KJS::StrictEqualNode::emitCode): (KJS::NotStrictEqualNode::emitCode): (KJS::CaseBlockNode::emitCodeForBlock):
11:04 PM Changeset in webkit [33339] by mrowe@apple.com
  • 10 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.

More scaffolding for f.arguments.

Track the offset of the last call frame in the ExecState, so we can
produce a backtrace at any time.

Also, record numLocals, the sum of numVars + numParameters, in each code
block, to make updates to the ExecState a little cheaper than they
would be otherwise.

We now use numLocals in a bunch of places where we used to calculate
numVars + numParameters or -numVars - numParameters.

Reports are mixed, but all in all, this seems to be a wash on SunSpider.

11:04 PM Changeset in webkit [33338] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

Whoops, correctly handle properties that don't exist in the
symbol table.

Reviewed by Geoff

11:03 PM Changeset in webkit [33337] by mrowe@apple.com
  • 7 edits in branches/squirrelfish/JavaScriptCore

Add attribute information to SymbolTable as ground work for
various DontEnum and ReadOnly issues.

Reviewed by Geoff

11:03 PM Changeset in webkit [33336] by mrowe@apple.com
  • 7 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

More scaffolding for f.arguments.

Store the register file associated with an ExecState in the ExecState.

SunSpider reports no change.

  • kjs/JSGlobalObject.h: (KJS::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData): Moved registerFileStack above globalExec, so it gets initialized first. Removed remnants of old activation scheme.
11:03 PM Changeset in webkit [33335] by mrowe@apple.com
  • 7 edits in branches/squirrelfish/JavaScriptCore

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

Rubber stamped by Oliver.

  • renamed a few opcodes and fixed assembly formatting to accomodate the longest opcode

equal --> eq
nequal --> neq
resolve_base_and_property --> resolve_with_base
resolve_base_and_func --> resolve_func
get_prop_id --> get_by_id
put_prop_id --> put_by_id
delete_prop_id --> del_by_id
get_prop_val --> get_by_val
put_prop_val --> put_by_val
delete_prop_val --> del_by_val
put_prop_index --> put_by_index

  • VM/CodeBlock.cpp: (KJS::printUnaryOp): (KJS::printBinaryOp): (KJS::printConditionalJump): (KJS::CodeBlock::dump):
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitEqual): (KJS::CodeGenerator::emitNotEqual): (KJS::CodeGenerator::emitResolveWithBase): (KJS::CodeGenerator::emitResolveFunction): (KJS::CodeGenerator::emitGetById): (KJS::CodeGenerator::emitPutById): (KJS::CodeGenerator::emitDeleteById): (KJS::CodeGenerator::emitGetByVal): (KJS::CodeGenerator::emitPutByVal): (KJS::CodeGenerator::emitDeleteByVal): (KJS::CodeGenerator::emitPutByIndex):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • VM/Opcode.h:
  • kjs/nodes.cpp: (KJS::ArrayNode::emitCode): (KJS::PropertyListNode::emitCode): (KJS::BracketAccessorNode::emitCode): (KJS::DotAccessorNode::emitCode): (KJS::EvalFunctionCallNode::emitCode): (KJS::FunctionCallResolveNode::emitCode): (KJS::FunctionCallBracketNode::emitCode): (KJS::FunctionCallDotNode::emitCode): (KJS::PostIncResolveNode::emitCode): (KJS::PostDecResolveNode::emitCode): (KJS::PostIncBracketNode::emitCode): (KJS::PostDecBracketNode::emitCode): (KJS::PostIncDotNode::emitCode): (KJS::PostDecDotNode::emitCode): (KJS::DeleteResolveNode::emitCode): (KJS::DeleteBracketNode::emitCode): (KJS::DeleteDotNode::emitCode): (KJS::TypeOfResolveNode::emitCode): (KJS::PreIncResolveNode::emitCode): (KJS::PreDecResolveNode::emitCode): (KJS::PreIncBracketNode::emitCode): (KJS::PreDecBracketNode::emitCode): (KJS::PreIncDotNode::emitCode): (KJS::PreDecDotNode::emitCode): (KJS::ReadModifyResolveNode::emitCode): (KJS::AssignResolveNode::emitCode): (KJS::AssignDotNode::emitCode): (KJS::ReadModifyDotNode::emitCode): (KJS::AssignBracketNode::emitCode): (KJS::ReadModifyBracketNode::emitCode): (KJS::ConstDeclNode::emitCodeSingle): (KJS::ForInNode::emitCode): (KJS::TryNode::emitCode):
11:03 PM Changeset in webkit [33334] by mrowe@apple.com
  • 3 edits
    3 adds in branches/squirrelfish

Fix assertion when accessing arguments object with too many arguments provided

Reviewed by Maciej

The arguments constructor was assuming that the register offset given for argv
was an absolute offset into the registerfile, rather than the offset from the
frame. This patches corrects that issue.

11:03 PM Changeset in webkit [33333] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Rubber stamped by Sam Weinig.

Cleaned up Machine.cpp according to our style guidelines: moved static
data to the top of the file; moved stand-alone functions below that;
moved the Machine constructor above other Machine member functions.

11:03 PM Changeset in webkit [33332] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

2008-05-03 Maciej Stachowiak <mjs@apple.com>

Reviewed by Sam.

  • fix accidental breakage from last patch
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
11:03 PM Changeset in webkit [33331] by mrowe@apple.com
  • 7 edits in branches/squirrelfish/JavaScriptCore

2008-05-03 Maciej Stachowiak <mjs@apple.com>

Reviewed by Geoff.

  • a bunch more opcode documentation and corresponding parameter name fixes

I renamed a few opcodes:

type_of --> typeof (that's what the JS operator is named)
instance_of --> instanceof (ditto)
create_error --> new_error (for consistency with other new_* opcodes)

I documented the following opcodes:

  • load
  • new_object
  • new_array
  • new_regexp
  • mov
  • pre_inc
  • pre_dec
  • post_inc
  • post_dec
  • to_jsnumber
  • negate
  • bitnot
  • not
  • instanceof
  • typeof
  • in
  • new_func
  • new_funcexp
  • new_error

I also fixed formatting on some existing opcode docs.

  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitMove): (KJS::CodeGenerator::emitNot): (KJS::CodeGenerator::emitPreInc): (KJS::CodeGenerator::emitPreDec): (KJS::CodeGenerator::emitPostInc): (KJS::CodeGenerator::emitPostDec): (KJS::CodeGenerator::emitToJSNumber): (KJS::CodeGenerator::emitNegate): (KJS::CodeGenerator::emitBitNot): (KJS::CodeGenerator::emitInstanceOf): (KJS::CodeGenerator::emitTypeOf): (KJS::CodeGenerator::emitIn): (KJS::CodeGenerator::emitLoad): (KJS::CodeGenerator::emitNewObject): (KJS::CodeGenerator::emitNewArray): (KJS::CodeGenerator::emitNewRegExp): (KJS::CodeGenerator::emitNewError):
  • VM/CodeGenerator.h: (KJS::CodeGenerator::scopeDepth): (KJS::CodeGenerator::addVar):
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • VM/Opcode.h:
  • kjs/nodes.cpp: (KJS::Node::emitThrowError): (KJS::RegExpNode::emitCode): (KJS::TypeOfValueNode::emitCode): (KJS::UnaryPlusNode::emitCode): (KJS::NegateNode::emitCode): (KJS::BitwiseNotNode::emitCode): (KJS::LogicalNotNode::emitCode): (KJS::InstanceOfNode::emitCode): (KJS::InNode::emitCode):
11:03 PM Changeset in webkit [33330] by mrowe@apple.com
  • 2 edits
    2 adds in branches/squirrelfish/JavaScriptCore

2008-05-03 Maciej Stachowiak <mjs@apple.com>

Reviewed by Geoff and Sam.

  • generate HTML bytecode docs at build time
  • DerivedSources.make:
  • docs: Added.
  • docs/make-bytecode-docs.pl: Added.
11:03 PM Changeset in webkit [33329] by mrowe@apple.com
  • 8 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam Weinig.

Update ExecState::m_scopeChain when switching scope chains inside the
machine.

This fixes uses of lexicalGlobalObject, such as, in a subframe

alert(top.makeArray() instanceof Array ? "FAIL" : "PASS");

and a bunch of the security failures listed in
https://bugs.webkit.org/show_bug.cgi?id=18870. (Those tests still fail,
seemingly because of regressions in exception messages).

SunSpider reports no change.

  • VM/Machine.cpp: Factored out scope chain updating into a common function that takes care to update ExecState::m_scopeChain, too.
  • kjs/ExecState.h: I made Machine a friend of ExecState so that Machine could update ExecState::m_scopeChain, even though that value is read-only for everyone else.
  • kjs/JSGlobalObject.h: (KJS::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData): Changed this client to be a little friendlier to ExecState's internal storage type for scope chain data.
11:03 PM Changeset in webkit [33328] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam Weinig.

Fixed https://bugs.webkit.org/show_bug.cgi?id=18876
Squirrelfish: ScopeChainNode leak in op_jmp_scopes.

SunSpider reports no change.

  • VM/Machine.cpp: (KJS::Machine::privateExecute): Don't construct a ScopeChain object, since the direct threaded interpreter will goto across its destructor.
11:03 PM Changeset in webkit [33327] by mrowe@apple.com
  • 8 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

A bit more efficient fix than r32832: Don't copy globals into function
register files; instead, have the RegisterFileStack track only the base
of the last *global* register file, so the global object's register
references stay good.

SunSpider reports a .3% speedup. Not sure what that's about.

11:03 PM Changeset in webkit [33326] by mrowe@apple.com
  • 6 edits in branches/squirrelfish/JavaScriptCore

Bug 18864: SquirrelFish: Support getter and setter definition in object literals
<https://bugs.webkit.org/show_bug.cgi?id=18864>

Reviewed by Maciej

Add new opcodes to allow us to add getters and setters to an object. These are
only used by the codegen for object literals.

11:03 PM Changeset in webkit [33325] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

2008-05-02 Maciej Stachowiak <mjs@apple.com>

Reviewed by Oliver.

  • properly copy globals into and out of implicit call register files, otherwise they will fail at global lookup

Fixes fast/js/array-tostring-and-join.html layout test.

  • VM/RegisterFileStack.cpp: (KJS::RegisterFileStack::pushGlobalRegisterFile): (KJS::RegisterFileStack::popGlobalRegisterFile): (KJS::RegisterFileStack::pushFunctionRegisterFile): (KJS::RegisterFileStack::popFunctionRegisterFile):
11:03 PM Changeset in webkit [33324] by mrowe@apple.com
  • 5 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

Fixed https://bugs.webkit.org/show_bug.cgi?id=18822
SQUIRRELFISH: incorrect eval used in some cases

Changed all code inside the machine to fetch the lexical global object
directly from the scope chain, instead of from the ExecState.

Clients who fetch the lexical global object through the ExecState
still don't work.

SunSpider reports no change.

  • VM/Machine.cpp: (KJS::Machine::privateExecute): Fetch the lexical global object from the scope chain.
  • kjs/ExecState.h: (KJS::ExecState::ExecState::lexicalGlobalObject): Moved the logic for this function into ScopeChainNode, but kept this function around to support existing clients.
11:03 PM Changeset in webkit [33323] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Rubber stamped by Oliver Hunt.

Removed ExecState.cpp from AllInOneFile.cpp, for a .2% speedup.

11:03 PM Changeset in webkit [33322] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/LayoutTests

2008-05-01 Maciej Stachowiak <mjs@apple.com>

Reviewed by Oliver.

  • bump up the numbers in this test to account for our now much higher recursion capability.
  • fast/js/deep-recursion-test.html:
11:03 PM Changeset in webkit [33321] by mrowe@apple.com
  • 6 edits in branches/squirrelfish/JavaScriptCore

Bug 18827: SquirrelFish: Prevent getters and setters from destroying the current RegisterFile
<https://bugs.webkit.org/show_bug.cgi?id=18827>

Reviewed by Maciej and Geoff

Remove safe/unsafe RegisterFile concept, and instead just add additional
logic to ensure we always push/pop RegisterFiles when executing getters
and setters, similar to the logic for valueOf and toString.

11:03 PM Changeset in webkit [33320] by mrowe@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

Rename unsafeForReentry to safeForReentry to avoid double negatives.

RS=Geoff

11:03 PM Changeset in webkit [33319] by mrowe@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

Bug 18827: SquirrelFish: Prevent getters and setters from destroying the current RegisterFile
<https://bugs.webkit.org/show_bug.cgi?id=18827>

Reviewed by Maciej

This patch makes getters and setters work. It does this by
tracking whether the RegisterFile is "safe", that is whether
the interpreter is in a state that in which it can handle
the RegisterFile being reallocated.

11:03 PM Changeset in webkit [33318] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Release build fix: Always compile in "isGlobalObject", since it's
listed in our .exp file.

  • kjs/ExecState.cpp: (KJS::ExecState::isGlobalObject):
  • kjs/ExecState.h:
11:03 PM Changeset in webkit [33317] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

Minor code restructuring to prepare for getters and setters,
also helps exception semantics a bit.

Reviewed by Maciej

11:03 PM Changeset in webkit [33316] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Fixed tyop.

  • kjs/ExecState.h:
11:02 PM Changeset in webkit [33315] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Debug build fix: export a missing symbol.

11:02 PM Changeset in webkit [33314] by mrowe@apple.com
  • 7 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

A little more ExecState refactoring: Now, only the global object creates
an ExecState.

Also inlined ExecState::lexicalGlobalObject().

SunSpider reports no change.

11:02 PM Changeset in webkit [33313] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/WebKit/mac

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

Build fix: #ifdef'd out some code that doesn't work anymore.

11:02 PM Changeset in webkit [33312] by mrowe@apple.com
  • 5 edits in branches/squirrelfish/WebCore

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

Build fix: supply a parameter that used to be implicit to
Interpreter::evaluate.

11:02 PM Changeset in webkit [33311] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

WebCore build fix: forward-declare ScopeChain.

  • kjs/interpreter.h:
11:02 PM Changeset in webkit [33310] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/WebCore

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

Build fix: #ifdef'd out some code that doesn't work anymore.

  • bindings/objc/WebScriptObject.mm: (+[WebScriptObject throwException:]): (-[WebScriptObject setException:]):
11:02 PM Changeset in webkit [33309] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptGlue

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

Build fix: supply missing parameter that used to be implicit.

  • JSRun.cpp: (JSRun::Evaluate):
11:02 PM Changeset in webkit [33308] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Build fix for JavaScriptGlue: export a missing symbol.

11:02 PM Changeset in webkit [33307] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/WebKit/mac

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

Reviewed by Oliver Hunt.

#ifdef'd out some debugger code that doesn't work anymore.

  • WebView/WebScriptDebugDelegate.mm: (-[WebScriptCallFrame scopeChain]):
11:02 PM Changeset in webkit [33306] by mrowe@apple.com
  • 24 edits
    2 deletes in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

Removed a lot of unused bits from ExecState, moving them into
OldInterpreterExecState, the fake scaffolding class.

The clutter was making it hard to see the forest from the trees.

.4% SunSpider speedup, probably because ExecState::lexicalGlobalObject()
is faster now.

11:02 PM Changeset in webkit [33305] by mrowe@apple.com
  • 9 edits in branches/squirrelfish/JavaScriptCore

Bug 18643: SQUIRRELFISH: need to support implicit function calls (valueOf, toString, getters/setters)
<https://bugs.webkit.org/show_bug.cgi?id=18643>

Reviewed by Maciej

Prevent static slot optimisation for new variables and functions in
globally re-entrant code called from an an implicit function call.

This is necessary to prevent us from needing to resize the global
slot portion of the root RegisterFile during an implicit (and hence
unguarded) function call.

11:02 PM Changeset in webkit [33304] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

In nested program code, don't propogate "this" back to the parent
register file. ("this" should remain constant in the parent register
file, regardless of the scripts it invokes.)

  • VM/RegisterFile.cpp: (KJS::RegisterFile::copyGlobals):
11:02 PM Changeset in webkit [33303] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

Restore base pointer when popping a global RegisterFile

Reviewed by Geoff

11:02 PM Changeset in webkit [33302] by mrowe@apple.com
  • 5 edits in branches/squirrelfish/JavaScriptCore

Bug 18643: SQUIRRELFISH: need to support implicit function calls (valueOf, toString, getters/setters)
<https://bugs.webkit.org/show_bug.cgi?id=18643>

Reviewed by Geoff

Partial fix. This results in all implicit calls to toString or valueOf
executing in a separate RegisterFile, so ensuring that the the pointers
in the triggering interpreter don't get trashed. This still leaves the
task of preventing new global re-entry from toString and valueOf from
clobbering the RegisterFile.

11:02 PM Changeset in webkit [33301] by mrowe@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.

Simplified activation object a bit: No need to store the callee
in the activation object -- we can pull it out of the call frame
when needed, instead.

SunSpider reports no change.

11:02 PM Changeset in webkit [33300] by mrowe@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.

RS by Oliver Hunt on moving JSArguments.cpp out of AllInOneFile.cpp.

Substantially more handling of "arguments": "arguments" works fully
now, but "f.arguments" still doesn't work.

Fixes 10 regression tests.

SunSpider reports no regression.

  • kjs/JSActivation.cpp: (KJS::JSActivation::createArgumentsObject): Reconstruct an arguments List to pass to the arguments object constructor.
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • kjs/AllInOneFile.cpp: Removed JSActivation.cpp from AllInOneFile.cpp because that seems to make GCC happy. (Previously, I had added JSActivation.cpp to AllInOneFile.cpp because *that* seemed to make GCC happy. So it goes.)
11:02 PM Changeset in webkit [33299] by mrowe@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.

Groundwork for more handling of "arguments". I'm not checking in the
actual handling of "arguments" yet, because it still needs a little
fiddling to avoid a performance regression.

SunSpider reports no change.

  • VM/Machine.cpp: (KJS::initializeCallFrame): Put argc in the register file, so the arguments object can find it later, to determine arguments.length.
  • kjs/nodes.h: (KJS::FunctionBodyNode::): Added a special code accessor for when you know the code has already been generated, and you don't have a scopeChain to supply for potential code generation. (This is the case when the activation object creates the arguments object.)
11:02 PM Changeset in webkit [33298] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

Replace unsafe use of auto_ptr in Vector with manual memory
management.

Reviewed by Geoff

11:02 PM Changeset in webkit [33297] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej.

Bug 18746: SQUIRRELFISH: indirect eval used when direct eval should be used
<https://bugs.webkit.org/show_bug.cgi?id=18746>

Change the base to the correct value of the 'this' object after the direct
eval test instead of before.

Fixes 5 layout tests.

  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • kjs/nodes.cpp: (KJS::EvalFunctionCallNode::emitCode):
11:02 PM Changeset in webkit [33296] by mrowe@apple.com
  • 5 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.

  • document all property getting, setting and deleting opcodes

(And fix function parameter names to match corresponding opcode parameter names.)

  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitResolve): (KJS::CodeGenerator::emitResolveBase): (KJS::CodeGenerator::emitResolveBaseAndProperty): (KJS::CodeGenerator::emitResolveBaseAndFunc): (KJS::CodeGenerator::emitGetPropId): (KJS::CodeGenerator::emitPutPropId): (KJS::CodeGenerator::emitDeletePropId): (KJS::CodeGenerator::emitPutPropVal):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::resolve): (KJS::resolveBase): (KJS::resolveBaseAndProperty): (KJS::resolveBaseAndFunc): (KJS::Machine::privateExecute):
  • kjs/nodes.cpp: (KJS::ResolveNode::emitCode): (KJS::ArrayNode::emitCode): (KJS::PropertyListNode::emitCode): (KJS::BracketAccessorNode::emitCode): (KJS::EvalFunctionCallNode::emitCode): (KJS::FunctionCallResolveNode::emitCode): (KJS::FunctionCallBracketNode::emitCode): (KJS::PostIncResolveNode::emitCode): (KJS::PostDecResolveNode::emitCode): (KJS::PostIncBracketNode::emitCode): (KJS::PostDecBracketNode::emitCode): (KJS::PostIncDotNode::emitCode): (KJS::PostDecDotNode::emitCode): (KJS::DeleteResolveNode::emitCode): (KJS::TypeOfResolveNode::emitCode): (KJS::PreIncResolveNode::emitCode): (KJS::PreDecResolveNode::emitCode): (KJS::PreIncBracketNode::emitCode): (KJS::PreDecBracketNode::emitCode): (KJS::AssignResolveNode::emitCode): (KJS::AssignDotNode::emitCode): (KJS::ReadModifyDotNode::emitCode): (KJS::AssignBracketNode::emitCode): (KJS::ReadModifyBracketNode::emitCode): (KJS::ConstDeclNode::emitCodeSingle):
11:01 PM Changeset in webkit [33295] by mrowe@apple.com
  • 9 edits
    2 adds in branches/squirrelfish

Bug 18628: SQUIRRELFISH: need to support recursion limit
<https://bugs.webkit.org/show_bug.cgi?id=18628>

Reviewed by Maciej.

Basically completes recursion limiting. There is still some
tuning we may want to do to make things better in the face of
very bad code, but certainly nothing worse than anything already
possible in trunk.

Also fixes a WebKit test by fixing the exception text :D

11:01 PM Changeset in webkit [33294] by mrowe@apple.com
  • 1 edit in branches/squirrelfish/JavaScriptCore/ChangeLog

Fix the changelog

11:01 PM Changeset in webkit [33293] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

Bug 18736: SQUIRRELFISH: switch statements with no default have incorrect codegen
<https://bugs.webkit.org/show_bug.cgi?id=18736>

Reviewed by Geoff

Put a limit on the level of reentry recursion. 128 levels of re-entrant recursion
seems reasonable as it is greater than the old eval limit, and a long way short of
the reentry depth needed to overflow the stack.

11:01 PM Changeset in webkit [33292] by mrowe@apple.com
  • 5 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam Weinig.

A tiny bit of cleanup to the regexp code.

Removed some static_cast.

Removed createRegExpImp because it's no longer used.

11:01 PM Changeset in webkit [33291] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

Bug 18736: SQUIRRELFISH: switch statements with no default have incorrect codegen
<https://bugs.webkit.org/show_bug.cgi?id=18736>

Reviewed by Maciej

Ensure the "default" target is correct in the absence of an explicit default handler.

11:01 PM Changeset in webkit [33290] by mrowe@apple.com
  • 1 edit in branches/squirrelfish/JavaScriptCore/ChangeLog

Fixing the ChangeLog

11:01 PM Changeset in webkit [33289] by mrowe@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

Bug 18732: SQUIRRELFISH: exceptions thrown by native constructors are ignored
<https://bugs.webkit.org/show_bug.cgi?id=18732>

Reviewed by Maciej

More bounds checking.

11:01 PM Changeset in webkit [33288] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.

  • fix signal catching magic

The signal handlers are restored to _exit but are only set when
running under run-javascriptcore-tests. fprintf from a signal
handler is not safe.

  • kjs/testkjs.cpp: (main): (parseArguments):
  • tests/mozilla/jsDriver.pl:
11:01 PM Changeset in webkit [33287] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej.

Bug 18732: SQUIRRELFISH: exceptions thrown by native constructors are ignored
<https://bugs.webkit.org/show_bug.cgi?id=18732>

Fixes another regression test.

  • VM/Machine.cpp: (KJS::Machine::privateExecute):
11:01 PM Changeset in webkit [33286] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej.

Bug 18728: SQUIRRELFISH: invalid regular expression constants should throw exceptions
<https://bugs.webkit.org/show_bug.cgi?id=18728>

Fixes another regression test.

  • kjs/nodes.cpp: (KJS::RegExpNode::emitCode):
11:01 PM Changeset in webkit [33285] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoffrey Garen.

Bug 18735: SQUIRRELFISH: closures are sometimes given an incorrect 'this' value when called
<https://bugs.webkit.org/show_bug.cgi?id=18735>

The overloaded toThisObject method was not copied over to JSActivation.

Fixes two regression tests.

  • kjs/JSActivation.cpp: (KJS::JSActivation::toThisObject):
  • kjs/JSActivation.h:
11:01 PM Changeset in webkit [33284] by mrowe@apple.com
  • 5 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

Added support for arguments.callee.

11:01 PM Changeset in webkit [33283] by mrowe@apple.com
  • 6 edits in branches/squirrelfish/JavaScriptCore

Bug 18628: SQUIRRELFISH: need to support recursion limit
<https://bugs.webkit.org/show_bug.cgi?id=18628>

Reviewed by Maciej

Partial fix -- this gets us some of the required bounds checking, but not
complete coverage. But it does manage to do them without regressing :D

11:01 PM Changeset in webkit [33282] by mrowe@apple.com
  • 1 edit in branches/squirrelfish/JavaScriptCore/ChangeLog

Fixed up ChangeLog

11:01 PM Changeset in webkit [33281] by mrowe@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.

Bug 18717: SQUIRRELFISH: eval returns the wrong value for a variable declaration statement
<https://bugs.webkit.org/show_bug.cgi?id=18717>

Fixes a regression test, but exposes the failure of another due to the
lack of getters and setters.

  • kjs/nodes.cpp: (KJS::ConstDeclNode::emitCodeSingle): (KJS::ConstDeclNode::emitCode): (KJS::ConstStatementNode::emitCode): (KJS::VarStatementNode::emitCode):
  • kjs/nodes.h:
11:01 PM Changeset in webkit [33280] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Oliver.

Bug 18717: SQUIRRELFISH: eval returns the wrong value for a variable declaration statement
<https://bugs.webkit.org/show_bug.cgi?id=18717>

Fixes a regression test, but exposes the failure of another due to the
lack of getters and setters.

11:01 PM Changeset in webkit [33279] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam Weinig.

Print a CRASH statement when crashing, so test failures are not a
mystery.

  • kjs/testkjs.cpp: (handleCrash): (main):
11:01 PM Changeset in webkit [33278] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoffrey Garen.

Bug 18716: SQUIRRELFISH: typeof should return undefined for an undefined variable reference
<https://bugs.webkit.org/show_bug.cgi?id=18716>

This fixes 2 more regression tests.

  • kjs/nodes.cpp: (KJS::TypeOfResolveNode::emitCode):
11:01 PM Changeset in webkit [33277] by mrowe@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam Weinig.

Put the callee in the call frame.

Necessary in order to support "arguments" and "arguments.callee".

Also fixes a latent GC bug, where an executing function could be
subject to GC if the register holding it were overwritten. Here's
an example that would have caused problems:

function f()
{

Flood the machine stack to eliminate any old pointers to f.
g.call({});

Overwrite f in the register file.
f = 1;

Force a GC.
for (var i = 0; i < 5000; ++i) {

({});

}

Welcome to crash-ville.

}

function g()
{
}

f();

  • VM/Machine.h: Changed the order of arguments to execute(FunctionBodyNode*...) to match the other execute functions.
  • kjs/function.cpp: Updated to match new argument requirements from execute(FunctionBodyNode*...). Renamed newObj to thisObj to match the rest of JavaScriptCore.

SunSpider reports no change.

11:01 PM Changeset in webkit [33276] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej.

Bug 18707: SQUIRRELFISH: eval always performs toString() on its argument
<https://bugs.webkit.org/show_bug.cgi?id=18707>

This fixes 4 more regression tests.

  • VM/Machine.cpp: (KJS::eval):
11:01 PM Changeset in webkit [33275] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.

  • fix logic bug in SegmentedVector::grow which would sometimes fail to resize a segment when needed

Fixes 3 JSC tests.

  • VM/SegmentedVector.h: (KJS::SegmentedVector::grow):
11:01 PM Changeset in webkit [33274] by mrowe@apple.com
  • 6 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.

Degenerate handling of "arguments" as a property of the activation
object. Currently, we just return a vanilla object.

SunSpider reports no change.

Fixes:

ecma_3/Function/regress-94506.js.

Reveals to have been secretly broken:

ecma_3/Function/15.3.4.3-1.js
ecma_3/Function/15.3.4.4-1.js

These tests were passing incorrectly. testkjs creates a global array
named "arguments" to hold command-line arguments. That array was
tricking these tests into thinking that an arguments object with length
0 had been created. Since our new vanilla object shadows the global
property named arguments, that object no longer fools these tests into
passing.

Net change: +1 failing test.

  • kjs/AllInOneFile.cpp: Had to put JSActivation.cpp into AllInOneFile.cpp to solve a surprising 8.6% regression in bitops-3bit-bits-in-byte.
11:01 PM Changeset in webkit [33273] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.

  • save and restore callFrame
  • VM/Machine.cpp: (KJS::slideRegisterWindowForCall): (KJS::Machine::execute): (KJS::Machine::privateExecute):
  • kjs/testkjs.cpp: (main):
11:00 PM Changeset in webkit [33272] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.

Fixed scopes for named function expressions.

Fixes one regression test.

Two changes here:

(1) The function's name is supposed to have attributes DontDelete,
ReadOnly, regardless of the type of code executing.

(2) Push the name object on the function's scope chain, rather than
the ExecState's scope chain because, well, that's where it belongs.

11:00 PM Changeset in webkit [33271] by mrowe@apple.com
  • 6 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

Inlined JSObject::putDirect, for a .4% SunSpider speedup.

I did this as a first step toward removing nodes.cpp from
AllInOneFile.cpp, but I'm putting that larger project aside for now.

11:00 PM Changeset in webkit [33270] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Rubber stamped by Geoff.

  • add OldInterpreterExecState class and use it in dead code

This will allow removing things from the real ExecState class
without having to figure out how to remove all this code without
getting a perf regression.

  • kjs/nodes.cpp: (KJS::ExpressionNode::evaluateToNumber): (KJS::ExpressionNode::evaluateToBoolean): (KJS::ExpressionNode::evaluateToInt32): (KJS::ExpressionNode::evaluateToUInt32): (KJS::Node::setErrorCompletion): (KJS::Node::throwError): (KJS::Node::throwUndefinedVariableError): (KJS::Node::handleException): (KJS::Node::rethrowException): (KJS::BreakpointCheckStatement::execute): (KJS::BreakpointCheckStatement::optimizeVariableAccess): (KJS::NullNode::evaluate): (KJS::FalseNode::evaluate): (KJS::TrueNode::evaluate): (KJS::NumberNode::evaluate): (KJS::NumberNode::evaluateToNumber): (KJS::NumberNode::evaluateToBoolean): (KJS::NumberNode::evaluateToInt32): (KJS::NumberNode::evaluateToUInt32): (KJS::ImmediateNumberNode::evaluate): (KJS::ImmediateNumberNode::evaluateToInt32): (KJS::ImmediateNumberNode::evaluateToUInt32): (KJS::StringNode::evaluate): (KJS::StringNode::evaluateToNumber): (KJS::StringNode::evaluateToBoolean): (KJS::RegExpNode::evaluate): (KJS::ThisNode::evaluate): (KJS::ResolveNode::inlineEvaluate): (KJS::ResolveNode::evaluate): (KJS::ResolveNode::evaluateToNumber): (KJS::ResolveNode::evaluateToBoolean): (KJS::ResolveNode::evaluateToInt32): (KJS::ResolveNode::evaluateToUInt32): (KJS::getSymbolTableEntry): (KJS::ResolveNode::optimizeVariableAccess): (KJS::LocalVarAccessNode::inlineEvaluate): (KJS::LocalVarAccessNode::evaluate): (KJS::LocalVarAccessNode::evaluateToNumber): (KJS::LocalVarAccessNode::evaluateToBoolean): (KJS::LocalVarAccessNode::evaluateToInt32): (KJS::LocalVarAccessNode::evaluateToUInt32): (KJS::getNonLocalSymbol): (KJS::ScopedVarAccessNode::inlineEvaluate): (KJS::ScopedVarAccessNode::evaluate): (KJS::ScopedVarAccessNode::evaluateToNumber): (KJS::ScopedVarAccessNode::evaluateToBoolean): (KJS::ScopedVarAccessNode::evaluateToInt32): (KJS::ScopedVarAccessNode::evaluateToUInt32): (KJS::NonLocalVarAccessNode::inlineEvaluate): (KJS::NonLocalVarAccessNode::evaluate): (KJS::NonLocalVarAccessNode::evaluateToNumber): (KJS::NonLocalVarAccessNode::evaluateToBoolean): (KJS::NonLocalVarAccessNode::evaluateToInt32): (KJS::NonLocalVarAccessNode::evaluateToUInt32): (KJS::ElementNode::optimizeVariableAccess): (KJS::ElementNode::evaluate): (KJS::ArrayNode::optimizeVariableAccess): (KJS::ArrayNode::evaluate): (KJS::ObjectLiteralNode::optimizeVariableAccess): (KJS::ObjectLiteralNode::evaluate): (KJS::PropertyListNode::optimizeVariableAccess): (KJS::PropertyListNode::evaluate): (KJS::PropertyNode::optimizeVariableAccess): (KJS::PropertyNode::evaluate): (KJS::BracketAccessorNode::optimizeVariableAccess): (KJS::BracketAccessorNode::inlineEvaluate): (KJS::BracketAccessorNode::evaluate): (KJS::BracketAccessorNode::evaluateToNumber): (KJS::BracketAccessorNode::evaluateToBoolean): (KJS::BracketAccessorNode::evaluateToInt32): (KJS::BracketAccessorNode::evaluateToUInt32): (KJS::DotAccessorNode::optimizeVariableAccess): (KJS::DotAccessorNode::inlineEvaluate): (KJS::DotAccessorNode::evaluate): (KJS::DotAccessorNode::evaluateToNumber): (KJS::DotAccessorNode::evaluateToBoolean): (KJS::DotAccessorNode::evaluateToInt32): (KJS::DotAccessorNode::evaluateToUInt32): (KJS::ArgumentListNode::optimizeVariableAccess): (KJS::ArgumentListNode::evaluateList): (KJS::ArgumentsNode::optimizeVariableAccess): (KJS::NewExprNode::optimizeVariableAccess): (KJS::NewExprNode::inlineEvaluate): (KJS::NewExprNode::evaluate): (KJS::NewExprNode::evaluateToNumber): (KJS::NewExprNode::evaluateToBoolean): (KJS::NewExprNode::evaluateToInt32): (KJS::NewExprNode::evaluateToUInt32): (KJS::ExpressionNode::resolveAndCall): (KJS::EvalFunctionCallNode::optimizeVariableAccess): (KJS::EvalFunctionCallNode::evaluate): (KJS::FunctionCallValueNode::optimizeVariableAccess): (KJS::FunctionCallValueNode::evaluate): (KJS::FunctionCallResolveNode::optimizeVariableAccess): (KJS::FunctionCallResolveNode::inlineEvaluate): (KJS::FunctionCallResolveNode::evaluate): (KJS::FunctionCallResolveNode::evaluateToNumber): (KJS::FunctionCallResolveNode::evaluateToBoolean): (KJS::FunctionCallResolveNode::evaluateToInt32): (KJS::FunctionCallResolveNode::evaluateToUInt32): (KJS::LocalVarFunctionCallNode::inlineEvaluate): (KJS::LocalVarFunctionCallNode::evaluate): (KJS::LocalVarFunctionCallNode::evaluateToNumber): (KJS::LocalVarFunctionCallNode::evaluateToBoolean): (KJS::LocalVarFunctionCallNode::evaluateToInt32): (KJS::LocalVarFunctionCallNode::evaluateToUInt32): (KJS::ScopedVarFunctionCallNode::inlineEvaluate): (KJS::ScopedVarFunctionCallNode::evaluate): (KJS::ScopedVarFunctionCallNode::evaluateToNumber): (KJS::ScopedVarFunctionCallNode::evaluateToBoolean): (KJS::ScopedVarFunctionCallNode::evaluateToInt32): (KJS::ScopedVarFunctionCallNode::evaluateToUInt32): (KJS::NonLocalVarFunctionCallNode::inlineEvaluate): (KJS::NonLocalVarFunctionCallNode::evaluate): (KJS::NonLocalVarFunctionCallNode::evaluateToNumber): (KJS::NonLocalVarFunctionCallNode::evaluateToBoolean): (KJS::NonLocalVarFunctionCallNode::evaluateToInt32): (KJS::NonLocalVarFunctionCallNode::evaluateToUInt32): (KJS::FunctionCallBracketNode::optimizeVariableAccess): (KJS::FunctionCallBracketNode::evaluate): (KJS::FunctionCallDotNode::optimizeVariableAccess): (KJS::FunctionCallDotNode::inlineEvaluate): (KJS::FunctionCallDotNode::evaluate): (KJS::FunctionCallDotNode::evaluateToNumber): (KJS::FunctionCallDotNode::evaluateToBoolean): (KJS::FunctionCallDotNode::evaluateToInt32): (KJS::FunctionCallDotNode::evaluateToUInt32): (KJS::PostIncResolveNode::optimizeVariableAccess): (KJS::PostIncResolveNode::evaluate): (KJS::PostIncLocalVarNode::evaluate): (KJS::PostDecResolveNode::optimizeVariableAccess): (KJS::PostDecResolveNode::evaluate): (KJS::PostDecLocalVarNode::evaluate): (KJS::PostDecLocalVarNode::inlineEvaluateToNumber): (KJS::PostDecLocalVarNode::evaluateToNumber): (KJS::PostDecLocalVarNode::evaluateToBoolean): (KJS::PostDecLocalVarNode::evaluateToInt32): (KJS::PostDecLocalVarNode::evaluateToUInt32): (KJS::PostfixBracketNode::optimizeVariableAccess): (KJS::PostIncBracketNode::evaluate): (KJS::PostDecBracketNode::evaluate): (KJS::PostfixDotNode::optimizeVariableAccess): (KJS::PostIncDotNode::evaluate): (KJS::PostDecDotNode::evaluate): (KJS::PostfixErrorNode::evaluate): (KJS::DeleteResolveNode::optimizeVariableAccess): (KJS::DeleteResolveNode::evaluate): (KJS::LocalVarDeleteNode::evaluate): (KJS::DeleteBracketNode::optimizeVariableAccess): (KJS::DeleteBracketNode::evaluate): (KJS::DeleteDotNode::optimizeVariableAccess): (KJS::DeleteDotNode::evaluate): (KJS::DeleteValueNode::optimizeVariableAccess): (KJS::DeleteValueNode::evaluate): (KJS::VoidNode::optimizeVariableAccess): (KJS::VoidNode::evaluate): (KJS::TypeOfValueNode::optimizeVariableAccess): (KJS::TypeOfResolveNode::optimizeVariableAccess): (KJS::LocalVarTypeOfNode::evaluate): (KJS::TypeOfResolveNode::evaluate): (KJS::TypeOfValueNode::evaluate): (KJS::PreIncResolveNode::optimizeVariableAccess): (KJS::PreIncLocalVarNode::evaluate): (KJS::PreIncResolveNode::evaluate): (KJS::PreDecResolveNode::optimizeVariableAccess): (KJS::PreDecLocalVarNode::evaluate): (KJS::PreDecResolveNode::evaluate): (KJS::PreIncConstNode::evaluate): (KJS::PreDecConstNode::evaluate): (KJS::PostIncConstNode::evaluate): (KJS::PostDecConstNode::evaluate): (KJS::PrefixBracketNode::optimizeVariableAccess): (KJS::PreIncBracketNode::evaluate): (KJS::PreDecBracketNode::evaluate): (KJS::PrefixDotNode::optimizeVariableAccess): (KJS::PreIncDotNode::evaluate): (KJS::PreDecDotNode::evaluate): (KJS::PrefixErrorNode::evaluate): (KJS::UnaryPlusNode::optimizeVariableAccess): (KJS::UnaryPlusNode::evaluate): (KJS::UnaryPlusNode::evaluateToBoolean): (KJS::UnaryPlusNode::evaluateToNumber): (KJS::UnaryPlusNode::evaluateToInt32): (KJS::UnaryPlusNode::evaluateToUInt32): (KJS::NegateNode::optimizeVariableAccess): (KJS::NegateNode::evaluate): (KJS::NegateNode::evaluateToNumber): (KJS::BitwiseNotNode::optimizeVariableAccess): (KJS::BitwiseNotNode::inlineEvaluateToInt32): (KJS::BitwiseNotNode::evaluate): (KJS::BitwiseNotNode::evaluateToNumber): (KJS::BitwiseNotNode::evaluateToBoolean): (KJS::BitwiseNotNode::evaluateToInt32): (KJS::BitwiseNotNode::evaluateToUInt32): (KJS::LogicalNotNode::optimizeVariableAccess): (KJS::LogicalNotNode::evaluate): (KJS::LogicalNotNode::evaluateToBoolean): (KJS::MultNode::optimizeVariableAccess): (KJS::MultNode::inlineEvaluateToNumber): (KJS::MultNode::evaluate): (KJS::MultNode::evaluateToNumber): (KJS::MultNode::evaluateToBoolean): (KJS::MultNode::evaluateToInt32): (KJS::MultNode::evaluateToUInt32): (KJS::DivNode::optimizeVariableAccess): (KJS::DivNode::inlineEvaluateToNumber): (KJS::DivNode::evaluate): (KJS::DivNode::evaluateToNumber): (KJS::DivNode::evaluateToInt32): (KJS::DivNode::evaluateToUInt32): (KJS::ModNode::optimizeVariableAccess): (KJS::ModNode::inlineEvaluateToNumber): (KJS::ModNode::evaluate): (KJS::ModNode::evaluateToNumber): (KJS::ModNode::evaluateToBoolean): (KJS::ModNode::evaluateToInt32): (KJS::ModNode::evaluateToUInt32): (KJS::throwOutOfMemoryErrorToNumber): (KJS::addSlowCase): (KJS::addSlowCaseToNumber): (KJS::add): (KJS::addToNumber): (KJS::AddNode::optimizeVariableAccess): (KJS::AddNode::evaluate): (KJS::AddNode::inlineEvaluateToNumber): (KJS::AddNode::evaluateToNumber): (KJS::AddNode::evaluateToInt32): (KJS::AddNode::evaluateToUInt32): (KJS::AddNumbersNode::inlineEvaluateToNumber): (KJS::AddNumbersNode::evaluate): (KJS::AddNumbersNode::evaluateToNumber): (KJS::AddNumbersNode::evaluateToInt32): (KJS::AddNumbersNode::evaluateToUInt32): (KJS::AddStringsNode::evaluate): (KJS::AddStringLeftNode::evaluate): (KJS::AddStringRightNode::evaluate): (KJS::SubNode::optimizeVariableAccess): (KJS::SubNode::inlineEvaluateToNumber): (KJS::SubNode::evaluate): (KJS::SubNode::evaluateToNumber): (KJS::SubNode::evaluateToInt32): (KJS::SubNode::evaluateToUInt32): (KJS::LeftShiftNode::optimizeVariableAccess): (KJS::LeftShiftNode::inlineEvaluateToInt32): (KJS::LeftShiftNode::evaluate): (KJS::LeftShiftNode::evaluateToNumber): (KJS::LeftShiftNode::evaluateToInt32): (KJS::LeftShiftNode::evaluateToUInt32): (KJS::RightShiftNode::optimizeVariableAccess): (KJS::RightShiftNode::inlineEvaluateToInt32): (KJS::RightShiftNode::evaluate): (KJS::RightShiftNode::evaluateToNumber): (KJS::RightShiftNode::evaluateToInt32): (KJS::RightShiftNode::evaluateToUInt32): (KJS::UnsignedRightShiftNode::optimizeVariableAccess): (KJS::UnsignedRightShiftNode::inlineEvaluateToUInt32): (KJS::UnsignedRightShiftNode::evaluate): (KJS::UnsignedRightShiftNode::evaluateToNumber): (KJS::UnsignedRightShiftNode::evaluateToInt32): (KJS::UnsignedRightShiftNode::evaluateToUInt32): (KJS::lessThan): (KJS::lessThanEq): (KJS::LessNode::optimizeVariableAccess): (KJS::LessNode::inlineEvaluateToBoolean): (KJS::LessNode::evaluate): (KJS::LessNode::evaluateToBoolean): (KJS::LessNumbersNode::inlineEvaluateToBoolean): (KJS::LessNumbersNode::evaluate): (KJS::LessNumbersNode::evaluateToBoolean): (KJS::LessStringsNode::inlineEvaluateToBoolean): (KJS::LessStringsNode::evaluate): (KJS::LessStringsNode::evaluateToBoolean): (KJS::GreaterNode::optimizeVariableAccess): (KJS::GreaterNode::inlineEvaluateToBoolean): (KJS::GreaterNode::evaluate): (KJS::GreaterNode::evaluateToBoolean): (KJS::LessEqNode::optimizeVariableAccess): (KJS::LessEqNode::inlineEvaluateToBoolean): (KJS::LessEqNode::evaluate): (KJS::LessEqNode::evaluateToBoolean): (KJS::GreaterEqNode::optimizeVariableAccess): (KJS::GreaterEqNode::inlineEvaluateToBoolean): (KJS::GreaterEqNode::evaluate): (KJS::GreaterEqNode::evaluateToBoolean): (KJS::InstanceOfNode::optimizeVariableAccess): (KJS::InstanceOfNode::evaluate): (KJS::InstanceOfNode::evaluateToBoolean): (KJS::InNode::optimizeVariableAccess): (KJS::InNode::evaluate): (KJS::InNode::evaluateToBoolean): (KJS::EqualNode::optimizeVariableAccess): (KJS::EqualNode::inlineEvaluateToBoolean): (KJS::EqualNode::evaluate): (KJS::EqualNode::evaluateToBoolean): (KJS::NotEqualNode::optimizeVariableAccess): (KJS::NotEqualNode::inlineEvaluateToBoolean): (KJS::NotEqualNode::evaluate): (KJS::NotEqualNode::evaluateToBoolean): (KJS::StrictEqualNode::optimizeVariableAccess): (KJS::StrictEqualNode::inlineEvaluateToBoolean): (KJS::StrictEqualNode::evaluate): (KJS::StrictEqualNode::evaluateToBoolean): (KJS::NotStrictEqualNode::optimizeVariableAccess): (KJS::NotStrictEqualNode::inlineEvaluateToBoolean): (KJS::NotStrictEqualNode::evaluate): (KJS::NotStrictEqualNode::evaluateToBoolean): (KJS::BitAndNode::optimizeVariableAccess): (KJS::BitAndNode::evaluate): (KJS::BitAndNode::inlineEvaluateToInt32): (KJS::BitAndNode::evaluateToNumber): (KJS::BitAndNode::evaluateToBoolean): (KJS::BitAndNode::evaluateToInt32): (KJS::BitAndNode::evaluateToUInt32): (KJS::BitXOrNode::optimizeVariableAccess): (KJS::BitXOrNode::inlineEvaluateToInt32): (KJS::BitXOrNode::evaluate): (KJS::BitXOrNode::evaluateToNumber): (KJS::BitXOrNode::evaluateToBoolean): (KJS::BitXOrNode::evaluateToInt32): (KJS::BitXOrNode::evaluateToUInt32): (KJS::BitOrNode::optimizeVariableAccess): (KJS::BitOrNode::inlineEvaluateToInt32): (KJS::BitOrNode::evaluate): (KJS::BitOrNode::evaluateToNumber): (KJS::BitOrNode::evaluateToBoolean): (KJS::BitOrNode::evaluateToInt32): (KJS::BitOrNode::evaluateToUInt32): (KJS::LogicalAndNode::optimizeVariableAccess): (KJS::LogicalAndNode::evaluate): (KJS::LogicalAndNode::evaluateToBoolean): (KJS::LogicalOrNode::optimizeVariableAccess): (KJS::LogicalOrNode::evaluate): (KJS::LogicalOrNode::evaluateToBoolean): (KJS::ConditionalNode::optimizeVariableAccess): (KJS::ConditionalNode::evaluate): (KJS::ConditionalNode::evaluateToBoolean): (KJS::ConditionalNode::evaluateToNumber): (KJS::ConditionalNode::evaluateToInt32): (KJS::ConditionalNode::evaluateToUInt32): (KJS::valueForReadModifyAssignment): (KJS::ReadModifyResolveNode::optimizeVariableAccess): (KJS::AssignResolveNode::optimizeVariableAccess): (KJS::ReadModifyLocalVarNode::evaluate): (KJS::AssignLocalVarNode::evaluate): (KJS::ReadModifyConstNode::evaluate): (KJS::AssignConstNode::evaluate): (KJS::ReadModifyResolveNode::evaluate): (KJS::AssignResolveNode::evaluate): (KJS::AssignDotNode::optimizeVariableAccess): (KJS::AssignDotNode::evaluate): (KJS::ReadModifyDotNode::optimizeVariableAccess): (KJS::ReadModifyDotNode::evaluate): (KJS::AssignErrorNode::evaluate): (KJS::AssignBracketNode::optimizeVariableAccess): (KJS::AssignBracketNode::evaluate): (KJS::ReadModifyBracketNode::optimizeVariableAccess): (KJS::ReadModifyBracketNode::evaluate): (KJS::CommaNode::optimizeVariableAccess): (KJS::CommaNode::evaluate): (KJS::ConstDeclNode::optimizeVariableAccess): (KJS::ConstDeclNode::handleSlowCase): (KJS::ConstDeclNode::evaluateSingle): (KJS::ConstDeclNode::evaluate): (KJS::ConstStatementNode::optimizeVariableAccess): (KJS::ConstStatementNode::execute): (KJS::statementListExecute): (KJS::BlockNode::optimizeVariableAccess): (KJS::BlockNode::execute): (KJS::EmptyStatementNode::execute): (KJS::ExprStatementNode::optimizeVariableAccess): (KJS::ExprStatementNode::execute): (KJS::VarStatementNode::optimizeVariableAccess): (KJS::VarStatementNode::execute): (KJS::IfNode::optimizeVariableAccess): (KJS::IfNode::execute): (KJS::IfElseNode::optimizeVariableAccess): (KJS::IfElseNode::execute): (KJS::DoWhileNode::optimizeVariableAccess): (KJS::DoWhileNode::execute): (KJS::WhileNode::optimizeVariableAccess): (KJS::WhileNode::execute): (KJS::ForNode::optimizeVariableAccess): (KJS::ForNode::execute): (KJS::ForInNode::optimizeVariableAccess): (KJS::ForInNode::execute): (KJS::ContinueNode::execute): (KJS::BreakNode::execute): (KJS::ReturnNode::optimizeVariableAccess): (KJS::ReturnNode::execute): (KJS::WithNode::optimizeVariableAccess): (KJS::WithNode::execute): (KJS::CaseClauseNode::optimizeVariableAccess): (KJS::CaseClauseNode::evaluate): (KJS::CaseClauseNode::executeStatements): (KJS::ClauseListNode::optimizeVariableAccess): (KJS::CaseBlockNode::optimizeVariableAccess): (KJS::CaseBlockNode::executeBlock): (KJS::SwitchNode::optimizeVariableAccess): (KJS::SwitchNode::execute): (KJS::LabelNode::optimizeVariableAccess): (KJS::LabelNode::execute): (KJS::ThrowNode::optimizeVariableAccess): (KJS::ThrowNode::execute): (KJS::TryNode::optimizeVariableAccess): (KJS::TryNode::execute): (KJS::ProgramNode::initializeSymbolTable): (KJS::ScopeNode::optimizeVariableAccess): (KJS::ProgramNode::processDeclarations): (KJS::EvalNode::processDeclarations): (KJS::ProgramNode::execute): (KJS::EvalNode::execute): (KJS::FunctionBodyNodeWithDebuggerHooks::execute): (KJS::FuncDeclNode::execute): (KJS::FuncExprNode::evaluate):
  • kjs/nodes.h: (KJS::Node::): (KJS::FalseNode::): (KJS::TrueNode::): (KJS::ArgumentsNode::):
11:00 PM Changeset in webkit [33269] by mrowe@apple.com
  • 4 edits
    1 add in branches/squirrelfish/JavaScriptCore

Bug 18672: SQUIRRELFISH: codegen fails with a large number of temporaries
<https://bugs.webkit.org/show_bug.cgi?id=18672>

Reviewed by Geoff

Add a SegmentedVector type, which provides a Vector<T> which maintains
existing memory locations during resize. This allows dynamically sizing
local, temporary and label "vectors" in CodeGenerator.

11:00 PM Changeset in webkit [33268] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.

A little refactoring in preparation for supporting 'arguments'.

Fixes 2 regression tests.

SunSpider reports no change.

We now check the activation register, instead of the codeBlock, to
determine whether we need to tear off the activation. This is to support
"f.arguments", which will create an activation/arguments pair for f,
even though the needsFullScopeChain flag is false for f's codeBlock.

The test fixes resulted from calling initializeCallFrame for re-entrant
function code, instead of initializing (not enough) parts of the call
frame by hand.

11:00 PM Changeset in webkit [33267] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam.

  • propagate the "this" value properly to local eval

(fixes a measly one regression test)

  • VM/CodeBlock.h: (KJS::CodeBlock::CodeBlock): (KJS::ProgramCodeBlock::ProgramCodeBlock): (KJS::EvalCodeBlock::EvalCodeBlock):
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
11:00 PM Changeset in webkit [33266] by mrowe@apple.com
  • 6 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej.

Add support for function declarations in eval code.

(this fixes 12 more regression tests)

  • VM/CodeBlock.h:
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::CodeGenerator):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::execute):
  • kjs/nodes.cpp: (KJS::EvalNode::generateCode):
11:00 PM Changeset in webkit [33265] by mrowe@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.

Implement LabelNode.

  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::pushJumpContext): (KJS::CodeGenerator::jumpContextForContinue): (KJS::CodeGenerator::jumpContextForBreak):
  • VM/CodeGenerator.h:
  • kjs/nodes.cpp: (KJS::DoWhileNode::emitCode): (KJS::WhileNode::emitCode): (KJS::ForNode::emitCode): (KJS::ForInNode::emitCode): (KJS::ContinueNode::emitCode): (KJS::BreakNode::emitCode): (KJS::SwitchNode::emitCode): (KJS::LabelNode::emitCode):
11:00 PM Changeset in webkit [33264] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

Fixed crash when unwinding from exceptions inside eval.

  • VM/Machine.cpp: (KJS::Machine::unwindCallFrame): Don't assume that the top of the current call frame's scope chain is an activation: it can be the global object, instead.
11:00 PM Changeset in webkit [33263] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoff.

  • kjs/testkjs.cpp: (main): Convert signals to exit codes, so that crashing tests are detected as regression test failures.
11:00 PM Changeset in webkit [33262] by mrowe@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt and Maciej Stachowiak.

Renamed "needsActivation" to "needsFullScopeChain" because lying will
make hair grow on the backs of your hands.

11:00 PM Changeset in webkit [33261] by mrowe@apple.com
  • 1 edit in branches/squirrelfish/JavaScriptCore/ChangeLog

Fixed ChangeLog

11:00 PM Changeset in webkit [33260] by mrowe@apple.com
  • 8 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.

Fixed ScopeChainNode lifetime problems:

(1) In "with" and "catch" scopes, we would construct a ScopeChain
object and then jump across its destructor, leaking the ScopeChainNode
we had pushed.

(2) In global and eval scopes, we would fail to initially ref
"scopeChain", causing us to overrelease it later. Now that we ref
"scopeChain" properly, we also need to deref it when the script
terminates.

SunSpider reports no change.

11:00 PM Changeset in webkit [33259] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Alexey.

  • use global object instead of null for "this" on unqualified calls

This fixes 10 more JSC test regressions.

  • VM/Machine.cpp: (KJS::Machine::privateExecute):
11:00 PM Changeset in webkit [33258] by mrowe@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.

  • throw proper exceptions for objects that don't implement call or construct

This fixes 21 more JSC test regressions. It is also seemingly an
0.5% progression.

  • VM/ExceptionHelpers.cpp: (KJS::createNotAnObjectError): (KJS::createNotAConstructorError): (KJS::createNotAFunctionError):
  • VM/ExceptionHelpers.h:
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
11:00 PM Changeset in webkit [33257] by mrowe@apple.com
  • 5 edits in branches/squirrelfish/JavaScriptCore

Implement emitCode for ConstDeclNode.

Reviewed by Geoff

This fixes the crash (assertion) in js1_5/Scope/scope-001.js

11:00 PM Changeset in webkit [33256] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam.

  • add some support for the split window object

This fixes many layout tests.

  • VM/Machine.cpp: (KJS::resolveBaseAndFunc): Use toThisObject() to ensure we get the wrapper global, if one exists, as the "this" object.
  • kjs/function.cpp: (KJS::globalFuncEval): Use toGlobalObject() to handle the wrapper case properly.
11:00 PM Changeset in webkit [33255] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.

  • restore ScopeChain::operator= to avoid crash on many layout tests

Otherwise, FunctionImp::setScope would cause a reference
underflow. I implemented using the copy construct and swap idiom.

  • kjs/scope_chain.h: (KJS::ScopeChain::swap): (KJS::ScopeChain::operator=):
11:00 PM Changeset in webkit [33254] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

Bug 18649: SQUIRRELFISH: correctly handle exceptions in eval code
<https://bugs.webkit.org/show_bug.cgi?id=18649>

Reviewed by Geoff

Allocate a callframe for eval() and initialise with a null codeBlock to
indicate native code. This prevents the unwinder from clobbering the
register stack.

11:00 PM Changeset in webkit [33253] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/WebKit/mac

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

Build fix.

  • ChangeLog:
  • WebView/WebScriptDebugDelegate.mm: (-[WebScriptCallFrame scopeChain]):
11:00 PM Changeset in webkit [33252] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam Weinig.

Removed ScopeChain::push(ScopeChain&) because it was unused. Moved
ScopeChain::print to ScopeChainNode.

ScopeChain is now nothing more than a resource-handling wrapper around
ScopeChainNode.

10:59 PM Changeset in webkit [33251] by mrowe@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej.

Bug 18671: SquirrelFish: continue inside switch fails
<https://bugs.webkit.org/show_bug.cgi?id=18671>

  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::jumpContextForLabel):
  • VM/CodeGenerator.h:
  • kjs/nodes.cpp: (KJS::ContinueNode::emitCode):
10:59 PM Changeset in webkit [33250] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam Weinig.

Moved push(JSObject*) and pop() from ScopeChain to ScopeChainNode,
rearranging scope_chain.h a bit.

SunSpider reports no change.

10:59 PM Changeset in webkit [33249] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam Weinig.

Moved bottom() from ScopeChain to ScopeChainNode, simplifying it based
on the knowledge that the ScopeChain is never empty.

SunSpider reports no change.

10:59 PM Changeset in webkit [33248] by mrowe@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

Moved begin() and end() from ScopeChain to ScopeChainNode.

Also marked a few methods "const".

SunSpider reports no change.

10:59 PM Changeset in webkit [33247] by mrowe@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.

Turned ScopeChain::depth into a stand-alone function, and simplified it
a bit.

I also moved ScopeChain::depth to Machine.cpp because it doesn't report
the true depth of the ScopeChain -- just the Machine's perspective of
its depth within a given call frame.

SunSpider reports no change.

10:59 PM Changeset in webkit [33246] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.

Removed indirection in ScopeChain::ref / ScopeChain::deref.

SunSpider reports no change.

  • kjs/scope_chain.h: (KJS::ScopeChain::ScopeChain): (KJS::ScopeChain::~ScopeChain): (KJS::ScopeChain::clear):
10:59 PM Changeset in webkit [33245] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

Fix debug build

10:59 PM Changeset in webkit [33244] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

Bug 18664: SQUIRRELFISH: correctly throw a SyntaxError when parsing of eval code fails
<https://bugs.webkit.org/show_bug.cgi?id=18664>

Patch from Cameron Zwarich <cwzwarich@uwaterloo.ca>
Reviewed by Oliver

Correctly throw a SyntaxError when parsing of eval code fails.

10:59 PM Changeset in webkit [33243] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

Partial fix for Bug 18649: SQUIRRELFISH: correctly handle exceptions in eval code

Reviewed by Geoff

Make sure we correct the register state before jumping to vm_throw.

10:59 PM Changeset in webkit [33242] by mrowe@apple.com
  • 1 edit in branches/squirrelfish/JavaScriptCore/ChangeLog

Fixed reviewer named in old commit message

10:59 PM Changeset in webkit [33241] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.

Simplified ScopeChain ref/deref.

SunSpider reports a .4% speedup.

  • kjs/scope_chain.h: (KJS::ScopeChainNode::ref): Removed this function because it was nonsense. ScopeChainNodes are initialized with a refCount of 1, so the loop was guaranteed to iterate exactly once.
10:59 PM Changeset in webkit [33240] by mrowe@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.

Removed support for empty ScopeChains.

SunSpider reports no change.

10:59 PM Changeset in webkit [33239] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.

Removed some completely unused ScopeChain member functions.

SunSpider reports no change.

10:59 PM Changeset in webkit [33238] by mrowe@apple.com
  • 5 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.

Avoid creating unnecessary ScopeChain objects, to reduce refcount churn.

SunSpider reports no change.

10:59 PM Changeset in webkit [33237] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Rubber stamped by Alexey.

Add some braces.x

  • kjs/testkjs.cpp: (runWithScripts):
10:59 PM Changeset in webkit [33236] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.

  • only print "End:" output when -d flag is passed.

This fixes half of our failing JSC regression tests.

  • kjs/testkjs.cpp: (runWithScripts):
10:59 PM Changeset in webkit [33235] by mrowe@apple.com
  • 9 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej.

Add support for variable declarations in eval code.

  • VM/CodeBlock.h: (KJS::EvalCodeBlock::EvalCodeBlock):
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::CodeGenerator):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::execute):
  • VM/Machine.h:
  • kjs/function.cpp: (KJS::globalFuncEval):
  • kjs/nodes.cpp: (KJS::EvalNode::generateCode):
  • kjs/nodes.h: (KJS::EvalNode::):
10:58 PM Changeset in webkit [33234] by mrowe@apple.com
  • 7 edits in branches/squirrelfish/JavaScriptCore

Throw exceptions for invalid continue, break, and return statements.

Reviewed by Maciej

Simple refactoring and extension of Cameron's AssignErrorNode, etc patch

10:58 PM Changeset in webkit [33233] by mrowe@apple.com
  • 15 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.

Removed Machine.cpp from AllInOneFile.cpp, and manually inlined a few
things that used to be inlined automatically.

1.9% speedup on SunSpider.

My hope is that we'll face fewer surprises in Machine.cpp codegen, now
that GCC is making fewer decisions. The speedup seems to confirm that.

10:58 PM Changeset in webkit [33232] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

Bug 18642: Iterator context may get placed into the return register, leading to much badness
<https://bugs.webkit.org/show_bug.cgi?id=18642>

Reviewed by Maciej

To prevent incorrectly reusing what will become the result register for
eval and global code execution, we need to request and ref the destination
in advance of codegen. Unfortunately this may lead to unnecessary copying,
although in future we can probably limit this. Curiously SunSpider shows
a progression in a number of tests, although it comes out as a wash overall.

This also fixes one of the regressions in run-javascriptcore-tests.

10:58 PM Changeset in webkit [33231] by mrowe@apple.com
  • 8 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej.

Add support for AssignErrorNode, PrefixErrorNode, and PostfixErrorNode.

  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitCreateError):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • VM/Opcode.h:
  • kjs/nodes.cpp: (KJS::PostfixErrorNode::emitCode): (KJS::PrefixErrorNode::emitCode): (KJS::AssignErrorNode::emitCode):
  • kjs/nodes.h:
10:58 PM Changeset in webkit [33230] by mrowe@apple.com
  • 5 edits in branches/squirrelfish/JavaScriptCore

Provide line number information in exceptions

Reviewed by Geoff and Mark

Simple patch, adds line number information metadata to CodeBlock
and a simple method to get the line number responsible for a given
Instruction*.

10:58 PM Changeset in webkit [33229] by mrowe@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

Provide "sourceURL" in exceptions

Reviewed by Maciej

10:58 PM Changeset in webkit [33228] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

Don't call emitCode directly on subnodes, instead use CodeGenerator::emitNode

Reviewed by Maciej

This patch just a preparation for tracking line numbers.

10:58 PM Changeset in webkit [33227] by mrowe@apple.com
  • 7 edits in branches/squirrelfish/JavaScriptCore

Bug 18619: Support continue, break, and return in try .. finally blocks
<https://bugs.webkit.org/show_bug.cgi?id=18619>

Reviewed by Maciej

This patch replaces the current partial finally support (which uses code
duplication to achieve what it does) with a subroutine based approach.
This has a number of advantages over code duplication:

  • Reduced code size
  • Simplified exception handling as the finaliser code only exists in one place, so no "magic" is needed to get the correct handler for a finaliser.
  • When we support instruction to line number mapping we won't need to worry about the dramatic code movement caused by duplication

On the downside it is necessary to add two new opcodes, op_jsr and op_sret
to enter and exit the finaliser subroutines, happily SunSpider reports
a performance progression (gcc amazes me) and ubench reports a wash.

While jsr and sret provide a mechanism that allows us to enter and exit
any arbitrary finaliser we need to, it was still necessary to increase
the amount of information tracked when entering and exiting both finaliser
scopes and dynamic scopes ("with"). This means "scopeDepth" is now
the combination of "finaliserDepth" and "dynamicScopeDepth". We also
now use a scopeContextStack to ensure that we pop scopes and execute
finalisers in the correct order. This increases the cost of "with" nodes
during codegen, but it should not be significant enough to effect real
world performance and greatly simplifies codegen for return, break and
continue when interacting with finalisers.

10:58 PM Changeset in webkit [33226] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

Remove unnecessary files from testkjs, testapi and minidom targets.

Rubber-stamped by Oliver Hunt.

10:58 PM Changeset in webkit [33225] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

Fixed ASSERT seen during run-sunspider of a debug build.

  • VM/CodeGenerator.h: Made the default codegen buffers bigger. SunSpider runs all tests in one global environment, so you end up with more than 128 locals. This is just a stop-gap until we code up a real solution to arbitrary symbol and label limits.
10:58 PM Changeset in webkit [33224] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

Fixed a bug in exception unwinding, where we wouldn't deref the scope
chain in global scope, so we would leak ScopeChainNodes when exceptions
were thrown inside "with" and "catch" scopes.

Also did some cleanup of the unwinding code along the way.

Scope chain reference counting is still wrong in a few ways. I thought
I would fix this portion of it first.

run-sunspider shows no change.

  • VM/Machine.cpp: (KJS::Machine::unwindCallFrame): (KJS::Machine::throwException): (KJS::Machine::privateExecute):
  • VM/Machine.h:
10:58 PM Changeset in webkit [33223] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

Add more exception checking to toNumber conversions

Reviewed by Maciej

This corrects op_pre_dec, op_negate, op_mod and op_sub.

10:58 PM Changeset in webkit [33222] by mrowe@apple.com
  • 11 edits in branches/squirrelfish/JavaScriptCore

2008-04-17 Geoffrey Garen <ggaren@apple.com> and Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Oliver Hunt.

Behold: eval.

Introduced a new opcode: op_call_eval. In the normal case, it performs
an eval. In the case where eval has been overridden in some way, it
performs a function call.

  • VM/CodeGenerator.h: Added a feature so the code generator knows not to optimized locals in eval code.
10:58 PM Changeset in webkit [33221] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam Weinig.

Added some ASSERTs to document codegen failures in
run-javascriptcore-tests.

For all tests, program-level codegen now either succeeds, or fails with
an ASSERT.

  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::addVar): (KJS::CodeGenerator::CodeGenerator): (KJS::CodeGenerator::newTemporary): (KJS::CodeGenerator::newLabel):
10:58 PM Changeset in webkit [33220] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.

Fixed another case of a dst register being an unreferenced temporary
(caused an ASSERT when running the full sunspider suite).

  • kjs/nodes.cpp: (KJS::CaseBlockNode::emitCodeForBlock):
10:58 PM Changeset in webkit [33219] by mrowe@apple.com
  • 7 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoff.

  • add documentation (and meaningful parameter names) for arithmetic and bitwise binary ops
  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitMul): (KJS::CodeGenerator::emitDiv): (KJS::CodeGenerator::emitMod): (KJS::CodeGenerator::emitSub): (KJS::CodeGenerator::emitLeftShift): (KJS::CodeGenerator::emitRightShift): (KJS::CodeGenerator::emitUnsignedRightShift): (KJS::CodeGenerator::emitBitAnd): (KJS::CodeGenerator::emitBitXOr): (KJS::CodeGenerator::emitBitOr):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • VM/Opcode.h:
  • kjs/nodes.cpp: (KJS::MultNode::emitCode): (KJS::DivNode::emitCode): (KJS::ModNode::emitCode): (KJS::SubNode::emitCode): (KJS::LeftShiftNode::emitCode): (KJS::RightShiftNode::emitCode): (KJS::UnsignedRightShiftNode::emitCode): (KJS::BitAndNode::emitCode): (KJS::BitXOrNode::emitCode): (KJS::BitOrNode::emitCode): (KJS::emitReadModifyAssignment): (KJS::ReadModifyResolveNode::emitCode):
10:58 PM Changeset in webkit [33218] by mrowe@apple.com
  • 18 edits in branches/squirrelfish/JavaScriptCore

Exception checks for toNumber in op_pre_inc

Reviewed by Geoff

This is somewhat more convoluted than the simple hadException checks
we currently use. Instead we use special toNumber conversions that
select between the exception and ordinary vPC. This allows us to
remove any branches in the common case (incrementing a number).

10:58 PM Changeset in webkit [33217] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoff.

  • ensure that activations are kept in a register to protect them from GC

Also renamed OptionalCalleeScopeChain constant to OptionalCalleeActivation, since
that is what is now kept there, and there is no more need to keep the scope chain in
the register file.

  • VM/Machine.cpp: (KJS::initializeCallFrame): (KJS::scopeChainForCall):
  • VM/Machine.h: (KJS::Machine::):
10:57 PM Changeset in webkit [33216] by mrowe@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

Made "this" work in program code / global scope.

The machine can initialize "this" prior to execution because it knows
that, for program code, "this" is always stored in lr1.

  • VM/Machine.cpp: (KJS::Machine::execute):
  • VM/Machine.h: (KJS::Machine::):
  • kjs/interpreter.cpp: (KJS::Interpreter::evaluate):
10:57 PM Changeset in webkit [33215] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

Fixed a codegen bug when returning from inside a dynamic scope (a with
or catch block): we need to pop any dynamic scope(s) that have been
added so op_ret can find the activation object at the top of the scope
chain.

  • kjs/nodes.cpp: (KJS::ReturnNode::emitCode): If we're returning from inside a dynamic scope, emit a jmp_scopes to take care of popping any dynamic scope(s) and then branching to the return instruction.
10:57 PM Changeset in webkit [33214] by mrowe@apple.com
  • 5 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoff.

  • document the add and get_prop_id opcodes

In addition to adding documentation in comments, I changed
references to register IDs or indices relating to these opcodes to
have meaningful names instead of r0 r1 r2.

  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitAdd):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • kjs/nodes.cpp: (KJS::DotAccessorNode::emitCode): (KJS::FunctionCallDotNode::emitCode): (KJS::PostIncDotNode::emitCode): (KJS::PostDecDotNode::emitCode): (KJS::PreIncDotNode::emitCode): (KJS::PreDecDotNode::emitCode): (KJS::AddNode::emitCode): (KJS::ReadModifyDotNode::emitCode):
10:57 PM Changeset in webkit [33213] by mrowe@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt and Maciej Stachowiak.

Fixed a codegen bug in with and switch, and added an ASSERT to
make sure it doesn't happen again.

emitCode() assumes that dst, if non-zero, is either referenced or
non-temporary (i.e., it assumes that newTemporary() will return a
register not equal to dst). Certain callers to emitCode() weren't
guaranteeing that to be so, so temporary register values were being
overwritten.

  • VM/CodeGenerator.h: (KJS::CodeGenerator::emitNode): ASSERT that dst is referenced or non-temporary.
  • kjs/nodes.cpp: (KJS::CommaNode::emitCode): Reference the dst we pass.

(KJS::WithNode::emitCode): No need to pass an explicit dst register.

(KJS::CaseBlockNode::emitCodeForBlock): No need to pass an explicit dst register.
(KJS::SwitchNode::emitCode): No need to pass an explicit dst register.

  • kjs/nodes.h: Made dst the last parameter to emitCodeForBlock, to match emitCode.
10:57 PM Changeset in webkit [33212] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

Bug 18526: Throw exceptions when resolve fails for op_resolve_base_and_func.
<https://bugs.webkit.org/show_bug.cgi?id=18526>

Reviewed by Maciej

Very simple fix, sunspider shows a 0.7% progression, ubench shows a 0.4% regression.

10:57 PM Changeset in webkit [33211] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/SunSpider

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

Rubber stamped by Oliver.

  • add newly working tests to squirrelfish list
  • tests/LIST-SQUIRRELFISH: Add 3d-raytrace and string-unpack-code
10:57 PM Changeset in webkit [33210] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.

  • fix incorrect result on 3d-raytrace test

Oliver found and tracked down this bug, I just typed in the fix.

  • VM/Machine.cpp: (KJS::slideRegisterWindowForCall): When setting omitted parameters to undefined, account for the space for local variables.
10:57 PM Changeset in webkit [33209] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.

  • fix codegen handling of dst registers

1.006x speedup (not sure why).

Most emitCode functions take an optional "dst" parameter that says
where the output of the instruction should be written. I made some
functions for convenient handling of the dst register:

  • VM/CodeGenerator.h: (KJS::CodeGenerator::tempDestination): Takes the dst register. Returns it if it is not null and is a temporary, otherwise allocates a new temporary. This is intended for cases where an intermediate value might be written into the dst

(KJS::CodeGenerator::finalDestination): Takes the dst register and an optional
register that was used as a temp destination. Picks the right thing for the final
output. Intended to be used as the output register for the instruction that generates
the final value of a particular node.

(KJS::CodeGenerator::moveToDestinationIfNeeded): Takes dst and a
RegisterID; moves from the register to dst if dst is defined and
different from the register. This is intended for cases where the
result of a node is already in a specific register (likely a
local), and so no code needs to be generated unless a specific
destination has been requested, in which case a move is needed.

I also applied these methods throughout emitCode functions. In
some cases this was just cleanup, in other cases I fixed actual
codegen bugs. Below I have given specific comments for the cases
where I believe I fixed a codegen bug, or improved quality of codegen.

  • kjs/nodes.cpp: (KJS::NullNode::emitCode): (KJS::FalseNode::emitCode): (KJS::TrueNode::emitCode): (KJS::NumberNode::emitCode): (KJS::StringNode::emitCode): (KJS::RegExpNode::emitCode): (KJS::ThisNode::emitCode): Now avoids emitting a mov when dst is the same as the this register (the unlikely case of "this = this"); (KJS::ResolveNode::emitCode): Now avoids emitting a mov when dst is the same as the local regiester, in the local var case (the unlikely case of "x = x"); (KJS::ArrayNode::emitCode): Fixed a codegen bug where array literal element expressions may have observed an intermediate value of constructing the array. (KJS::ObjectLiteralNode::emitCode): (KJS::PropertyListNode::emitCode): Fixed a codegen bug where object literal property definition expressions may have obesrved an intermediate value of constructing the object. (KJS::BracketAccessorNode::emitCode): (KJS::DotAccessorNode::emitCode): (KJS::NewExprNode::emitCode): (KJS::FunctionCallValueNode::emitCode): (KJS::FunctionCallBracketNode::emitCode): (KJS::FunctionCallDotNode::emitCode): (KJS::PostIncResolveNode::emitCode): (KJS::PostDecResolveNode::emitCode): (KJS::PostIncBracketNode::emitCode): (KJS::PostDecBracketNode::emitCode): (KJS::PostIncDotNode::emitCode): (KJS::PostDecDotNode::emitCode): (KJS::DeleteResolveNode::emitCode): (KJS::DeleteBracketNode::emitCode): (KJS::DeleteDotNode::emitCode): (KJS::DeleteValueNode::emitCode): (KJS::VoidNode::emitCode): (KJS::TypeOfResolveNode::emitCode): (KJS::TypeOfValueNode::emitCode): (KJS::PreIncResolveNode::emitCode): Fixed a codegen bug where the final value would not be output to the dst register in the local var case. (KJS::PreDecResolveNode::emitCode): Fixed a codegen bug where the final value would not be output to the dst register in the local var case. (KJS::PreIncBracketNode::emitCode): (KJS::PreDecBracketNode::emitCode): (KJS::PreIncDotNode::emitCode): (KJS::PreDecDotNode::emitCode): (KJS::UnaryPlusNode::emitCode): (KJS::NegateNode::emitCode): (KJS::BitwiseNotNode::emitCode): (KJS::LogicalNotNode::emitCode): (KJS::MultNode::emitCode): (KJS::DivNode::emitCode): (KJS::ModNode::emitCode): (KJS::AddNode::emitCode): (KJS::SubNode::emitCode): (KJS::LeftShiftNode::emitCode): (KJS::RightShiftNode::emitCode): (KJS::UnsignedRightShiftNode::emitCode): (KJS::LessNode::emitCode): (KJS::GreaterNode::emitCode): (KJS::LessEqNode::emitCode): (KJS::GreaterEqNode::emitCode): (KJS::InstanceOfNode::emitCode): (KJS::InNode::emitCode): (KJS::EqualNode::emitCode): (KJS::NotEqualNode::emitCode): (KJS::StrictEqualNode::emitCode): (KJS::NotStrictEqualNode::emitCode): (KJS::BitAndNode::emitCode): (KJS::BitXOrNode::emitCode): (KJS::BitOrNode::emitCode): (KJS::LogicalAndNode::emitCode): (KJS::LogicalOrNode::emitCode): (KJS::ConditionalNode::emitCode): (KJS::emitReadModifyAssignment): Allow an out argument separate from the operands, needed for fixes below. (KJS::ReadModifyResolveNode::emitCode): Fixed a codegen bug where the right side of the expression may observe an intermediate value. (KJS::AssignResolveNode::emitCode): Fixed a codegen bug where the right side of the expression may observe an intermediate value. (KJS::ReadModifyDotNode::emitCode): Fixed a codegen bug where the right side of the expression may observe an intermediate value. (KJS::ReadModifyBracketNode::emitCode): Fixed a codegen bug where the right side of the expression may observe an intermediate value. (KJS::CommaNode::emitCode): Avoid writing temporary value to dst register. (KJS::ReturnNode::emitCode): Void return should return undefined, not null. (KJS::FuncExprNode::emitCode):
10:57 PM Changeset in webkit [33208] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoff.

  • fix huge performance regression (from trunk) in string-unpack-code

This restores string-unpack-code performance to parity with
trunk (2.27x speedup relative to previous SquirrelFish)

  • VM/Machine.cpp: (KJS::Machine::execute): Shrink register file after call to avoid growing repeatedly.
10:57 PM Changeset in webkit [33207] by mrowe@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam Weinig.

Fixed dumpCallFrame to match our new convention of passing around a
ScopeChainNode* instead of a ScopeChain*.

  • JavaScriptCore.exp:
  • VM/Machine.cpp: (KJS::Machine::dumpCallFrame):
  • VM/Machine.h:
10:57 PM Changeset in webkit [33206] by mrowe@apple.com
  • 7 edits in branches/squirrelfish/JavaScriptCore

Bug 18436: Need to throw exception on read/modify/write or similar resolve for nonexistent property
<https://bugs.webkit.org/show_bug.cgi?id=18436>

Reviewed by Maciej.

Add op_resolve_base_and_property for read/modify/write operations,
this adds a "superinstruction" to resolve the base and value of a
property simultaneously. Just using resolveBase and resolve results
in an 5% regression in ubench, 30% in loop-empty-resolve (which is
expected). 1.3% progression in sunspider, 2.1% in ubench, with a
21% gain in loop-empty-resolve. The only outlier is function-missing-args
which gets a 3% regression that I could never resolve.

10:57 PM Changeset in webkit [33205] by mrowe@apple.com
  • 8 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.

3d-raytrace and string-unpack-code now run.

The basic approach is to pass around ScopeChainNode* instead of
ScopeChain*, which in addition to not becoming suddenly an invalid
pointer also saves an indirection.

This is an 0.4% speedup on SunSpider --squirrelfish (1.8% on --ubench)

  • VM/Machine.cpp: (KJS::resolve): (KJS::resolveBase): (KJS::resolveBaseAndFunc): (KJS::initializeCallFrame): (KJS::scopeChainForCall): (KJS::Machine::unwindCallFrame): (KJS::Machine::throwException): (KJS::Machine::execute): (KJS::Machine::privateExecute):
  • VM/Machine.h:
  • VM/Register.h: (KJS::Register::):
  • kjs/nodes.cpp: (KJS::EvalNode::generateCode): (KJS::FunctionBodyNode::generateCode): (KJS::ProgramNode::generateCode): (KJS::ProgramNode::processDeclarations): (KJS::EvalNode::processDeclarations): (KJS::FuncDeclNode::makeFunction): (KJS::FuncExprNode::makeFunction):
  • kjs/nodes.h: (KJS::ProgramNode::): (KJS::EvalNode::): (KJS::FunctionBodyNode::):
  • kjs/object.h:
  • kjs/scope_chain.h: (KJS::ScopeChainNode::ScopeChainNode): (KJS::ScopeChainNode::deref): (KJS::ScopeChainIterator::ScopeChainIterator): (KJS::ScopeChainIterator::operator*): (KJS::ScopeChainIterator::operator->): (KJS::ScopeChain::ScopeChain): (KJS::ScopeChain::node): (KJS::ScopeChain::deref): (KJS::ScopeChain::ref): (KJS::ScopeChainNode::ref): (KJS::ScopeChainNode::release): (KJS::ScopeChainNode::begin): (KJS::ScopeChainNode::end):
10:57 PM Changeset in webkit [33204] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

Fixed crash when accessing registers in a torn-off activation object.

  • kjs/JSActivation.cpp: (KJS::JSActivation::copyRegisters): Update our registerOffset after copying our registers, since our offset should now be relative to our private register array, not the shared register file.
10:57 PM Changeset in webkit [33203] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.

  • fix a codegen flaw that makes some tests run way too fast or way too slow

The basic problem was that FunctionCallResolveNode results in
codegen which can incorrectly write an intermediate value into the
dst register even when that is a local. I added convenience
functions to CodeGenerator for getting this right, but for now I
only fixed FunctionCallResolve.

  • VM/CodeGenerator.h: (KJS::CodeGenerator::tempDestination): (KJS::CodeGenerator::):
  • kjs/nodes.cpp: (KJS::FunctionCallResolveNode::emitCode):
10:57 PM Changeset in webkit [33202] by mrowe@apple.com
  • 1 edit
    8 adds in branches/squirrelfish/SunSpider

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

Rubber stamped by Oliver.

  • move ubench tests properly.
  • tests/ubench: Added.
  • tests/ubench/function-closure.js: Added.
  • tests/ubench/function-empty.js: Added.
  • tests/ubench/function-missing-args.js: Added.
  • tests/ubench/function-sum.js: Added.
  • tests/ubench/loop-empty-resolve.js: Added.
  • tests/ubench/loop-empty.js: Added.
  • tests/ubench/loop-sum.js: Added.
10:57 PM Changeset in webkit [33201] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/WebKitTools

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

Reviewed by Oliver.

  • added support for --ubench mode
  • Scripts/run-sunspider:
10:57 PM Changeset in webkit [33200] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/SunSpider

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

Rubber stamped by Oliver.

  • sunspider: Don't force --runs=1 in squirrelfish mode any more.
10:57 PM Changeset in webkit [33199] by mrowe@apple.com
  • 12 edits in branches/squirrelfish

JavaScriptCore:

2008-04-14 Gabor Loki <loki@inf.u-szeged.hu>

Reviewed and slightly tweaked by Geoffrey Garen.

Bug 18489: Squirrelfish doesn't build on linux
<https://bugs.webkit.org/show_bug.cgi?id=18489>

  • JavaScriptCore.pri: Add VM into include path and its files into source set
  • VM/JSPropertyNameIterator.cpp: Fix include name
  • VM/Machine.cpp: Add UNLIKELY macro for GCC
  • VM/Machine.h: Add missing includes
  • VM/RegisterFile.cpp: Add missing include
  • kjs/testkjs.pro: Add VM into include path

WebCore:

2008-04-14 Gabor Loki <loki@inf.u-szeged.hu>

Reviewed by Geoffrey Garen.

Bug 18489: Squirrelfish doesn't build on linux
<https://bugs.webkit.org/show_bug.cgi?id=18489>

10:57 PM Changeset in webkit [33198] by mrowe@apple.com
  • 3 edits
    1 add
    7 deletes in branches/squirrelfish/SunSpider

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

Reviewed by Oliver.

  • make --squirrelfish mode use the real harness, but a reduced set of tests

Also add a new ubench mode which runs the older squirrelfish microbenchmarks.

  • sunspider:
  • tests/LIST-SQUIRRELFISH:
  • tests/LIST-UBENCH: Added.
  • tests/squirrelfish: Moved to tests/ubench
10:57 PM Changeset in webkit [33197] by mrowe@apple.com
  • 1 edit
    1 delete in branches/squirrelfish/SunSpider

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

Reviewed by Maciej Stachowiak.

Removed an unused test.

  • tests/squirrelfish/loop-resolve.js: Removed.
10:57 PM Changeset in webkit [33196] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam Weinig.

Restored OwnPtr in some places where I had removed it previously. We
can have an OwnPtr to an undefined class in a header as long as the
class's destructor isn't in the header.

10:57 PM Changeset in webkit [33195] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam Weinig.

Fixed access to "this" inside dynamic scopes.

  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::registerForLocal): Always return a register for "this", even if we're not optimizing access to other locals. Because "this" is a keyword, it's always in a register and always accessible.
  • VM/CodeGenerator.h: (KJS::CodeGenerator::shouldOptimizeLocals): Factored out a function for determining whether we should optimize access to locals, since eval will need to make this test a little more complicated.
10:57 PM Changeset in webkit [33194] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Adam.

  • fix crash when running SunSpider full harness

When growing the register file's buffer to make space for new globals,
make sure to copy accounting for the fact that the new space is logically
at the beginning of the buffer in this case, instead of at the end as when
growing for a new call frame.

  • VM/RegisterFile.cpp: (KJS::RegisterFile::newBuffer): (KJS::RegisterFile::growBuffer): (KJS::RegisterFile::addGlobalSlots):
  • VM/RegisterFile.h:
10:57 PM Changeset in webkit [33193] by mrowe@apple.com
  • 6 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam Weinig.

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

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

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

  • kjs/nodes.cpp: I had to use manual init and delete in this file because putting an OwnPtr into the header would have created a circular header dependency.
10:56 PM Changeset in webkit [33192] by mrowe@apple.com
  • 7 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej

Use correct value of 'this' for function calls.

10:56 PM Changeset in webkit [33191] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

This time for sure.

  • kjs/interpreter.cpp: (KJS::Interpreter::evaluate):
10:56 PM Changeset in webkit [33190] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam Weinig.

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

  • kjs/interpreter.cpp: (KJS::Interpreter::evaluate):
10:56 PM Changeset in webkit [33189] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoff

10:56 PM Changeset in webkit [33188] by mrowe@apple.com
  • 49 edits
    1 copy
    1 add in branches/squirrelfish

JavaScriptCore:

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

Reviewed by Geoffrey Garen.

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

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

WebCore:

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

Reviewed by Geoffrey Garen.

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

10:56 PM Changeset in webkit [33187] by mrowe@apple.com
  • 4 edits
    4 adds in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoff

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

10:56 PM Changeset in webkit [33186] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

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

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

sunspider --squirrelfish notes a tiny speedup.

  • VM/Machine.cpp: (KJS::Machine::privateExecute):
10:56 PM Changeset in webkit [33185] by mrowe@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

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

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

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

Also:

  • Changed FunctionImp::callAsFunction to honor the new semantics of exceptions not returning 0.
  • Renamed "handlerPC" to "handlerVPC" to match other uses of "VPC".
  • Renamed "exceptionData" to "exceptionValue", because "data" seemed to imply something more than just a JSValue.
  • Merged prepareException into throwException, since throwException was its only caller, and it seemed weird that throwException didn't take an exception as an argument.

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

10:56 PM Changeset in webkit [33184] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.

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

sunspider --squirrelfish does not seem to complain.

  • VM/Machine.cpp: (KJS::Machine::privateExecute):
10:56 PM Changeset in webkit [33183] by mrowe@apple.com
  • 7 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt and Sam Weinig.

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

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

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

Also fixed a few issues along the way:

  • Fixed two bugs in the read-write List implementation that caused m_size and m_buffer to go stale.
  • Changed native call code to update "r" *before* setting the return value, since the call may in turn call JS code, which changes the value of "r".
  • Migrated initialization of "r" outside of Machine::privateExecute, because global code and function code initialize "r" differently.
  • Migrated a codegen warning from Machine::privateExecute to the wiki.
  • Removed unnecessary "r" parameter from slideRegisterWindowForCall
  • VM/Machine.cpp: (KJS::slideRegisterWindowForCall): (KJS::scopeChainForCall): (KJS::Machine::execute): (KJS::Machine::privateExecute):
  • VM/Machine.h:
  • kjs/function.cpp: (KJS::FunctionImp::callAsFunction):
  • kjs/list.cpp: (KJS::List::getSlice):
  • kjs/list.h: (KJS::List::clear):
10:56 PM Changeset in webkit [33182] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/SunSpider

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

Reviewed by Oliver.

Add newly runnable tests to --squirrelfish mode.

  • tests/LIST-SQUIRRELFISH:
10:56 PM Changeset in webkit [33181] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.

  • fix problem with code generation for return with no argument

3d-cube now runs

  • kjs/nodes.cpp: (KJS::ReturnNode::emitCode):
10:56 PM Changeset in webkit [33180] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.

  • Implement support for JS constructors

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

Inexplicably a 1% speedup.

  • VM/Machine.cpp: (KJS::initializeCallFrame): (KJS::Machine::privateExecute):
  • VM/Machine.h: (KJS::Machine::):
10:56 PM Changeset in webkit [33179] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.

  • More code cleanup in preparation for JS constructors

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

  • VM/Machine.cpp: (KJS::slideRegisterWindowForCall): (KJS::scopeChainForCall): (KJS::Machine::privateExecute):
10:56 PM Changeset in webkit [33178] by mrowe@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoff.

  • Code cleanup in preparation for JS constructors
  • Renamed returnInfo to callFrame.
  • Made an enum which defines what goes where in the call frame.
  • Factored out initializeCallFrame function from op_call
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitCall): (KJS::CodeGenerator::emitConstruct):
  • VM/Machine.cpp: (KJS::Machine::dumpRegisters): (KJS::initializeCallFrame): (KJS::Machine::unwindCallFrame): (KJS::Machine::execute): (KJS::Machine::privateExecute):
  • VM/Machine.h: (KJS::Machine::):
10:56 PM Changeset in webkit [33177] by mrowe@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

Fixed two bugs in register allocation for function calls:

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

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

sunspider --squirrelfish reports no regression.

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

  • VM/Machine.cpp: (KJS::Machine::dumpRegisters): (KJS::Machine::execute): (KJS::Machine::privateExecute):
  • VM/RegisterFile.h: (KJS::RegisterFile::shrink): (KJS::RegisterFile::grow):
  • VM/RegisterFileStack.cpp: (KJS::RegisterFileStack::popRegisterFile):
10:56 PM Changeset in webkit [33176] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

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

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

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

sunspider --squirrelfish reports no regression.

  • ChangeLog:
  • VM/Machine.cpp: (KJS::Machine::execute): (KJS::Machine::privateExecute):
10:56 PM Changeset in webkit [33175] by mrowe@apple.com
  • 5 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.

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

Made Machine::execute return a value.

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

sunspider --squirrelfish reports no regression.

  • VM/Machine.cpp: (KJS::Machine::execute): (KJS::Machine::privateExecute):
  • VM/Machine.h:
  • kjs/interpreter.cpp: (KJS::Interpreter::evaluate):
  • kjs/testkjs.cpp: (runWithScripts):
10:56 PM Changeset in webkit [33174] by mrowe@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam Weinig.

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

Tiny bit of refactoring in the Machine class.

sunspider --squirrelfish reports no regression.

  • VM/Machine.cpp: (KJS::Machine::dumpRegisters): (KJS::Machine::unwindCallFrame): (KJS::Machine::execute): (KJS::Machine::privateExecute):
  • VM/Machine.h: (KJS::Machine::isGlobalCallFrame):
  • kjs/interpreter.cpp: (KJS::Interpreter::evaluate):
10:56 PM Changeset in webkit [33173] by mrowe@apple.com
  • 11 edits
    2 copies in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

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

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

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

sunspider --squirrelfish reports no regression.

10:56 PM Changeset in webkit [33172] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoff.

  • initial preparatory work for JS constructors

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

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

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

  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitConstruct):
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
10:55 PM Changeset in webkit [33171] by mrowe@apple.com
  • 3 edits
    1 add in branches/squirrelfish/SunSpider

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

Reviewed by Maciej Stachowiak.

A little more love for --squirrelfish mode:

Fixed a misplaced sort. Results properly sort now.

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

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

  • sunspider:
10:55 PM Changeset in webkit [33170] by mrowe@apple.com
  • 1 edit in branches/squirrelfish/JavaScriptCore/ChangeLog

fix changelog, bokay?

10:55 PM Changeset in webkit [33169] by mrowe@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.

Fixed crasing SunSpider tests.

Let's just pretend this never happened, bokay?

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

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

Reviewed by Oliver Hunt.

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

10:55 PM Changeset in webkit [33167] by mrowe@apple.com
  • 12 edits
    2 adds in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

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

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

10:55 PM Changeset in webkit [33166] by mrowe@apple.com
  • 13 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoff

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

10:55 PM Changeset in webkit [33165] by mrowe@apple.com
  • 12 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

First step toward supporting re-entrant evaluation: Switch register
clients from using "registers", a pointer to a register vector, to
"registerBase", an indirect pointer to the logical first entry in the
register file. (The logical first entry is the first entry that is not
a global variable).

With a vector, offsets into the register file remain good when the
underlying buffer reallocates, but they go bad when the logical
first entry moves. (The logical first entry moves when new global
variables get added to the beginning of the register file.) With an
indirect pointer to the logical first entry, offsets will remain good
regardless.

1.4% speedup on sunspider --squirrelfish. I suspect this is due to
reduced allocation when creating closures, and reduced indirection
through the register vector.

  • wtf/Vector.h: Added an accessor for an indirect pointer to the vector's buffer, which we currently use (incorrectly) for registerBase. This is temporary scaffolding to allow us to change client code without changing behavior.
10:55 PM Changeset in webkit [33164] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

Implement codegen for ReadModifyDotNode.

  • kjs/nodes.cpp: (KJS::ReadModifyDotNode::emitCode):
  • kjs/nodes.h:
10:55 PM Changeset in webkit [33163] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

Fix codegen for PostIncDotNode and implement codegen for PostIncBracketNode,
PostDecBracketNode and PostDecDotNode.

  • kjs/nodes.cpp: (KJS::PostIncBracketNode::emitCode): (KJS::PostDecBracketNode::emitCode): (KJS::PostIncDotNode::emitCode): (KJS::PostDecDotNode::emitCode):
  • kjs/nodes.h:
10:55 PM Changeset in webkit [33162] by mrowe@apple.com
  • 8 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoffrey Garen.

Implement codegen for PreDecResolveNode, PreIncBracketNode, PreDecBracketNode,
PreIncDotNode and PreDecDotNode. This required adding one new op code, op_pre_dec.

  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitPreDec):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • VM/Opcode.h:
  • kjs/nodes.cpp: (KJS::PreDecResolveNode::emitCode): (KJS::PreIncBracketNode::emitCode): (KJS::PreDecBracketNode::emitCode): (KJS::PreIncDotNode::emitCode): (KJS::PreDecDotNode::emitCode):
  • kjs/nodes.h:
10:55 PM Changeset in webkit [33161] by mrowe@apple.com
  • 7 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam Weinig.

Improved register dumping, plus a liberal smattering of "const". Here's
what the new format looks like:

(gdb) call (void)dumpCallFrame(codeBlock, scopeChain, registers->begin(), r)
4 instructions; 48 bytes at 0x509210; 3 locals (2 parameters); 1 temporaries

[ 0] load lr1, undefined(@k0)
[ 3] load lr1, 2(@k1)
[ 6] add tr0, lr2, lr1
[ 10] ret tr0

Constants:

k0 = undefined
k1 = 2

Register frame:

----------------------------------------

use | address | value

----------------------------------------
[return info] | 0x80ac08 | 0x5081c0
[return info] | 0x80ac0c | 0x508e90
[return info] | 0x80ac10 | 0x504acc
[return info] | 0x80ac14 | 0x2
[return info] | 0x80ac18 | 0x0
[return info] | 0x80ac1c | 0x7
[return info] | 0x80ac20 | 0x0
----------------------------------------
[param] | 0x80ac24 | 0x1
[param] | 0x80ac28 | 0x7
[var] | 0x80ac2c | 0xb
[temp] | 0x80ac30 | 0xf

10:55 PM Changeset in webkit [33160] by mrowe@apple.com
  • 7 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam Weinig.

Support for evaluating multiple scripts in the same global environment.
(Still don't support re-entrant evaluation yet.)

The main changes here are:

(1) Obey the ECMA 10.1.3 rules regarding how to resolve collisions when
a given symbol is declared more than once. (This patch fixes the same
issue for function code, too.)

(2) In the case of var and/or function collisions, reuse the existing
storage slot. For global code, this is required for previously
generated instructions to continue to work. For function code, it's
more of a "nice to have": it makes register layout in the case of
collisions easier to understand, and has the added benefit of saving
memory.

(3) Allocate slots in the CodeGenerator's m_locals vector in parallel
to register indexes in the symbol table. This ensures that, given an
index in the symbol table, we can find the corresponding RegisterID
without hashing, which speeds up codegen.

I moved responsibility for emitting var and function initialization
instructions into the CodeGenerator, because bookkeeping in cases where
var, function, and/or parameter names collide requires a lot of
internal knowledge about the CodeGenerator.

  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::addVar): Removed responsibility for checking whether a var declaration overwrites "arguments", because the check is inappropriate for global code, which may not have a pre-existing "arguments" symbol in scope. Also changed this function to return a boolean indicating whether addVar actually created a new RegisterID, or just reused an old one.

(KJS::CodeGenerator::CodeGenerator): Split out the constructors for
function code and global code, since they're quite different now.

(KJS::CodeGenerator::registerForLocal): This function does its job
without any hashing now.

  • VM/Machine.cpp: Move old globals and update "r" before executing a new script. That way, old globals stay at a constant offset from "r", and previously optimized code still works.
  • VM/RegisterID.h: Added the ability to allocate a RegisterID before initializing its index field. We use this for parameters now.
  • kjs/JSVariableObject.h: (KJS::JSVariableObject::symbolTableGet): Changed the ungettable getter ASSERT to account for the fact that symbol indexes are all negative.
10:55 PM Changeset in webkit [33159] by mrowe@apple.com
  • 1 edit in branches/squirrelfish/JavaScriptCore/ChangeLog

Fix ChangeLog

10:55 PM Changeset in webkit [33158] by mrowe@apple.com
  • 8 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoffrey Garen.

Implement codegen for ForInNode.

  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitIn):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • VM/Opcode.h:
  • kjs/nodes.cpp: (KJS::InNode::emitCode):
  • kjs/nodes.h:
10:55 PM Changeset in webkit [33157] by mrowe@apple.com
  • 8 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

  • Implement codegen for DeleteResolveNode, DeleteBracketNode, DeleteDotNode and DeleteValueNode.
  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitGetPropId): (KJS::CodeGenerator::emitPutPropId): (KJS::CodeGenerator::emitDeletePropId): (KJS::CodeGenerator::emitDeletePropVal): (KJS::CodeGenerator::emitPutPropIndex):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • VM/Opcode.h:
  • kjs/nodes.cpp: (KJS::DeleteResolveNode::emitCode): (KJS::DeleteBracketNode::emitCode): (KJS::DeleteDotNode::emitCode): (KJS::DeleteValueNode::emitCode):
  • kjs/nodes.h:
10:55 PM Changeset in webkit [33156] by mrowe@apple.com
  • 5 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

  • Implement codegen for Switch statements.
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::pushJumpContext): (KJS::CodeGenerator::popJumpContext): (KJS::CodeGenerator::jumpContextForLabel):
  • VM/CodeGenerator.h: Rename LoopContext to JumpContext now that it used of Switch statements in addition to loops.
  • kjs/nodes.cpp: (KJS::DoWhileNode::emitCode): (KJS::WhileNode::emitCode): (KJS::ForNode::emitCode): (KJS::ForInNode::emitCode): (KJS::ContinueNode::emitCode): (KJS::BreakNode::emitCode): (KJS::CaseBlockNode::emitCodeForBlock): (KJS::SwitchNode::emitCode):
  • kjs/nodes.h: (KJS::CaseClauseNode::expr): (KJS::CaseClauseNode::children): (KJS::CaseBlockNode::):
10:55 PM Changeset in webkit [33155] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam.

  • fix crash in codegen from new nodes
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitConstruct):
  • kjs/nodes.h:
10:55 PM Changeset in webkit [33154] by mrowe@apple.com
  • 1 edit in branches/squirrelfish/JavaScriptCore/kjs/nodes.h

File I forgot in my last commit.

10:55 PM Changeset in webkit [33153] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoff.

  • kjs/nodes.cpp: (KJS::ReadModifyResolveNode::emitCode): (KJS::ReadModifyBracketNode::emitCode):
  • kjs/nodes.h:
10:55 PM Changeset in webkit [33152] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoff.

  • take a shot at marking constant pools for global and eval code

Geoff says this won't really work in all cases but is an ok stopgap.

  • kjs/JSGlobalObject.cpp: (KJS::JSGlobalObject::mark):
10:55 PM Changeset in webkit [33151] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoff.

  • fix 2x perf regression in 3d-morph
  • VM/Machine.cpp: (KJS::Machine::privateExecute): If we subbed in null for the global object, don't toObject it, since that will throw an exception (very slowly).
10:55 PM Changeset in webkit [33150] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Rubber stamped by Geoff

  • fix Release build
  • kjs/nodes.cpp: (KJS::getNonLocalSymbol):
10:55 PM Changeset in webkit [33149] by mrowe@apple.com
  • 10 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

Removed the last vestiges of LocalStorage from JSVariableObject and
JSGlobalObject.

  • kjs/JSGlobalObject.cpp: (KJS::JSGlobalObject::saveLocalStorage): Save and restore from/to registers. Use stub isReadOnly and isDontEnum methods for now, until we really implement attributes in the symbol table. (KJS::JSGlobalObject::restoreLocalStorage): (KJS::JSGlobalObject::reset):
  • kjs/JSVariableObject.cpp: (KJS::JSVariableObject::getPropertyNames): Use stub isDontEnum method for now, as above. (KJS::JSVariableObject::getPropertyAttributes): ditto
  • kjs/JSVariableObject.h: Removed LocalStorage from JSVariableObjectData. Removed mark method, because subclasses implement different strategies for marking registers. (KJS::JSVariableObject::isReadOnly): Stub method (KJS::JSVariableObject::isDontEnum): ditto

Changed the code below to ASSERT_NOT_REACHED() and return 0, since it
can no longer retrieve LocalStorage from the ExecState. (Eventually,
we'll just remove this code and all its friends, but that's a task for
later.)

  • kjs/ExecState.cpp: (KJS::ExecState::ExecState):
  • kjs/function.cpp: (KJS::ActivationImp::markChildren):
  • kjs/function.h:
  • kjs/nodes.cpp: (KJS::getNonLocalSymbol): (KJS::ScopeNode::optimizeVariableAccess): (KJS::ProgramNode::processDeclarations):
10:54 PM Changeset in webkit [33148] by mrowe@apple.com
  • 1 edit in branches/squirrelfish/JavaScriptCore/ChangeLog

reverse order of last two ChangeLog entries (oops)

10:54 PM Changeset in webkit [33147] by mrowe@apple.com
  • 6 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoff.

  • mark the constant pool (at least for function code blocks)
  • VM/CodeBlock.cpp: (KJS::CodeBlock::mark):
  • VM/CodeBlock.h:
  • kjs/function.cpp: (KJS::FunctionImp::mark):
  • kjs/nodes.cpp: (KJS::ScopeNode::mark):
  • kjs/nodes.h: (KJS::FuncExprNode::body): (KJS::FuncDeclNode::body):
10:54 PM Changeset in webkit [33146] by mrowe@apple.com
  • 6 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoff.

  • mark the constant pool (at least for function code blocks)
  • VM/CodeBlock.cpp: (KJS::CodeBlock::mark):
  • VM/CodeBlock.h:
  • kjs/function.cpp: (KJS::FunctionImp::mark):
  • kjs/nodes.cpp: (KJS::ScopeNode::mark):
  • kjs/nodes.h: (KJS::FuncExprNode::body): (KJS::FuncDeclNode::body):
10:54 PM Changeset in webkit [33145] by mrowe@apple.com
  • 8 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Beth Dakin.

Cleaned up a few loose ends.

  • JavaScriptCore.exp: Export dumpRegisters, so it's visible to gdb even if we don't explicitly call it in the source text.
  • VM/Machine.cpp: (KJS::Machine::privateExecute): No need to call dumpRegisters anymore, since that was just a hack for gdb's sake.
  • kjs/JSActivation.h: Removed obsolete comment.
  • VM/CodeGenerator.cpp: Added ASSERTs to verify that the localCount we're given matches the number of locals actually allocated.
  • VM/CodeGenerator.h: (KJS::CodeGenerator::CodeGenerator): Changed "localCount" to include the parameter count, since we're using the word "local" to mean parameter, var, function, or "this". Renamed "m_nextLocal" to "m_nextVar", since "m_nextLocal" doesn't contrast well with "m_nextParameter".

Also moved tracking of implicit "this" parameter from here...

  • kjs/nodes.cpp: (KJS::FunctionBodyNode::generateCode): ... to here (KJS::ProgramNode::generateCode): ... and here
  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump): Added missing "\n".
10:54 PM Changeset in webkit [33144] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.

Bug 18274: ResolveNode::emitCode() doesn't make a new temporary when dst

is 0, leading to incorrect codegen

<http://bugs.webkit.org/show_bug.cgi?id=18274>

10:54 PM Changeset in webkit [33143] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.

  • fix bug in for..in codegen (gotta use ident, not m_ident)
  • kjs/nodes.cpp: (KJS::ForInNode::emitCode):
10:54 PM Changeset in webkit [33142] by mrowe@apple.com
  • 9 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.

  • Add suport for regexp literals
  • VM/CodeBlock.cpp: (KJS::regexpToSourceString): (KJS::regexpName): (KJS::CodeBlock::dump):
  • VM/CodeBlock.h:
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::addRegExp): (KJS::CodeGenerator::emitNewRegExp):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • VM/Opcode.h:
  • kjs/nodes.cpp: (KJS::RegExpNode::emitCode):
  • kjs/nodes.h:
10:54 PM Changeset in webkit [33141] by mrowe@apple.com
  • 12 edits
    1 copy
    1 add in branches/squirrelfish/JavaScriptCore

Add support for for..in nodes

Reviewed by Geoff

Added two new opcodes to get_pnames and next_pname to handle iterating
over the set of properties on an object. This iterator is explicitly
invalidated and the property name array is released on standard exit
from the loop, otherwise we rely on GC to do the clean up for us.

10:54 PM Changeset in webkit [33140] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej.

Change CodeGenerator::emitCall() so it increments the reference count of
registers passed to it, and change its callers so they don't needlessly
increment the reference count of the registers they are passing.

  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitCall):
  • kjs/nodes.cpp: (KJS::FunctionCallResolveNode::emitCode): (KJS::FunctionCallDotNode::emitCode):
10:54 PM Changeset in webkit [33139] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.

  • generate call for PostIncDotNode
  • kjs/nodes.cpp: (KJS::PostIncDotNode::emitCode):
  • kjs/nodes.h:
10:54 PM Changeset in webkit [33138] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Build fix.

  • fix build (not sure how this ever worked?)
  • kjs/nodes.cpp: (KJS::FunctionCallBracketNode::emitCode):
10:54 PM Changeset in webkit [33137] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoff.

  • generate code for FunctionCallBracketNode
  • kjs/nodes.cpp: (KJS::FunctionCallBracketNode::emitCode):
  • kjs/nodes.h:
10:54 PM Changeset in webkit [33136] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoff.

  • Fix two crashing SunSpider tests
  • VM/Machine.cpp: (KJS::Machine::privateExecute): set up 'this' properly for native calls.
  • kjs/list.h: (KJS::List::List): Fix intialization of buffer and size from vector, the initialization order was wrong.
10:54 PM Changeset in webkit [33135] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Build fix: marked ASSERT-only variables as UNUSED_PARAMs.

  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • kjs/JSVariableObject.h: (KJS::JSVariableObject::symbolTableInitializeVariable):
10:54 PM Changeset in webkit [33134] by mrowe@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

Next step toward global code: Moved get, put, and initializeVariable
functionality up into JSVariableObject, and changed JSActivation to
rely on it.

  • kjs/JSActivation.cpp: (KJS::JSActivation::JSActivation): (KJS::JSActivation::getOwnPropertySlot): (KJS::JSActivation::put): (KJS::JSActivation::initializeVariable):
  • kjs/JSVariableObject.h: (KJS::JSVariableObject::valueAt): (KJS::JSVariableObject::isReadOnly): (KJS::JSVariableObject::symbolTableGet): (KJS::JSVariableObject::symbolTablePut): (KJS::JSVariableObject::symbolTableInitializeVariable):
10:54 PM Changeset in webkit [33133] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam.

  • fix HashTable assertion on some SunSpider tests

Don't use -1 as the deleted value for JSValue*-keyed hashtables,
since it is a valid value (it's the immediate for -1).

  • VM/CodeGenerator.h: (KJS::CodeGenerator::JSValueHashTraits::emptyValue): (KJS::CodeGenerator::JSValueHashTraits::deletedValue):
  • kjs/JSImmediate.h: (KJS::JSImmediate::impossibleValue):
10:54 PM Changeset in webkit [33132] by mrowe@apple.com
  • 8 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.

Add support for calling Native constructors like new Array().

  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitConstruct):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • VM/Opcode.h:
  • kjs/nodes.cpp: (KJS::NewExprNode::emitCode):
  • kjs/nodes.h:
10:54 PM Changeset in webkit [33131] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam.

  • add some missing toOpbject calls to avoid crashing when calling methods on primitives
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
10:54 PM Changeset in webkit [33130] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

Changed Machine::dumpRegisters to take a pointer instead of a reference,
so gdb understands how to call it.

  • VM/Machine.cpp: (KJS::Machine::dumpRegisters): (KJS::Machine::privateExecute):
  • VM/Machine.h:
10:54 PM Changeset in webkit [33129] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

2008-03-31 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Maciej.

Fix CodeGenerator::addConstant() so it uses the functionExpressions
counter for function expressions, not the functions counter.

  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::addConstant):
10:54 PM Changeset in webkit [33128] by mrowe@apple.com
  • 8 edits in branches/squirrelfish/JavaScriptCore

2008-03-31 Sam Weinig <sam@webkit.org>

Reviewed by Geoffrey Garen.

Add emitCode support for TypeOfResolveNode and TypeOfValueNode.
Added new opcode op_type_of to handle them.

  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitNot): (KJS::CodeGenerator::emitInstanceOf): (KJS::CodeGenerator::emitTypeOf):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::jsTypeStringForValue): (KJS::Machine::privateExecute):
  • VM/Opcode.h:
  • kjs/nodes.cpp: (KJS::TypeOfResolveNode::emitCode): (KJS::TypeOfValueNode::emitCode):
  • kjs/nodes.h:
10:54 PM Changeset in webkit [33127] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

2008-03-31 Sam Weinig <sam@webkit.org>

Reviewed by Oliver Hunt.

Fix non-computed goto version of isOpcode. op_end is a valid opcode.

  • VM/Machine.cpp: (KJS::Machine::isOpcode):
10:53 PM Changeset in webkit [33126] by mrowe@apple.com
  • 8 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.

Added op_post_dec.

10:53 PM Changeset in webkit [33125] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

2008-03-31 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Geoffrey Garen.

Add support for FunctionCallDotNode.

  • kjs/nodes.cpp: (KJS::FunctionCallDotNode::emitCode):
  • kjs/nodes.h:
10:53 PM Changeset in webkit [33124] by mrowe@apple.com
  • 7 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Beth Dakin.

Next step toward global code: Removed more obsolete API, moved
saveLocalStorage and restoreLocalStorage to JSGlobalObject subclass,
since it's only intended for use there.

  • ChangeLog:
  • JavaScriptCore.exp:
  • kjs/Activation.h:
  • kjs/JSGlobalObject.cpp: (KJS::JSGlobalObject::saveLocalStorage): (KJS::JSGlobalObject::restoreLocalStorage):
  • kjs/JSGlobalObject.h:
  • kjs/JSVariableObject.cpp:
  • kjs/JSVariableObject.h: (KJS::JSVariableObject::JSVariableObjectData::JSVariableObjectData):
  • kjs/function.cpp: (KJS::ActivationImp::ActivationImp):
10:53 PM Changeset in webkit [33123] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Beth Dakin.

Next step toward global code: subclass JSActivation + JSActivationData
from JSVariableObject + JSVariableObjectData.

JSActivation now relies on JSVariableObject for access to registers and
symbol table, and for some delete functionality, but not for anything
else yet.

(KJS::JSActivation::mark): Cleaned up the style here a little bit.

10:53 PM Changeset in webkit [33122] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Beth Dakin.

Next step toward global code: store "rOffset" in JSVariableObjectData.

  • kjs/JSGlobalObject.h: (KJS::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData):
  • kjs/JSVariableObject.h: (KJS::JSVariableObject::JSVariableObjectData::JSVariableObjectData):
10:53 PM Changeset in webkit [33121] by mrowe@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.

Next steps toward global code:

  • Moved access to the register file into JSVariableObject.
  • Added more ASSERTs to indicate obsolete APIs there are just hanging around to stave off build failures.
  • kjs/JSGlobalObject.h: (KJS::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData):
  • kjs/JSVariableObject.h: (KJS::JSVariableObject::registers): (KJS::JSVariableObject::JSVariableObjectData::JSVariableObjectData): (KJS::JSVariableObject::JSVariableObject):
10:53 PM Changeset in webkit [33120] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

2008-03-31 Sam Weinig <sam@webkit.org>

Reviewed by Oliver. Tweaked somewhat by Maciej.

  • implement codegen for ReadModifyResolveNode
  • kjs/nodes.cpp: (KJS::emitReadModifyAssignment): (KJS::ReadModifyResolveNode::emitCode):
  • kjs/nodes.h:
10:53 PM Changeset in webkit [33119] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

2008-03-31 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Geoff.

Fix the build -- r31492 removed activation tear-off, but r31493 used it.

  • kjs/nodes.cpp: (KJS::FuncExprNode::makeFunction):
10:53 PM Changeset in webkit [33118] by mrowe@apple.com
  • 9 edits in branches/squirrelfish/JavaScriptCore

2008-03-31 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Maciej.

Add support for FuncExprNode to SquirrelFish.

  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
  • VM/CodeBlock.h:
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::addConstant): (KJS::CodeGenerator::emitNewFunctionExpression):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • VM/Opcode.h:
  • kjs/nodes.cpp: (KJS::FuncExprNode::emitCode): (KJS::FuncExprNode::makeFunction):
  • kjs/nodes.h:
10:53 PM Changeset in webkit [33117] by mrowe@apple.com
  • 7 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.

First step toward global code: removed some obsolete JSGlobalObject
APIs, changing clients to ASSERT_NOT_REACHED.

Activation tear-off and scope chain pushing is obsolete because we
statically detect whether an activation + scope node is required.

The variableObject() and activationObject() accessors are obsolete
because they haven't been maintained, and they're mostly used by
node evaluation code, anyway.

The localStorage() accessor is obsolete because everything is in
registers now, and it's mostly used by node evaluation code, anyway.

10:53 PM Changeset in webkit [33116] by mrowe@apple.com
  • 8 edits in branches/squirrelfish/JavaScriptCore

2008-03-31 Maciej Stachowiak <mjs@apple.com>

Reviewed by Darin.

  • implement codegen for bracket accessor and bracket assign
  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitGetPropVal): (KJS::CodeGenerator::emitPutPropVal):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • VM/Opcode.h:
  • kjs/nodes.cpp: (KJS::BracketAccessorNode::emitCode): (KJS::AssignBracketNode::emitCode):
  • kjs/nodes.h:
10:53 PM Changeset in webkit [33115] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Not reviewed.

Removed FIXME that I just fixed.

Added ASSERT to cover an error previously only covered by a FIXME.

  • kjs/JSActivation.cpp: (KJS::JSActivation::getOwnPropertySlot):
10:53 PM Changeset in webkit [33114] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Not reviewed.

Fixed indentation inside op_call. (I had left this code badly indented
to make the behavior-changing diff clearer.)

  • VM/Machine.cpp: (KJS::Machine::privateExecute):
10:53 PM Changeset in webkit [33113] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam Weinig.

Fixed up logging of jump instructions to follow the following style:

jump offset(->absoluteTarget)

  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
10:53 PM Changeset in webkit [33112] by mrowe@apple.com
  • 9 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam Weinig.

Changed the SymbolTable API to use int instead of size_t. It has been
using int internally for a while now (since squirrelfish symbols can
have negative indices).

10:53 PM Changeset in webkit [33111] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

2008-03-31 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Maciej.

Add support for FunctionCallValueNode.

  • kjs/nodes.cpp: (KJS::FunctionCallValueNode::emitCode):
  • kjs/nodes.h:
10:53 PM Changeset in webkit [33110] by mrowe@apple.com
  • 8 edits in branches/squirrelfish/JavaScriptCore

2008-03-31 Maciej Stachowiak <mjs@apple.com>

Reviewed by Oliver.

1) Implemented array literals

2) Renamed op_object_get and op_object_put to op_get_prop_id and
op_put_prop_id in preparation for new variants.

  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitNewArray): (KJS::CodeGenerator::emitGetPropId): (KJS::CodeGenerator::emitPutPropId): (KJS::CodeGenerator::emitPutPropIndex):
  • VM/CodeGenerator.h: (KJS::CodeGenerator::CodeGenerator): (KJS::CodeGenerator::propertyNames):
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • VM/Opcode.h:
  • kjs/nodes.cpp: (KJS::ArrayNode::emitCode): (KJS::PropertyListNode::emitCode): (KJS::DotAccessorNode::emitCode): (KJS::PostIncResolveNode::emitCode): (KJS::PreIncResolveNode::emitCode): (KJS::AssignResolveNode::emitCode): (KJS::AssignDotNode::emitCode):
  • kjs/nodes.h:
10:53 PM Changeset in webkit [33109] by mrowe@apple.com
  • 27 edits
    6 adds in branches/squirrelfish

JavaScriptCore:

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

Reviewed by Oliver Hunt.

Implemented native function calls. (Re-entering from native code back
to JS doesn't work yet, though.)

0.2% speedup overall, due to some inlining tweaks. 3.6% regression on
function-empty.js, since we're making a new virtual call and taking a
new branch inside every op_call.

I adjusted the JavaScriptCore calling convention to minimize overhead,
like so:

The machine calls a single virtual function, "getCallData", to get all
the data it needs for a function call. Native code still uses the old
"isObject()" check followed by an "implementsCall()" check, which
aliases to "getCallData". (We can optimize native code to use getCallData
at our leisure.)

To supply a list of arguments, the machine calls a new List constructor
that just takes a pointer and a length, without copying. Native code
still appends to the list one argument at a time. (We can optimize
native code to use the new List constructor at our leisure.)

  • VM/Machine.cpp: (KJS::Machine::privateExecute): Changed resize() call to grow() call, to encourage the compiler to inline the Vector code.
  • kjs/CallData.h: Added. (KJS::): CallData is a union because eventually native calls will stuff a function pointer into it, to eliminate the callAsFunction virtual call.
  • kjs/function.cpp: (KJS::FunctionImp::callAsFunction): Changed this to an ASSERT since it's not implemented yet.
  • kjs/list.h: Made the List class two-faced, to support the old way and the new way during this transition phase: lists can be made read-only with just a pointer and a legnth, or you can append to them one item at a time.
  • kjs/value.h: (KJS::jsUndefined): Marked this function ALWAYS_INLINE for the benefit of a certain compiler that doesn't know what's best for it.

JavaScriptGlue:

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

Reviewed by Oliver Hunt.

Build fix.

  • ForwardingHeaders/wtf/UnusedParam.h: Copied from ForwardingHeaders/wtf/OwnPtr.h.

WebCore:

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

Reviewed by Oliver Hunt.

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

WebKit/mac:

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

Reviewed by Oliver Hunt.

Build fix.

10:53 PM Changeset in webkit [33108] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

2008-03-30 Maciej Stachowiak <mjs@apple.com>

Reviewed by Oliver.

Dump code that codegen can't handle yet, so it's easier to prioritize missing nodes.

  • kjs/nodes.h: (KJS::Node::emitCode):
10:53 PM Changeset in webkit [33107] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

2008-03-30 Maciej Stachowiak <mjs@apple.com>

Reviewed by Oliver.

Improve dumping of bytecode and fix coding style accordingly.

Registers are printed as lr1 for locals, tr1 for temp registers. Identifiers print as
foobar(@id0) and constants print as "foo"(@k1) or 312.4(@k2) or the like. Constant and
identifier tables are dumped for reference.

  • VM/CodeBlock.cpp: (KJS::escapeQuotes): (KJS::valueToSourceString): (KJS::registerName): (KJS::constantName): (KJS::idName): (KJS::printUnaryOp): (KJS::printBinaryOp): (KJS::CodeBlock::dump):
  • VM/Machine.cpp: (KJS::resolve): (KJS::resolveBase): (KJS::Machine::privateExecute):
10:53 PM Changeset in webkit [33106] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

2008-03-30 Maciej Stachowiak <mjs@apple.com>

Reviewed by Oliver.

Implement StringNode and VoidNode (both pretty trivial).

  • kjs/nodes.cpp: (KJS::StringNode::emitCode): (KJS::VoidNode::emitCode):
  • kjs/nodes.h:
10:52 PM Changeset in webkit [33105] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

2008-03-30 Maciej Stachowiak <mjs@apple.com>

Reviewed by Sam.

Implement CommaNode.

  • kjs/nodes.cpp: (KJS::CommaNode::emitCode):
  • kjs/nodes.h:
10:52 PM Changeset in webkit [33104] by mrowe@apple.com
  • 8 edits in branches/squirrelfish/JavaScriptCore

2008-03-30 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Maciej.

Adds support for dot notation and object literals.

  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitNewObject):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • VM/Opcode.h:
  • kjs/nodes.cpp: (KJS::ObjectLiteralNode::emitCode): (KJS::PropertyListNode::emitCode): (KJS::DotAccessorNode::emitCode): (KJS::AssignDotNode::emitCode):
  • kjs/nodes.h:
10:52 PM Changeset in webkit [33103] by mrowe@apple.com
  • 7 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.

Mark the register file.

It's a conservative mark for now, but once registers are typed, we can
do an exact mark.

1.4% regression regardless of whether we actually do the marking.
GCC is is worth every penny.

  • VM/Machine.cpp: (KJS::Machine::privateExecute): Most of the changes here are just for the fact that "registers" is a pointer now.
  • kjs/JSGlobalObject.cpp: The global object owns the register file now.
10:52 PM Changeset in webkit [33102] by mrowe@apple.com
  • 7 edits in branches/squirrelfish/JavaScriptCore

Bug 18204: SquirrelFish: continue/break do not correctly handle scope popping
<http://bugs.webkit.org/show_bug.cgi?id=18204>

Reviewed by Maciej.

We now track the scope depth as part of a loop context, and add an
extra instruction op_jump_scopes that is used to perform a jump across
dynamic scope boundaries.

10:52 PM Changeset in webkit [33101] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

2008-03-28 Sam Weinig <sam@webkit.org>

Reviewed by Geoffrey Garen.

Add emitCode support for ConditionalNode.

  • kjs/nodes.cpp: (KJS::ConditionalNode::emitCode):
  • kjs/nodes.h:
10:52 PM Changeset in webkit [33100] by mrowe@apple.com
  • 7 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

Responding to feedback, added some comments, fixed up a few names, and
clarified that "locals" always means all local variables, functions,
and parameters.

10:52 PM Changeset in webkit [33099] by mrowe@apple.com
  • 9 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

Added support for "this".

Supply an implicit "this" value as the first argument to every function.
Alias the "this" keyword to that argument.

1% regression overall, 2.5% regression on empty function calls. Seems
like a reasonable cost for now, since we're doing more work.
(Eventually, we might decide to create a version of op_call specialized
for a known null "this" value.)

  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitCall):
  • VM/CodeGenerator.h: (KJS::CodeGenerator::CodeGenerator):
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • kjs/CommonIdentifiers.cpp: (KJS::CommonIdentifiers::CommonIdentifiers):
  • kjs/CommonIdentifiers.h:
  • kjs/nodes.cpp: (KJS::ThisNode::emitCode): (KJS::FunctionCallResolveNode::emitCode):
  • kjs/nodes.h:
10:52 PM Changeset in webkit [33098] by mrowe@apple.com
  • 5 edits in branches/squirrelfish/JavaScriptCore

Bug 18192: Squirrelfish needs support for break and continue
<http://bugs.webkit.org/show_bug.cgi?id=18192>

Reviewed by Geoff

Added a loop context stack to the code generator to provide the
correct jump labels for continue and goto. Added logic to the
currently implemented loop constructs to manage entry and exit
from the loop contexts. Finally, implemented codegen for break
and continue (and a pass through for LabelNode)

10:52 PM Changeset in webkit [33097] by mrowe@apple.com
  • 8 edits in branches/squirrelfish/JavaScriptCore

2008-03-27 Sam Weinig <sam@webkit.org>

Reviewed by Geoffrey Garen.

Add emitCode support for UnaryPlusNode, NegateNode, BitwiseNotNode and LogicalNotNode.

  • VM/CodeBlock.cpp: (KJS::printUnaryOp): (KJS::CodeBlock::dump):
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitToJSNumber): (KJS::CodeGenerator::emitNegate): (KJS::CodeGenerator::emitBitNot): (KJS::CodeGenerator::emitNot):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • VM/Opcode.h:
  • kjs/nodes.cpp: (KJS::UnaryPlusNode::emitCode): (KJS::NegateNode::emitCode): (KJS::BitwiseNotNode::emitCode): (KJS::LogicalNotNode::emitCode):
  • kjs/nodes.h:
10:52 PM Changeset in webkit [33096] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

2008-03-27 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Maciej Stachowiak.

Add support for LogicalAndNode and LogicalOrNode.

  • kjs/nodes.cpp: (KJS::LogicalAndNode::emitCode): (KJS::LogicalOrNode::emitCode):
  • kjs/nodes.h:
10:52 PM Changeset in webkit [33095] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

2008-03-27 Sam Weinig <sam@webkit.org>

Clean up code and debug output.

  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
10:52 PM Changeset in webkit [33094] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Moved an ASSERT to a more logical place.

  • VM/Machine.cpp: (KJS::Machine::privateExecute):
10:52 PM Changeset in webkit [33093] by mrowe@apple.com
  • 8 edits in branches/squirrelfish/JavaScriptCore

2008-03-27 Sam Weinig <sam@webkit.org>

Reviewed by Oliver Hunt.

Add emitCode support for InstanceOfNode.

  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitInstanceOf):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • VM/Opcode.h:
  • kjs/nodes.cpp: (KJS::InstanceOfNode::emitCode):
  • kjs/nodes.h:
10:52 PM Changeset in webkit [33092] by mrowe@apple.com
  • 9 edits in branches/squirrelfish/JavaScriptCore

Bug 18142: squirrelfish needs to support dynamic scoping/with
<http://bugs.webkit.org/show_bug.cgi?id=18142>

Reviewed by Maciej

Add support for dynamic scoping and add code to handle 'with'
statements.

10:52 PM Changeset in webkit [33091] by mrowe@apple.com
  • 8 edits in branches/squirrelfish/JavaScriptCore

2008-03-27 Sam Weinig <sam@webkit.org>

Reviewed by Geoffrey Garen.

Add emitCode support for NullNode, FalseNode, TrueNode, IfNode, IfElseNode, DoWhileNode and WhileNode

  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump): Dump op_jfalse opcode.
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitJumpIfFalse): Identical to emitJumpIfTrue except it emits the op_jfalse opcode. (KJS::CodeGenerator::emitLoad): Add and emitLoad override for booleans.
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::privateExecute): Adds execution of op_jfalse. It is identical to op_jtrue, except the the condition is reversed.
  • VM/Opcode.h: Add op_jfalse.
  • kjs/nodes.cpp: (KJS::NullNode::emitCode): Added. (KJS::FalseNode::emitCode): Added. (KJS::TrueNode::emitCode): Added. (KJS::IfNode::emitCode): Added. (KJS::IfElseNode::emitCode): Added. (KJS::DoWhileNode::emitCode): Added. (KJS::WhileNode::emitCode): Added.
  • kjs/nodes.h:
10:52 PM Changeset in webkit [33090] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Nixed an unused List.

The calm before my stormy war against the List class.

  • kjs/function_object.cpp: (KJS::FunctionObjectImp::construct):
10:52 PM Changeset in webkit [33089] by mrowe@apple.com
  • 5 edits
    9 adds in branches/squirrelfish

SunSpider:

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

Reviewed by Oliver Hunt.

--squirrelfish mode: pared down tests for squirrelfish to chew on.

  • sunspider:
  • tests/LIST:
  • tests/squirrelfish: Added.
  • tests/squirrelfish/function-closure.js: Added.
  • tests/squirrelfish/function-empty.js: Added.
  • tests/squirrelfish/function-missing-args.js: Added.
  • tests/squirrelfish/function-sum.js: Added.
  • tests/squirrelfish/loop-empty-resolve.js: Added.
  • tests/squirrelfish/loop-empty.js: Added.
  • tests/squirrelfish/loop-resolve.js: Added.
  • tests/squirrelfish/loop-sum.js: Added.

WebKitTools:

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

Reviewed by Oliver Hunt.

--squirrelfish mode: pared down tests for squirrelfish to chew on.

  • Scripts/run-sunspider:
10:52 PM Changeset in webkit [33088] by mrowe@apple.com
  • 9 edits in branches/squirrelfish/JavaScriptCore

2008-03-26 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Geoffrey Garen.

Adds support for EqualNode, NotEqualNode, StrictEqualNode, NotStrictEqualNode,
LessEqNode, GreaterNode, GreaterEqNode, MultNode, DivNode, ModNode, SubNode,
LeftShiftNode, RightShiftNode, UnsignedRightShiftNode, BitAndNode, BitXOrNode,
and BitOrNode.

  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitEqual): (KJS::CodeGenerator::emitNotEqual): (KJS::CodeGenerator::emitStrictEqual): (KJS::CodeGenerator::emitNotStrictEqual): (KJS::CodeGenerator::emitLessEq): (KJS::CodeGenerator::emitMult): (KJS::CodeGenerator::emitDiv): (KJS::CodeGenerator::emitMod): (KJS::CodeGenerator::emitSub): (KJS::CodeGenerator::emitLeftShift): (KJS::CodeGenerator::emitRightShift): (KJS::CodeGenerator::emitUnsignedRightShift): (KJS::CodeGenerator::emitBitAnd): (KJS::CodeGenerator::emitBitXOr): (KJS::CodeGenerator::emitBitOr):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::jsLessEq): (KJS::Machine::privateExecute):
  • VM/Opcode.h:
  • kjs/nodes.cpp: (KJS::MultNode::emitCode): (KJS::DivNode::emitCode): (KJS::ModNode::emitCode): (KJS::SubNode::emitCode): (KJS::LeftShiftNode::emitCode): (KJS::RightShiftNode::emitCode): (KJS::UnsignedRightShiftNode::emitCode): (KJS::GreaterNode::emitCode): (KJS::LessEqNode::emitCode): (KJS::GreaterEqNode::emitCode): (KJS::EqualNode::emitCode): (KJS::NotEqualNode::emitCode): (KJS::StrictEqualNode::emitCode): (KJS::NotStrictEqualNode::emitCode): (KJS::BitAndNode::emitCode): (KJS::BitXOrNode::emitCode): (KJS::BitOrNode::emitCode):
  • kjs/nodes.h:
10:52 PM Changeset in webkit [33087] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

Only print debug dumps in debug builds.

  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::generate):
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
10:52 PM Changeset in webkit [33086] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

Moved a few files around in the XCode project.

10:52 PM Changeset in webkit [33085] by mrowe@apple.com
  • 11 edits
    2 adds in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

Made closures work.

An activation object aliases to the register file until its associated
function returns, at which point it copies the registers for locals and
parameters into an independent storage buffer.

10:51 PM Changeset in webkit [33084] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

Fixed recent 25% regression on simple for loop test. GCC seems to be
very finicky about the code that gets inlined into
Machine::privateExecute.

Everything in this patch is simply the result of experiment.

The resolve and resolve_base opcodes do not seem to have gotten slower
from this change.

  • VM/Machine.cpp: (KJS::resolve): (KJS::resolveBase): (KJS::Machine::privateExecute):
  • kjs/nodes.h:
10:51 PM Changeset in webkit [33083] by mrowe@apple.com
  • 5 edits in branches/squirrelfish/JavaScriptCore

Bug 18059: squirrelfish needs to compile on platforms without computed goto
<http://bugs.webkit.org/show_bug.cgi?id=18059>

Reviewed by Geoff Garen

"Standard" macro style support for conditionalising the use of computed goto.

10:51 PM Changeset in webkit [33082] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Moved my notes from nodes.h to the wiki.

  • kjs/nodes.h:
10:51 PM Changeset in webkit [33081] by mrowe@apple.com
  • 9 edits
    10 copies
    7 adds in branches/squirrelfish/JavaScriptCore

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

Reviewed by NOBODY.

SquirrelFish lives.

Initial check-in of the code I've been carrying around. Lots of stuff
doesn't work. Plus a bunch of empty files.

10:37 PM Changeset in webkit [33080] by mrowe@apple.com
  • 1 copy in branches/squirrelfish

Re-create squirrelfish branch.

10:36 PM Changeset in webkit [33079] by mrowe@apple.com
  • 1 move in branches/old/squirrelfish-2008-05-12

Move aside squirrelfish branch in prepration for rebasing it on trunk.

7:04 PM Changeset in webkit [33078] by mitz@apple.com
  • 2 edits in trunk/WebKit/win
  • build fix
  • Interfaces/WebKit.idl: Touched.
6:11 PM Changeset in webkit [33077] by Adam Roben
  • 2 edits in trunk/WebCore

Turn on warnings as errors in WebCore.vcproj

Rubberstamped by Anders Carlsson.

  • WebCore.vcproj/WebCore.vcproj: Also let VS reformat the file as it saw fit. The important part is the removal of the WarnAsError="false" lines.
6:10 PM Changeset in webkit [33076] by Adam Roben
  • 6 edits
    3 adds in trunk

Fix a MSVC warning in PluginViewWin

WebCore:

Fix a MSVC warning in PluginViewWin

Reviewed by Anders Carlsson.

Test: http/tests/plugins/post-url-file.html

  • plugins/win/PluginViewWin.cpp: (WebCore::PluginView::handlePostReadFile): Added a missing return statement.

WebKitTools:

Support for testing NPN_PostURL

Reviewed by Anders Carlsson.

  • DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.cpp: (toCString): Added this helper function. (testPostURLFile): Added. Writes the passed-in content to the passed-in file and calls NPN_PostURL with the passed-in URL and target. (pluginInvoke): Added a case for testPostURLFile.
  • DumpRenderTree/win/LayoutTestControllerWin.cpp: (followShortcuts): Changed to allow paths that don't yet exist.

LayoutTests:

Test that NPN_PostURL works correctly

Reviewed by Anders Carlsson.

  • http/tests/plugins/post-url-file-expected.txt: Added.
  • http/tests/plugins/post-url-file.html: Added.
  • http/tests/plugins/resources/dump-post.pl: Added.
6:10 PM Changeset in webkit [33075] by Adam Roben
  • 2 edits in trunk/WebCore

Fix a MSVC warning in GetEOTHeader

Reviewed by Dan Bernstein.

  • platform/graphics/win/GetEOTHeader.cpp: (WebCore::getEOTHeader): MSVC complains that having a 0-sized array in a struct is a non-standard extension. I've replaced the 0-sized arrays with arrays of 1 element, and replaced sizeof(structType) with offsetof(structType, arrayMember).
6:09 PM Changeset in webkit [33074] by Adam Roben
  • 2 edits in trunk/WebCore

Fix a MSVC warning in TextCodecICU

Reviewed by John Sullivan and Dan Bernstein.

  • platform/text/TextCodecICU.cpp: (WebCore::ErrorCallbackSetter::~ErrorCallbackSetter): UCNV_SUB_STOP_ON_ILLEGAL is a string literal, so using == with it doesn't really do what we want. Use strcmp instead. It's OK to pass an unknown value to strcmp here since 1) UCNV_SUB_STOP_ON_ILLEGAL is only a single character long so we're not going to ready more than 2 bytes from oldContext, and 2) we're inside an ASSERT which will cause a crash anyway if it fails.
6:09 PM Changeset in webkit [33073] by Adam Roben
  • 2 edits in trunk/WebKitLibraries

Disable a MSVC warning

Reviewed by Darin Adler.

  • win/tools/vsprops/common.vsprops: Add warning 4503 to the list of disabled warnings. It's a warning about decorated names being longer than MSVC's limit of 4096 characters. This warning doesn't indicate a correctness problem, but these truncated decorated names will be harder to recognize during debugging or when they appear in linker errors.
6:08 PM Changeset in webkit [33072] by Adam Roben
  • 2 edits in trunk/WebCore

Fix a MSVC warning in CSSComputedStyleDeclaration

Reviewed by Geoff Garen.

  • css/CSSComputedStyleDeclaration.cpp: (WebCore::valueForRepeatRule): Removed some unreachable code.
6:08 PM Changeset in webkit [33071] by Adam Roben
  • 2 edits in trunk/WebCore

Fix a MSVC warning in InlineTextBox

Reviewed by Dan Bernstein.

  • rendering/InlineTextBox.cpp: (WebCore::InlineTextBox::paint): Initialize some variables that MSVC isn't smart enough to figure out will always be initialized in the cases where they are used.
6:07 PM Changeset in webkit [33070] by Adam Roben
  • 2 edits in trunk/WebCore

Fix a MSVC warning in Position

Reviewed by Darin Adler.

  • dom/Position.cpp: (WebCore::Position::getInlineBoxAndOffset): Use parentheses to make the precedence of our expressions explicit.
6:07 PM Changeset in webkit [33069] by Adam Roben
  • 2 edits in trunk/WebCore

Fix a MSVC warning in String

Reviewed by Geoff Garen.

  • platform/text/String.cpp: (WebCore::toIntegralType): Disable a bogus warning about using unary - on an unsigned value. MSVC isn't smart enough to figure out that isNegative will always be false when value is unsigned.
6:06 PM Changeset in webkit [33068] by Adam Roben
  • 2 edits in trunk/WebCore

Fix a MSVC warning in XMLHttpRequest

Reviewed by Geoff Garen.

  • xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::XMLHttpRequest): Added static_cast<unsigned long>.
5:28 PM Changeset in webkit [33067] by andersca@apple.com
  • 3 edits
    3 adds in trunk

WebCore:

2008-05-12 Anders Carlsson <andersca@apple.com>

Reviewed by Adam.

Handle the case when a resource with the same URL as the manifest is listed in the manifest.

  • loader/appcache/ApplicationCacheGroup.cpp: (WebCore::ApplicationCacheGroup::addEntry):

LayoutTests:

2008-05-12 Anders Carlsson <andersca@apple.com>

Reviewed by Adam.

Add test with a manifest file that lists itself.


  • http/tests/appcache/manifest-containing-itself-expected.txt: Added.
  • http/tests/appcache/manifest-containing-itself.html: Added.
  • http/tests/appcache/resources/manifest-containing-itself.manifest: Added.
5:23 PM Changeset in webkit [33066] by oliver@apple.com
  • 5 edits
    3 adds in branches/squirrelfish

Bug 18934: SQUIRRELFISH: ASSERT @ nytimes.com due to RegisterFile being clobbered
<https://bugs.webkit.org/show_bug.cgi?id=18934>

Reviewed by Geoff

Unfortunately we cannot create new statically optimised globals if there are any
tainted RegisterFiles on the RegisterFileStack. To handle this we re-introduce
(in a slightly cleaner form) the inImplicitCall concept to the RegisterFileStack.

5:14 PM Changeset in webkit [33065] by weinig@apple.com
  • 7 edits in trunk/WebCore

2008-05-12 Sam Weinig <sam@webkit.org>

Reviewed by Dan Bernstein.

Add parsing of AccessControlHeader and AccessItemRule.

  • xml/AccessControlList.cpp: (WebCore::AccessControlList::parseAccessControlHeader): When multiple http headers are sent in the response, the engine will concatenate them with commas separating the rules. This simply reverses that process by splitting on the commas. (WebCore::AccessControlList::show):
  • xml/AccessControlList.h:
  • xml/AccessItem.cpp: (WebCore::AccessItem::AccessItem): (WebCore::AccessItem::show):
  • xml/AccessItem.h: (WebCore::AccessItem::isValid):
  • xml/AccessItemRule.cpp: (WebCore::skipLWS): (WebCore::AccessItemRule::parseAccessItemRule): Parse the rule according to the BNF provided by the Access Control spec. (WebCore::AccessItemRule::parsePatternList): (WebCore::AccessItemRule::invalidate): (WebCore::AccessItemRule::show):
  • xml/AccessItemRule.h:
4:34 PM Changeset in webkit [33064] by ggaren@apple.com
  • 5 edits
    2 adds in branches/squirrelfish

JavaScriptCore:

2008-05-12 Geoffrey Garen <ggaren@apple.com>

Reviewed by Maciej Stachowiak.


Introduced support for function.caller.


Improved support for walking interesting scopes for function introspection.


This fixes all remaining layout tests not blocked by rebasing to trunk.


SunSpider reports no change.

  • VM/Machine.cpp: (KJS::Machine::dumpRegisters): Fixed a spacing issue.

LayoutTests:

2008-05-12 Geoffrey Garen <ggaren@apple.com>

Reviewed by Maciej Stachowiak.


Layout test for function.arguments and function.caller in interesting
scopes.

  • fast/js/function-dot-arguments-and-caller-expected.txt: Added.
  • fast/js/function-dot-arguments-and-caller.html: Added.
4:06 PM Changeset in webkit [33063] by ddkilzer@apple.com
  • 2 edits in trunk/WebCore

Fix logic error in DocLoader::clearPreloads()

Reviewed by Antti.

  • loader/DocLoader.cpp: (WebCore::DocLoader::clearPreloads): Be sure to decrease the preload count for the cached resource before trying to remove it from the cache. A non-zero preload count can prevent the resource from being removed from the cache.
3:51 PM Changeset in webkit [33062] by mrowe@apple.com
  • 2 edits in trunk/WebKitTools

Minor cleanup of the DRT Xcode project.

Reviewed by Sam Weinig.

  • DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: Use GCC_OPTIMIZATION_LEVEL rather than

OPTIMIZATION_CFLAGS. Don't include Info.plist in the "Copy Bundle Resources" build phase as it does
not need to be there.

3:48 PM Changeset in webkit [33061] by andersca@apple.com
  • 3 edits
    3 adds in trunk

WebCore:

2008-05-12 Anders Carlsson <andersca@apple.com>

Reviewed by Adam.

Handle empty manifest files without crashing.


  • loader/appcache/ApplicationCacheGroup.cpp: (WebCore::ApplicationCacheGroup::startLoadingEntry):

LayoutTests:

2008-05-12 Anders Carlsson <andersca@apple.com>

Reviewed by Adam.

  • http/tests/appcache/empty-manifest-expected.txt: Added.
  • http/tests/appcache/empty-manifest.html: Added.
  • http/tests/appcache/resources/empty.manifest: Added.
3:23 PM Changeset in webkit [33060] by alp@webkit.org
  • 2 edits in trunk/WebCore

2008-05-12 Alp Toker <alp@nuanti.com>

GTK+ build fix for breakage in r33056. Include limits.h for INT_MAX.

  • platform/graphics/FontCache.h:
3:22 PM Changeset in webkit [33059] by andersca@apple.com
  • 2 edits in trunk/LayoutTests

2008-05-12 Anders Carlsson <andersca@apple.com>

Update the expected result.


  • http/tests/appcache/simple-expected.txt:
3:11 PM Changeset in webkit [33058] by andersca@apple.com
  • 3 edits in trunk/WebCore

2008-05-12 Anders Carlsson <andersca@apple.com>

Reviewed by Adam.

Add user agent to requests when loading/updating the cache.


  • loader/FrameLoader.h:
  • loader/appcache/ApplicationCacheGroup.cpp: (WebCore::ApplicationCacheGroup::update): (WebCore::ApplicationCacheGroup::startLoadingEntry):
2:11 PM Changeset in webkit [33057] by andersca@apple.com
  • 11 edits
    7 adds in trunk

WebCore:

2008-05-12 Anders Carlsson <andersca@apple.com>

Reviewed by Adam.

Make it possible to perform synchronous loads from the application cache.


  • loader/DocumentLoader.cpp: (WebCore::DocumentLoader::shouldLoadResourceFromApplicationCache): Factor out code from scheduleApplicationCacheLoad in its own method.


(WebCore::DocumentLoader::scheduleApplicationCacheLoad):
Call shouldLoadResourceFromApplicationCache here instead.


  • loader/DocumentLoader.h:


  • loader/FrameLoader.cpp: (WebCore::FrameLoader::loadResourceSynchronously): Call shouldLoadResourceFromApplicationCache.

WebKitTools:

2008-05-12 Anders Carlsson <andersca@apple.com>

Reviewed by Adam.

Add support for testing application caches.


  • DumpRenderTree/mac/DumpRenderTree.mm: (dumpRenderTree): Empty the cache.


(resetWebViewToConsistentStateBeforeTesting):
Turn on support for the application cache.

LayoutTests:

2008-05-12 Anders Carlsson <andersca@apple.com>

Reviewed by Adam.

Add simple appcache test.

  • http/conf/mime.types:
  • http/tests/appcache: Added.
  • http/tests/appcache/resources: Added.
  • http/tests/appcache/resources/not-in-cache.txt: Added.
  • http/tests/appcache/resources/simple.manifest: Added.
  • http/tests/appcache/resources/simple.txt: Added.
  • http/tests/appcache/simple-expected.txt: Added.
  • http/tests/appcache/simple.html: Added.
  • platform/gtk/Skipped:
  • platform/qt/Skipped:
  • platform/win/Skipped:
2:02 PM Changeset in webkit [33056] by mitz@apple.com
  • 18 edits in trunk

WebCore:

Reviewed by Ada Chan and Sam Weinig.

Added a way for clients to let the cache know that they no longer need
font data, which lets the cache release it. Changed clients to track
most of the font data they get from the cache so that they can later
release it. Some instances of font data -- namely, those used for system
font fallback -- are still not tracked and will therefore remain in the
cache indefinitely.

  • WebCore.base.exp: Added exports for WebCoreStatistics in WebKit.
  • platform/graphics/Font.cpp: (WebCore::Font::Font): Changed to use FontFallbackList::create(). (WebCore::Font::update): Ditto.
  • platform/graphics/FontCache.cpp: (WebCore::FontCache::getCachedFontData): Added code to track the number of times a SimpleFontData instance has been requested from the cache, remove requested instances from the inactive list, and purge inactive font data if the inactive list has grown above its maximum allowed size. (WebCore::FontCache::releaseFontData): Added. Called by clients to let the cache know that they no longer need the font data. Adds the font data to the inactive list if the last client has released it. (WebCore::FontCache::purgeInactiveFontData): Added. Removes inactive font data from the cache (and the inactive list). (WebCore::FontCache::fontDataCount): Added to provide statistics. (WebCore::FontCache::inactiveFontDataCount): Ditto.
  • platform/graphics/FontCache.h:
  • platform/graphics/FontData.h: (WebCore::FontData::FontData): Added a member variable to store the highest glyph page tree level in which there is a node for this FontData. This is used to limit the depth of the search when pruning glyph page trees. (WebCore::FontData::setMaxGlyphPageTreeLevel): Added this accessor. (WebCore::FontData::maxGlyphPageTreeLevel): Ditto.
  • platform/graphics/FontFallbackList.cpp: (WebCore::FontFallbackList::FontFallbackList): Changed to start with a refcount of 1. (WebCore::FontFallbackList::invalidate): Added a call to releaseFontData(). (WebCore::FontFallbackList::releaseFontData): Added. Lets the font cache know that we no longer need the FontData in our font list. (WebCore::FontFallbackList::fontDataAt): Changed to record in the font list whether the font data is a custom font data or not. (WebCore::FontFallbackList::setPlatformFont): Ditto.
  • platform/graphics/FontFallbackList.h: (WebCore::FontFallbackList::create): Added and made the constructor private. (WebCore::FontFallbackList::~FontFallbackList): Added a call to releaseFontData().
  • platform/graphics/GlyphPageTreeNode.cpp: (WebCore::GlyphPageTreeNode::treeGlyphPageCount): Added to provide statistics. (WebCore::GlyphPageTreeNode::pageCount): Ditto.

(WebCore::GlyphPageTreeNode::pruneTreeFontData): Added.
(WebCore::GlyphPageTreeNode::getChild): Added code to update the font
data's maximum glyph page tree level.
(WebCore::GlyphPageTreeNode::pruneFontData): Added.

  • platform/graphics/GlyphPageTreeNode.h:
  • platform/graphics/SimpleFontData.cpp: (WebCore::SimpleFontData::~SimpleFontData): Added code to let the font cache know that we no longer need the small caps font data and to prune the glyph page trees.

WebKit/mac:

Reviewed by Ada Chan.

Added font cache statistics and a function to purge inactive font data.

  • Misc/WebCoreStatistics.h:
  • Misc/WebCoreStatistics.mm: (+[WebCoreStatistics cachedFontDataCount]): (+[WebCoreStatistics cachedFontDataInactiveCount]): (+[WebCoreStatistics purgeInactiveFontData]): (+[WebCoreStatistics glyphPageCount]):

WebKit/win:

Reviewed by Ada Chan.

Added font cache statistics and a function to purge inactive font data.

  • Interfaces/IWebCoreStatistics.idl:
  • WebCoreStatistics.cpp: (WebCoreStatistics::cachedFontDataCount): (WebCoreStatistics::cachedFontDataInactiveCount): (WebCoreStatistics::purgeInactiveFontData): (WebCoreStatistics::glyphPageCount):
  • WebCoreStatistics.h:
2:01 PM Changeset in webkit [33055] by mrowe@apple.com
  • 3 edits in trunk/WebKit/mac

Decorate some deprecated delegate methods with the availability macros.

The compiler doesn't appear to warn if a delegate implements these methods, but using the availability
macros is good for consistency and documentation.

Reviewed by Tim Hatcher.

  • WebView/WebFrameLoadDelegate.h:
  • WebView/WebUIDelegate.h:
2:01 PM Changeset in webkit [33054] by mrowe@apple.com
  • 3 edits in trunk/WebKit/mac

<rdar://problem/5835604> Deprecate HIWebView

Use of HIWebView is deprecated in favor of embedding a WebView in a HICocoaView.

Reviewed by Tim Hatcher.

  • Carbon/CarbonUtils.h: Include the availability macro header and decorate the functions appropriately.
  • Carbon/HIWebView.h: Ditto.
2:01 PM Changeset in webkit [33053] by mrowe@apple.com
  • 2 edits
    1 add in trunk/JavaScriptCore

<rdar://problem/4859666> WebKit needs availability macros in order to deprecate APIs

Create WebKit availability macros that key off the Mac OS X version being targeted to
determine the WebKit version being targeted. Applications can define
WEBKIT_VERSION_MIN_REQUIRED before including WebKit headers in order to target a specific
version of WebKit.

The availability header is being added to JavaScriptCore rather than WebKit as JavaScriptCore
is the lowest-level portion of the public WebKit API.

Reviewed by Tim Hatcher.

  • API/WebKitAvailability.h: Added.
  • JavaScriptCore.xcodeproj/project.pbxproj:
1:50 PM Changeset in webkit [33052] by kdecker@apple.com
  • 7 edits in trunk/WebKit/mac

Reviewed by Anders.

Fixed: <rdar://problem/5840884>_recursive_resumeNullEventsForAllNetscapePlugins and _pauseNullEvents not defined


Re-added these SPI methods because they are needed by some clients. They were accidentally removed
in changeset <http://trac.webkit.org/changeset/31028>


  • Plugins/WebBaseNetscapePluginView.h: Added stopTimers, restartTimers to the header.
  • WebView/WebFrame.mm: (-[WebFrame _recursive_resumeNullEventsForAllNetscapePlugins]): Re-addd. (-[WebFrame _recursive_pauseNullEventsForAllNetscapePlugins]): Ditto.
  • WebView/WebFrameInternal.h: Ditto.
  • WebView/WebHTMLView.mm: Ditto. (-[WebHTMLView _pauseNullEventsForAllNetscapePlugins]): Ditto. (-[WebHTMLView _resumeNullEventsForAllNetscapePlugins]): Ditto.
  • WebView/WebHTMLViewInternal.h: Ditto.
  • WebView/WebHTMLViewPrivate.h: Ditto.
1:13 PM Changeset in webkit [33051] by andersca@apple.com
  • 11 edits in trunk

WebCore:

2008-05-12 Anders Carlsson <andersca@apple.com>

Reviewed by Alexey.

Add ApplicationCacheStorage::empty() method which will empty
the application cache database.


  • WebCore.base.exp:
  • loader/appcache/ApplicationCache.cpp: (WebCore::ApplicationCache::clearStorageID):
  • loader/appcache/ApplicationCache.h:
  • loader/appcache/ApplicationCacheGroup.cpp: (WebCore::ApplicationCacheGroup::clearStorageID):
  • loader/appcache/ApplicationCacheGroup.h:
  • loader/appcache/ApplicationCacheResource.h: (WebCore::ApplicationCacheResource::clearStorageID):
  • loader/appcache/ApplicationCacheStorage.cpp: (WebCore::ApplicationCacheStorage::empty):
  • loader/appcache/ApplicationCacheStorage.h:

WebKit/mac:

2008-05-12 Anders Carlsson <andersca@apple.com>

Reviewed by Alexey.

Empty the application cache when changing the cache model.


  • WebView/WebView.mm: (+[WebView _setCacheModel:]):
11:34 AM Changeset in webkit [33050] by andersca@apple.com
  • 1 edit
    8 adds in trunk/WebKitExamplePlugins

2008-05-12 Anders Carlsson <andersca@apple.com>

Reviewed by Alexey.

Add input method test plug-in.


  • NetscapeInputMethodPlugin: Added.
  • NetscapeInputMethodPlugin/English.lproj: Added.
  • NetscapeInputMethodPlugin/English.lproj/InfoPlist.strings: Added.
  • NetscapeInputMethodPlugin/Info.plist: Added.
  • NetscapeInputMethodPlugin/NetscapeInputMethodPlugin.xcodeproj: Added.
  • NetscapeInputMethodPlugin/NetscapeInputMethodPlugin.xcodeproj/project.pbxproj: Added.
  • NetscapeInputMethodPlugin/main.m: Added. (NP_Initialize): (NP_GetEntryPoints): (NP_Shutdown): (NPP_New): (NPP_Destroy): (NPP_SetWindow): (NPP_NewStream): (NPP_DestroyStream): (NPP_WriteReady): (NPP_Write): (NPP_StreamAsFile): (NPP_Print): (handleDraw): (invalidatePlugin): (handleFocusChanged): (handleMouseMoved): (handleMouseDown): (NPP_HandleEvent): (NPP_URLNotify): (selectionRange): (NPP_InsertText): (NPP_DoCommandBySelector): (markedTextAttributes): (NPP_SetMarkedText): (NPP_UnmarkText): (NPP_HasMarkedText): (NPP_AttributedSubstringFromRange): (NPP_MarkedRange): (NPP_SelectedRange): (NPP_FirstRectForCharacterRange): (pluginTextInputFuncs): (NPP_GetValue): (NPP_SetValue):
  • NetscapeInputMethodPlugin/test.html: Added.
10:41 AM Changeset in webkit [33049] by andersca@apple.com
  • 8 edits
    1 copy in trunk/WebKit

WebKit:

2008-05-09 Anders Carlsson <andersca@apple.com>

Reviewed by Oliver.

<rdar://problem/5774495> Make Unicode text input possible in Netscape-style plug-ins


Add nptextinput.h as a public header.


  • WebKit.xcodeproj/project.pbxproj:

WebKit/mac:

2008-05-12 Anders Carlsson <andersca@apple.com>

Reviewed by Oliver.

<rdar://problem/5774495> Make Unicode text input possible in Netscape-style plug-ins


  • Plugins/WebBaseNetscapePluginView.h:
  • Plugins/WebBaseNetscapePluginView.mm: (-[WebBaseNetscapePluginView start]): Get the plug-in text input vtable pointer.


(-[WebBaseNetscapePluginView stop]):
Set the plug-in text input vtable pointer to 0.


(-[WebBaseNetscapePluginView inputContext]):
Return 0 for Carbon plug-ins since we don't want Cocoa to handle text input for them.


(-[WebBaseNetscapePluginView hasMarkedText]):
(-[WebBaseNetscapePluginView insertText:]):
(-[WebBaseNetscapePluginView markedRange]):
(-[WebBaseNetscapePluginView selectedRange]):
(-[WebBaseNetscapePluginView setMarkedText:selectedRange:]):
(-[WebBaseNetscapePluginView unmarkText]):
(-[WebBaseNetscapePluginView validAttributesForMarkedText]):
(-[WebBaseNetscapePluginView attributedSubstringFromRange:]):
(-[WebBaseNetscapePluginView characterIndexForPoint:]):
(-[WebBaseNetscapePluginView doCommandBySelector:]):
(-[WebBaseNetscapePluginView firstRectForCharacterRange:]):
(-[WebBaseNetscapePluginView conversationIdentifier]):
Implement NSTextInput and call into the plug-in text input vtable.


(browserTextInputFuncs):
New method which returns the browser input vtable.


(-[WebBaseNetscapePluginView getVariable:value:]):
Support getting the browser input vtable pointer.


  • Plugins/WebNetscapePluginEventHandlerCocoa.h:
  • Plugins/WebNetscapePluginEventHandlerCocoa.mm: (WebNetscapePluginEventHandlerCocoa::keyDown): (WebNetscapePluginEventHandlerCocoa::sendKeyEvent): If the plug-in returns 0 when a NPCocoaEventKeyDown is passed to NPP_HandleEvent, it means that the event should be passed on to the input manager.


  • Plugins/npapi.mm: (NPN_MarkedTextAbandoned): (NPN_MarkedTextSelectionChanged): Add implementations of browser input method methods.


  • Plugins/nptextinput.h: Added. Add file with new text input API.
10:29 AM Changeset in webkit [33048] by andersca@apple.com
  • 2 edits in trunk/WebCore

2008-05-12 Anders Carlsson <andersca@apple.com>

Reviewed by John.

Don't throw an exception if the string passed in is an invalid URL.


  • loader/appcache/DOMApplicationCache.cpp: (WebCore::DOMApplicationCache::remove):
10:11 AM Changeset in webkit [33047] by andersca@apple.com
  • 2 edits in trunk/WebCore

2008-05-12 Anders Carlsson <andersca@apple.com>

Reviewed by Mitz.

Add the variable enums for getting the input vtables.


  • bridge/npapi.h:
9:35 AM Changeset in webkit [33046] by Adam Roben
  • 2 edits in trunk/WebKit/win

Build fix

  • WebKitPrefix.cpp: Touch this so that it will rebuild after ENABLE_CROSS_DOCUMENT_MESSAGING was removed.
9:31 AM Changeset in webkit [33045] by Adam Roben
  • 2 edits in trunk/WebCore

Windows build fix

  • WebCorePrefix.cpp: Touched this so that it will rebuild now that ENABLE_CROSS_DOCUMENT_MESSAGING has been removed.
2:53 AM Changeset in webkit [33044] by mjs@apple.com
  • 2 edits in trunk/WebKitSite

2008-05-12 Maciej Stachowiak <mjs@apple.com>

Ooops, I made some mistakes trying to fix the validation errors. This time for sure.

  • demos/transitions-and-transforms/index.html:
2:45 AM Changeset in webkit [33043] by mjs@apple.com
  • 2 edits in trunk/WebKitSite

2008-05-12 Maciej Stachowiak <mjs@apple.com>

Make the demo valid HTML5 (according to validator.nu) and add alt text to the images.

  • demos/transitions-and-transforms/index.html:
2:10 AM Changeset in webkit [33042] by mjs@apple.com
  • 2 edits in trunk/WebKitSite

2008-05-12 Maciej Stachowiak <mjs@apple.com>

Tweaked demo visuals slightly.

  • demos/transitions-and-transforms/leopard.css:
12:43 AM Changeset in webkit [33041] by mjs@apple.com
  • 2 edits in trunk/WebKitSite

2008-05-12 Maciej Stachowiak <mjs@apple.com>

Tweak CSS to look a little better while loading.

  • demos/transitions-and-transforms/leopard.css:
12:39 AM Changeset in webkit [33040] by mjs@apple.com
  • 1 edit
    11 adds in trunk/WebKitSite

2008-05-12 Maciej Stachowiak <mjs@apple.com>

Not reviewed - new demo.


Added a demo of CSS Transforms and Transitions.

  • demos/transitions-and-transforms: Added.
  • demos/transitions-and-transforms/Finder Coverflow.png: Added.
  • demos/transitions-and-transforms/Horsehead.png: Added.
  • demos/transitions-and-transforms/Mail Stationery.png: Added.
  • demos/transitions-and-transforms/Quick Look.png: Added.
  • demos/transitions-and-transforms/Spaces.png: Added.
  • demos/transitions-and-transforms/Stacks.png: Added.
  • demos/transitions-and-transforms/Time Machine.png: Added.
  • demos/transitions-and-transforms/index.html: Added.
  • demos/transitions-and-transforms/leopard.css: Added.
  • demos/transitions-and-transforms/no-style.html: Added.
12:36 AM Changeset in webkit [33039] by ap@webkit.org
  • 2 edits in trunk/JavaScriptCore

Reviewed by Maciej.

https://bugs.webkit.org/show_bug.cgi?id=18828
Reproducible crash with PAC file

Naively moving JavaScriptCore into thread-specific data was inappropriate in the face of
exiting JavaScriptCore API clients, which expect a different therading model. Temporarily
disabling ThreadSpecific implementation until this can be sorted out.

  • wtf/ThreadSpecific.h:
12:12 AM Changeset in webkit [33038] by ap@webkit.org
  • 133 edits in trunk

Roll out recent threading changes (r32807, r32810, r32819, r32822) to simplify
SquirrelFish merging.

May 11, 2008:

10:14 PM Changeset in webkit [33037] by kevino@webkit.org
  • 2 edits in trunk/WebKit/wx

Previous commit made bdash sad. Restore happiness state by fixing missed style issue.

10:06 PM Changeset in webkit [33036] by kevino@webkit.org
  • 5 edits in trunk/WebKit/wx

Reviewed by Kevin Ollivier.

Fix scrolling issues by implementing transitionToCommittedNewPage() so the scroll positions are reset when a new page is loaded, and also maintained so that back and next restore the scroll positions as well. This also simplifies the logic for initializing and managing wxWebView.

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

9:58 PM Changeset in webkit [33035] by kevino@webkit.org
  • 2 edits in trunk/WebCore

Reviewed by Kevin Ollivier.

Since wx popup menus dismiss themselves when an item is selected we need to call hidePopup so webkit's internal state is correct.

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

5:34 PM Changeset in webkit [33034] by weinig@apple.com
  • 4 edits
    1 add in trunk/WebCore

2008-05-11 Sam Weinig <sam@webkit.org>

Reviewed by Mark Rowe.

Move some generic parsing functions into a new ParserUtilities header so that
they can be used for non-SVG builds too.

  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/text/ParserUtilities.h: Added. (WebCore::skipString):
  • svg/SVGParserUtilities.h: (WebCore::isWhitespace): (WebCore::skipOptionalSpaces): (WebCore::skipOptionalSpacesOrDelimiter):
1:26 PM Changeset in webkit [33033] by weinig@apple.com
  • 6 edits
    6 adds in trunk/WebCore

2008-05-11 Sam Weinig <sam@webkit.org>

Reviewed by Dan Bernstein.

Add scaffolding for the implementation of Access Control for Cross-site Requests.

  • GNUmakefile.am:
  • WebCore.pro:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • WebCoreSources.bkl:
  • xml/AccessControlList.cpp: Added. (WebCore::AccessControlList::AccessControlList): (WebCore::AccessControlList::~AccessControlList): (WebCore::AccessControlList::parseAccessControlHeader): (WebCore::AccessControlList::checkOrigin):
  • xml/AccessControlList.h: Added.
  • xml/AccessItem.cpp: Added. (WebCore::AccessItem::AccessItem): (WebCore::AccessItem::parseAccessItem): (WebCore::AccessItem::matches):
  • xml/AccessItem.h: Added.
  • xml/AccessItemRule.cpp: Added. (WebCore::AccessItemRule::AccessItemRule): (WebCore::AccessItemRule::parseAccessItemRule):
  • xml/AccessItemRule.h: Added.
9:36 AM Changeset in webkit [33032] by jchaffraix@webkit.org
  • 2 edits in trunk/WebCore

2008-05-11 Julien Chaffraix <jchaffraix@webkit.org>

Debug build fix.

  • loader/appcache/ApplicationCache.cpp: Include stdio.h as we are using printf in ApplicationCache::dump().
4:15 AM Changeset in webkit [33031] by cwzwarich@webkit.org
  • 3 edits
    3 adds in branches/squirrelfish

2008-05-11 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Oliver.

Bug 18961: SQUIRRELFISH: Gmail doesn't load
<https://bugs.webkit.org/show_bug.cgi?id=18961>

Fix codegen for logical nodes so that they don't use their destination
as a temporary.

  • kjs/nodes.cpp: (KJS::LogicalAndNode::emitCode): (KJS::LogicalOrNode::emitCode):
  • fast/js/codegen-temporaries-expected.txt: Added.
  • fast/js/codegen-temporaries.html: Added.
  • fast/js/resources/codegen-temporaries.js: Added.

May 10, 2008:

7:28 PM Changeset in webkit [33030] by mitz@apple.com
  • 3 edits in trunk/WebCore

Reviewed by Jessica Kahn.

  • add a copy assignment operator to FontPlatformData on Mac to properly retain the m_font data member.
  • platform/graphics/mac/FontPlatformData.h:
  • platform/graphics/mac/FontPlatformDataMac.mm: (WebCore::FontPlatformData::FontPlatformData): (WebCore::~FontPlatformData): (WebCore::FontPlatformData::operator=): (WebCore::FontPlatformData::setFont):
3:01 PM Changeset in webkit [33029] by adele@apple.com
  • 2 edits in trunk/WebCore

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

Reviewed by Tim Hatcher.

Fix crash for WebKit clients that don't set a group name for the WebView/Page.

  • page/PageGroup.cpp: (WebCore::PageGroup::PageGroup): Instead of adding the Page directly to the group, call the addPage method, since it does extra work initializing m_localStorage.
2:18 PM Changeset in webkit [33028] by mjs@apple.com
  • 1 edit
    1 add in branches/squirrelfish/WebCore

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

Build fix.


  • add missing forwarding header
  • ForwardingHeaders/kjs/SourceProvider.h: Added.
1:36 PM Changeset in webkit [33027] by mjs@apple.com
  • 38 edits
    3 adds in branches/squirrelfish

JavaScriptCore:

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

Reviewed by Oliver.


Three layout tests are fixed:

fast/js/toString-elision-trailing-comma.html
fast/js/toString-prefix-postfix-preserve-parens.html
fast/js/kde/lval-exceptions.html


Functions now save a shared subrange of the original source used
to make them (so in the common case this adds no storage above the
memory cache).


  • kjs/SourceProvider.h: Added. (KJS::SourceProvider): New abstract base class for classes that provide on-demand access to the source for a JavaScript program. This allows function objects to have access to their original source without copying. (KJS::UStringSourceProvider): SourceProvider subclass backed by a KJS::UString. (KJS::UStringSourceProvider::create): (KJS::UStringSourceProvider::getRange): (KJS::UStringSourceProvider::data): (KJS::UStringSourceProvider::length): (KJS::UStringSourceProvider::UStringSourceProvider):
  • kjs/SourceRange.h: Added. (KJS::SourceRange::SourceRange): Class that holds a SourceProvider and a character range into the source, to encapsulate on-demand access to the source of a function. (KJS::SourceRange::toString):
  • VM/Machine.cpp: (KJS::eval): Pass a UStringSourceProvider to the parser.
  • kjs/Parser.cpp: (KJS::Parser::parse): Take a SourceProvider and pass it on to the lexer.
  • kjs/Parser.h: (KJS::Parser::parse): Take a SourceProvider.
  • kjs/lexer.cpp: (KJS::Lexer::setCode): Take a SourceProvider; keep it around, and use it to get the raw buffer and length.
  • kjs/lexer.h: (KJS::Lexer::sourceRange): Convenience function to get a source range based on the lexer's source provieder, and char offsets right before and after the desired range.
  • kjs/function.cpp: (KJS::globalFuncEval): Pass a UStringSourceProvider to the parser.
  • kjs/function_object.cpp: (KJS::functionProtoFuncToString): Use toSourceString to get the source. (KJS::FunctionObjectImp::construct): Give the parser a UStringSourceProvider.
  • kjs/grammar.y: When parsing a function declaration, function expression, or getter or setter, tell the function body about its SourceRange.
  • kjs/interpreter.cpp: (KJS::Interpreter::checkSyntax): Pass a SourceProvider to the parser. (KJS::Interpreter::evaluate): Pass a SourceProvider to the parser.
  • kjs/interpreter.h:
  • kjs/nodes.h: (KJS::FunctionBodyNode::setSource): Establish a SourceRange for this function. (KJS::FunctionBodyNode::toSourceString): Get the source string out of the SourceRange. (KJS::FuncExprNode::): Take a SourceRange and set it on the body. (KJS::FuncDeclNode::): ditto
  • kjs/testkjs.cpp: (prettyPrintScript): Use a SourceProvider appropriately.
  • JavaScriptCore.exp: Export new symbols.
  • JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Add new files.
  • JavaScriptCore.xcodeproj/project.pbxproj: Add new files.

JavaScriptGlue:

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

Reviewed by Oliver.


  • JSRun.cpp: (JSRun::Evaluate): Use UString version of eveluate() instead of the now departed UChar*/length variant; use of the lower-level version was gratuitous in any case. (JSRun::CheckSyntax): Ditto for checkSyntax().

WebCore:

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

Reviewed by Oliver.

  • bindings/js/StringSourceProvider.h: Added. SourceProvider subclass backed by a WebCore::String. (WebCore::StringSourceProvider::create): (WebCore::StringSourceProvider::getRange): (WebCore::StringSourceProvider::data): (WebCore::StringSourceProvider::length): (WebCore::StringSourceProvider::StringSourceProvider):
  • bindings/js/kjs_proxy.cpp: (WebCore::KJSProxy::evaluate): Pass a StringSourceProvider to evaluate() instead of UChar* / length.
  • html/HTMLScriptElement.cpp: (WebCore::HTMLScriptElement::text): Modified to return the original string as-is when the script element contains only a single text node, to avoid excess memory use.


  • WebCore.vcproj/WebCore.vcproj: Add new file to build.
  • WebCore.xcodeproj/project.pbxproj: ditto

LayoutTests:

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

Reviewed by Oliver.

All of these tests expected function.toString to somewhat change
things from the raw original source. They are now prepared for the
fact that this does not happen.


  • fast/js/function-decompilation-operators.html:
  • fast/js/function-names-expected.txt:
  • fast/js/function-prototype-expected.txt:
  • fast/js/function-prototype.html:
  • fast/js/function-toString-object-literals-expected.txt:
  • fast/js/function-toString-parentheses-expected.txt:
  • fast/js/kde/lval-exceptions-expected.txt:
  • fast/js/modify-non-references-expected.txt:
  • fast/js/resources/function-names.js:
  • fast/js/resources/function-toString-object-literals.js:
  • fast/js/resources/function-toString-parentheses.js:
  • fast/js/resources/modify-non-references.js:
  • fast/js/resources/toString-prefix-postfix-preserve-parens.js:
  • fast/js/toString-prefix-postfix-preserve-parens-expected.txt:
6:09 AM Changeset in webkit [33026] by jchaffraix@webkit.org
  • 3 edits in trunk/JavaScriptCore

2008-05-10 Julien Chaffraix <jchaffraix@webkit.org>

Qt & wx build fix.

  • JavaScriptCore.pri: Add profiler/Profile.cpp.
  • JavaScriptCoreSources.bkl: Ditto.
2:43 AM Changeset in webkit [33025] by rwlbuis@webkit.org
  • 2 edits in trunk/JavaScriptCore

Reviewed by Maciej.

Gtk+ build fix

1:15 AM Changeset in webkit [33024] by oliver@apple.com
  • 6 edits in branches/squirrelfish/JavaScriptCore

Bring back RegisterFile tainting in order to correctly handle
natively implemented getters and setters that re-enter JavaScript

Reviewed by Maciej

May 9, 2008:

9:44 PM Changeset in webkit [33023] by weinig@apple.com
  • 3 edits
    2 adds in trunk

WebCore:

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

Reviewed by Mark Rowe.

Fix for https://bugs.webkit.org/show_bug.cgi?id=18958
NULL pointer dereference in NamedAttrMap::setNamedItem

Test: fast/dom/NamedNodeMap-setNamedItem-crash.html

  • dom/NamedAttrMap.cpp: (WebCore::NamedAttrMap::setNamedItem): Null check the argument.

LayoutTests:

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

Reviewed by Mark Rowe.

Test for https://bugs.webkit.org/show_bug.cgi?id=18958
NULL pointer dereference in NamedAttrMap::setNamedItem

  • fast/dom/NamedNodeMap-setNamedItem-crash-expected.txt: Added.
  • fast/dom/NamedNodeMap-setNamedItem-crash.html: Added.
8:44 PM Changeset in webkit [33022] by mrowe@apple.com
  • 8 edits
    1 delete in trunk/WebKit

Roll out r33018 as it broke the builds.

8:37 PM Changeset in webkit [33021] by mjs@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

2008-05-09 Maciej Stachowiak <mjs@apple.com>

Reviewed by Oliver.


  • track character offsets of open and close braces, in preparation for saving function source


I verified that there is no performance regression from this change.

  • kjs/grammar.y:
  • kjs/lexer.cpp: (KJS::Lexer::lex): (KJS::Lexer::matchPunctuator):
  • kjs/lexer.h:
5:46 PM Changeset in webkit [33020] by andersca@apple.com
  • 2 edits in trunk

2008-05-09 Anders Carlsson <andersca@apple.com>

Reviewed by Mark.

Add x86_64 rule.


  • Makefile:
5:44 PM Changeset in webkit [33019] by mrowe@apple.com
  • 3 edits in trunk/WebKitTools

Update TestNetscapePlugIn to build 64-bit using the Cocoa event model.

It currently does not attempt to print events which means that plugins/mouse-events.html
will fail when run 64-bit. All other tests that use this plugin pass.

Reviewed by Anders Carlsson.

  • DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.cpp:

(testGetIntIdentifier):

  • DumpRenderTree/TestNetscapePlugIn.subproj/main.cpp:

(NPP_New):
(NPP_HandleEvent):

5:40 PM Changeset in webkit [33018] by andersca@apple.com
  • 8 edits
    1 add in trunk/WebKit

WebKit:

2008-05-09 Anders Carlsson <andersca@apple.com>

Reviewed by Oliver.

<rdar://problem/5774495> Make Unicode text input possible in Netscape-style plug-ins


Add nptextinput.h as a public header.


  • WebKit.xcodeproj/project.pbxproj:

WebKit/mac:

2008-05-09 Anders Carlsson <andersca@apple.com>

Reviewed by Oliver.

<rdar://problem/5774495> Make Unicode text input possible in Netscape-style plug-ins


  • Plugins/WebBaseNetscapePluginView.h:
  • Plugins/WebBaseNetscapePluginView.mm: (-[WebBaseNetscapePluginView start]): Get the plug-in text input vtable pointer.


(-[WebBaseNetscapePluginView stop]):
Set the plug-in text input vtable pointer to 0.


(-[WebBaseNetscapePluginView inputContext]):
Return 0 for Carbon plug-ins since we don't want Cocoa to handle text input for them.


(-[WebBaseNetscapePluginView hasMarkedText]):
(-[WebBaseNetscapePluginView insertText:]):
(-[WebBaseNetscapePluginView markedRange]):
(-[WebBaseNetscapePluginView selectedRange]):
(-[WebBaseNetscapePluginView setMarkedText:selectedRange:]):
(-[WebBaseNetscapePluginView unmarkText]):
(-[WebBaseNetscapePluginView validAttributesForMarkedText]):
(-[WebBaseNetscapePluginView attributedSubstringFromRange:]):
(-[WebBaseNetscapePluginView characterIndexForPoint:]):
(-[WebBaseNetscapePluginView doCommandBySelector:]):
(-[WebBaseNetscapePluginView firstRectForCharacterRange:]):
(-[WebBaseNetscapePluginView conversationIdentifier]):
Implement NSTextInput and call into the plug-in text input vtable.


(browserTextInputFuncs):
New method which returns the browser input vtable.


(-[WebBaseNetscapePluginView getVariable:value:]):
Support getting the browser input vtable pointer.


  • Plugins/WebNetscapePluginEventHandlerCocoa.h:
  • Plugins/WebNetscapePluginEventHandlerCocoa.mm: (WebNetscapePluginEventHandlerCocoa::keyDown): (WebNetscapePluginEventHandlerCocoa::sendKeyEvent): If the plug-in returns 0 when a NPCocoaEventKeyDown is passed to NPP_HandleEvent, it means that the event should be passed on to the input manager.


  • Plugins/npapi.mm: (NPN_MarkedTextAbandoned): (NPN_MarkedTextSelectionChanged): Add implementations of browser input method methods.


  • Plugins/nptextinput.h: Added. Add file with new text input API.
5:26 PM Changeset in webkit [33017] by beidson@apple.com
  • 9 edits in trunk

WebKit/win:

Reviewed by Adam Roben

Fix a hang-on-quit bug where in the DLL_PROCESS_DETACH DllMain callback, we assummed that
we could cleanly shutdown WebKit but we couldn't because any background threads have already
been uncleanly aborted at that point.


  • ForEachCoClass.cpp: (shutDownWebKit): Moved from WebKitDLL to here, to be exposed via WebKit.def
  • ForEachCoClass.h:


  • WebKit.vcproj/WebKit.def:
  • WebKit.vcproj/WebKit_debug.def:


  • WebKitDLL.cpp: (DllMain): Don't call shutDownWebKit here


WebKitTools:

Reviewed by Adam Roben

Explicitly call shutDownWebKit() before quitting.

  • Drosera/win/Drosera.cpp: (_tWinMain):
  • DumpRenderTree/win/DumpRenderTree.cpp: (main):
5:25 PM Changeset in webkit [33016] by ddkilzer@apple.com
  • 1 edit in trunk/WebCore/DerivedSources.make

Changed tabs into spaces for VPATH and DOM_CLASSES items.

4:51 PM Changeset in webkit [33015] by oliver@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

Debug build fix

No reviewer

4:47 PM Changeset in webkit [33014] by mrowe@apple.com
  • 2 edits in trunk/WebKitTools

Fix the Tiger build of Drosera.

  • Drosera/config.h: Define BUILDING_ON_TIGER when building on Tiger.
4:10 PM Changeset in webkit [33013] by oliver@apple.com
  • 13 edits in branches/squirrelfish

Build fixes for SquirrelFish on windows.

Reviewed by Geoff

2:28 PM Changeset in webkit [33012] by beidson@apple.com
  • 2 edits in trunk/JavaScriptCore

Build Fix

2:08 PM Changeset in webkit [33011] by ggaren@apple.com
  • 2 edits in branches/squirrelfish/LayoutTests

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

Reviewed by Sam Weinig.


Restored the expected results for viewsource-empty-attribute-value.html
to what they were prior to r31100. These results expect that the
top-level name in the frame path is "" instead of "1".


It's not clear how r31100 changed the top-level frame in the frame path
to be named "1". The change definitely wasn't related to any expected
behavior in r31100, which was about default margin-bottom for form
elements in quirks mode.


It's also not clear how squirrelfish changes things back.


Sam mentioned that the test result changes intermittently on trunk.


For now, I don't think we need to think deeply about this issue,
since the "" result seems more correct than the "1" result.

  • fast/frames/viewsource-empty-attribute-value-expected.txt:
2:06 PM Changeset in webkit [33010] by kmccullough@apple.com
  • 2 edits in trunk/WebCore

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

Build fix.

  • page/Console.cpp: (WebCore::Console::profile):
1:52 PM Changeset in webkit [33009] by weinig@apple.com
  • 20 edits in trunk

WebCore:

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

Rubber-stamped by Mark Rowe.

Remove the ENABLE_CROSS_DOCUMENT_MESSAGING #ifdefs.

  • Configurations/WebCore.xcconfig:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.vcproj/build-generated-files.sh:
  • bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::customGetOwnPropertySlot): (WebCore::JSDOMWindow::postMessage):
  • bindings/js/JSEventCustom.cpp: (WebCore::toJS):
  • bindings/objc/DOMEvents.mm: (+[DOMEvent _wrapEvent:WebCore::]):
  • dom/Document.cpp: (WebCore::Document::createEvent):
  • dom/Event.cpp: (WebCore::Event::isMessageEvent):
  • dom/Event.h:
  • dom/MessageEvent.cpp:
  • dom/MessageEvent.h:
  • dom/MessageEvent.idl:
  • page/DOMWindow.cpp: (WebCore::DOMWindow::postMessageTimerFired):
  • page/DOMWindow.h:
  • page/DOMWindow.idl:

WebKit/win:

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

Rubber-stamped by Mark Rowe.

Remove the ENABLE_CROSS_DOCUMENT_MESSAGING #ifdefs.

  • WebKit.vcproj/WebKit.vcproj:

WebKitTools:

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

Rubber-stamped by Mark Rowe.

Remove the ENABLE_CROSS_DOCUMENT_MESSAGING #ifdefs.

  • Scripts/build-webkit:
1:43 PM Changeset in webkit [33008] by Adam Roben
  • 2 edits in trunk/WebKit/win

Build fix

  • Interfaces/WebKit.idl: Touched.
1:18 PM Changeset in webkit [33007] by kmccullough@apple.com
  • 5 edits
    2 adds in trunk/JavaScriptCore

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

Reviewed by Tim.

-<rdar://problem/5770054> JavaScript profiler (10928)
-Add Profile class so that all profiles can be stored and retrieved by
the WebInspector when that time comes.

  • JavaScriptCore.exp: Export the new function signatures.
  • JavaScriptCore.xcodeproj/project.pbxproj: Add the new files to the project
  • profiler/Profile.cpp: Added. This class represents a single run of the profiler. (KJS::Profile::Profile): (KJS::Profile::willExecute): (KJS::Profile::didExecute): (KJS::Profile::printDataInspectorStyle): (KJS::functionNameCountPairComparator): (KJS::Profile::printDataSampleStyle):
  • profiler/Profile.h: Added. Ditto (KJS::Profile::stopProfiling):
  • profiler/Profiler.cpp: Now the profiler keeps track of many profiles but only runs one at a time. (KJS::Profiler::startProfiling): (KJS::Profiler::stopProfiling): (KJS::Profiler::willExecute): (KJS::Profiler::didExecute): (KJS::Profiler::printDataInspectorStyle): (KJS::Profiler::printDataSampleStyle):
  • profiler/Profiler.h: Ditto. (KJS::Profiler::~Profiler): (KJS::Profiler::allProfiles): (KJS::Profiler::clearProfiles):
1:14 PM Changeset in webkit [33006] by weinig@apple.com
  • 21 edits
    2 adds in trunk

WebCore:

2008-05-09 Adam Barth <abarth-webkit@adambarth.com>

Reviewed by Sam Weinig.

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

Make postMessage generate an event on the window instead of the
document.

Test: http/tests/messaging/cross-domain-message-event-dispatch.html

  • dom/EventTargetNode.cpp: (WebCore::EventTargetNode::dispatchWindowEvent):
  • dom/EventTargetNode.h:
  • page/DOMWindow.cpp: (WebCore::DOMWindow::postMessageTimerFired):

LayoutTests:

2008-05-09 Adam Barth <abarth-webkit@adambarth.com>

Reviewed by Sam Weinig.

Update tests to listen for message events on the window instead of
the document. Also, added a test that the event is sent to the
window and not to the document.

  • http/tests/messaging/cross-domain-message-event-dispatch-expected.txt: Added.
  • http/tests/messaging/cross-domain-message-event-dispatch.html: Added.
  • http/tests/messaging/cross-domain-message-send.html:
  • http/tests/messaging/resources/cross-domain-message-receive.html:
  • http/tests/security/cross-frame-access-delete.html:
  • http/tests/security/cross-frame-access-history-put.html:
  • http/tests/security/cross-frame-access-location-put.html:
  • http/tests/security/postMessage/delivery-order.html:
  • http/tests/security/postMessage/invalid-origin-throws-exception.html:
  • http/tests/security/postMessage/javascript-page-still-sends-origin.html:
  • http/tests/security/postMessage/origin-unaffected-by-base-tag.html:
  • http/tests/security/postMessage/origin-unaffected-by-document-domain.html:
  • http/tests/security/postMessage/resources/post-message-listener.html:
  • http/tests/security/postMessage/target-origin.html:
  • http/tests/security/resources/cross-frame-iframe-for-delete-test.html:
  • http/tests/security/resources/cross-frame-iframe-for-history-put-test.html:
  • http/tests/security/resources/cross-frame-iframe-for-location-put-test.html:
  • http/tests/security/xss-eval.html:
6:08 AM Changeset in webkit [33005] by Simon Hausmann
  • 2 edits in trunk

Simon Hausmann <Simon Hausmann>

Removed explicit linkage against libxml and libxslt on Qt/Mac builds.

This dependency is completely unnecessary here and creates only problems by
propagating through WebCore.pro over libQtWebKit.prl right now customer
applications.

4:40 AM Changeset in webkit [33004] by Simon Hausmann
  • 3 edits in trunk/WebKit/qt

Thiago Macieira <tjmaciei@trolltech.com>

Fix bad includes in QtWebKit public headers.

Make sure to include qglobal.h using the QtCore prefix so that an explicit
include/QtCore is not needed in the application's build system. Also make sure
that qwebsettings.h includes the local qwebkitglobal.h.

3:21 AM Changeset in webkit [33003] by Simon Hausmann
  • 2 edits in trunk/WebCore

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

Reviewed by Simon.

Replaced all instances of qDebug() with LOG(Media, ...)
in MediaPlayerPrivatePhonon.

2:38 AM Changeset in webkit [33002] by Simon Hausmann
  • 2 edits in trunk/WebCore

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

Reviewed by Simon

Fix the Qt/Mac build.

1:48 AM Changeset in webkit [33001] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

2008-05-08 Marc Ordinas i Llopis <marc.ordinasillopis@collabora.co.uk>

Reviewed by Simon.

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

Based on work by Sriram Neelakandan for the Gtk port.

12:43 AM SquirrelFishBlockers edited by ggaren@apple.com
(diff)
12:41 AM Changeset in webkit [33000] by ggaren@apple.com
  • 1 edit
    1 add in branches/squirrelfish/LayoutTests

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

Added expected results for this test.

  • fast/js/closure-inside-extra-arg-call-expected.txt: Added.
12:25 AM Changeset in webkit [32999] by ggaren@apple.com
  • 6 edits in branches/squirrelfish/WebCore

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

Reviewed by Oliver Hunt.

Fixed platform/mac/plugins/bindings-test-objc.html.


I've restored -[WebScriptObject setException] and
+[WebScriptObject throwException].


Instead of mucking around in the JavaScript engine's execution state,
throwing an exception sets a global exception string, along with the
environment in which to throw it. An ObjC callback checks the global
exception string and, if it's non-nil and the environment matches the
current exceution environment, throws the global exception string as a
JS exception.

I also removed the old currentGlobalObject infrastructure: it's no longer
used.

May 8, 2008:

11:45 PM Changeset in webkit [32998] by mjs@apple.com
  • 3 edits
    2 adds in branches/squirrelfish

JavaScriptCore:

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

Reviewed by Geoff.


  • fix activation tearoff in the case where functions are called with too many arguments


Fixes:
fast/canvas/patternfill-repeat.html
fast/dom/SelectorAPI/bug-17313.html

  • VM/Machine.cpp: (KJS::slideRegisterWindowForCall): (KJS::scopeChainForCall): (KJS::Machine::execute): (KJS::Machine::privateExecute):

LayoutTests:

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

Reviewed by Geoff.


Add test cases for failures similar to the SquirrelFish failure on
fast/dom/SelectorAPI/bug-17313.html


  • fast/js/closure-inside-extra-arg-call.html: Added.
  • fast/js/resources/closure-inside-extra-arg-call.js: Added.
11:16 PM Changeset in webkit [32997] by mrowe@apple.com
  • 2 edits in trunk/WebKitTools

Another attempt at a Tiger build fix.

Use DumpRenderTreeMac.h rather than DumpRenderTree.h as DumpRenderTreePasteboard is not an Obj-C++ file.

  • DumpRenderTree/mac/DumpRenderTreePasteboard.m:
11:08 PM Changeset in webkit [32996] by mrowe@apple.com
  • 2 edits in trunk/WebKitTools

Tiger build fix. Include DumpRenderTree.h so that BUILDING_ON_TIGER will be defined.

10:43 PM Changeset in webkit [32995] by mrowe@apple.com
  • 8 edits in trunk/WebKitTools

Update DumpRenderTree to build 64-bit.

The three major changes here are:
1) Use NSInteger in the appropriate places.
2) Use ColorSync API that is available in 64-bit to switch display profiles.
3) Use method-swizzling to achieve similar results to class posing when using the Obj-C 2.0 runtime.

The build of DumpRenderTree will still fail in 64-bit for now as the TestNetscapePlugIn target also
needs updated to successfully build.

Reviewed by Oliver Hunt and Dan Bernstein.

  • DumpRenderTree/mac/Configurations/Base.xcconfig: Don't prevent Xcode from building 64-bit.
  • DumpRenderTree/mac/DumpRenderTree.mm:

(swizzleAllMethods):
(poseAsClass):
(prepareConsistentTestingEnvironment):

  • DumpRenderTree/mac/DumpRenderTreeMac.h:
  • DumpRenderTree/mac/DumpRenderTreePasteboard.h:
  • DumpRenderTree/mac/DumpRenderTreePasteboard.m:
  • DumpRenderTree/mac/DumpRenderTreeWindow.mm:
  • DumpRenderTree/mac/PixelDumpSupportMac.mm:

(restoreColorSpace):
(failedGettingCurrentProfile):
(setDefaultColorProfileToRGB):

10:43 PM Changeset in webkit [32994] by mrowe@apple.com
  • 3 edits in trunk/WebKitTools

Clean up Drosera so that it will build 64-bit.

Reviewed by Darin Adler.

  • Drosera/mac/DebuggerApplication.mm:

(-[DebuggerApplication numberOfRowsInTableView:]): Use NSInteger rather than int.
(-[DebuggerApplication tableView:objectValueForTableColumn:row:]): Ditto.

  • Drosera/mac/Drosera.xcodeproj/project.pbxproj: Use the default value for VALID_ARCHS.
10:13 PM Changeset in webkit [32993] by weinig@apple.com
  • 3 edits in trunk/WebCore

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

Reviewed by Anders Carlsson.

Rename the XMLHttpRequestState enum values to match the spec.

  • xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::responseXML): (WebCore::XMLHttpRequest::XMLHttpRequest): (WebCore::XMLHttpRequest::callReadyStateChangeListener): (WebCore::XMLHttpRequest::open): (WebCore::XMLHttpRequest::send): (WebCore::XMLHttpRequest::abort): (WebCore::XMLHttpRequest::setRequestHeader): (WebCore::XMLHttpRequest::getAllResponseHeaders): (WebCore::XMLHttpRequest::getResponseHeader): (WebCore::XMLHttpRequest::status): (WebCore::XMLHttpRequest::statusText): (WebCore::XMLHttpRequest::processSyncLoadResults): (WebCore::XMLHttpRequest::didFinishLoading): (WebCore::XMLHttpRequest::didReceiveData):
  • xml/XMLHttpRequest.h: (WebCore::):
10:06 PM Changeset in webkit [32992] by mitz@apple.com
  • 6 edits
    4 adds in trunk

WebCore:

Reviewed by Mark Rowe.

Test: fast/css/first-letter-float-after-float.html

  • rendering/RenderBlock.cpp: (WebCore::RenderBlock::updateFirstLetter): Changed to add the first letter container right before the rest of the text it is taken from, instead of at the beginning of the block.

LayoutTests:

Reviewed by Mark Rowe.

  • ChangeLog:
  • fast/css/first-letter-float-after-float.html: Added.
  • platform/mac-leopard/fast/css/first-letter-skip-out-of-flow-expected.checksum:
  • platform/mac-leopard/fast/css/first-letter-skip-out-of-flow-expected.png:
  • platform/mac/fast/css/first-letter-float-after-float-expected.checksum: Added.
  • platform/mac/fast/css/first-letter-float-after-float-expected.png: Added.
  • platform/mac/fast/css/first-letter-float-after-float-expected.txt: Added.
  • platform/mac/fast/css/first-letter-skip-out-of-flow-expected.txt:
6:18 PM SquirrelFishBlockers edited by ggaren@apple.com
(diff)
6:09 PM SquirrelFishBlockers edited by ggaren@apple.com
(diff)
6:08 PM SquirrelFishBlockers edited by ggaren@apple.com
(diff)
6:08 PM Changeset in webkit [32991] by ggaren@apple.com
  • 4 edits
    4 adds in branches/squirrelfish

JavaScriptCore:

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

Reviewed by Oliver Hunt.


Fixed failure in fast/canvas/canvas-pattern-behaviour.html.


SunSpider reports a small speedup. Not sure what that's about.

  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump): Fixed op_call_eval to dump as "op_call_eval". This helped me while debugging.
  • VM/Machine.cpp: (KJS::Machine::unwindCallFrame): When looking for an activation to tear off, don't use the scope chain. Inside eval, the scope chain doesn't belong to us; it belongs to our calling function.


Also, don't use the needsFullScopeChain flag to decide whether to tear
off the activation. "function.arguments" can create an activation
for a function whose needsFullScopeChain flag is set to false.

LayoutTests:

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

Reviewed by Oliver Hunt.


Added specific test cases for the root cause of squirrelfish's failure
in fast/canvas/canvas-pattern-behaviour.html.

  • fast/js/exception-thrown-from-eval-inside-closure-expected.txt: Added.
  • fast/js/exception-thrown-from-eval-inside-closure.html: Added.
  • fast/js/exception-thrown-from-function-with-lazy-activation-expected.txt: Added.
  • fast/js/exception-thrown-from-function-with-lazy-activation.html: Added.
5:02 PM Changeset in webkit [32990] by Chris Fleizach
  • 3 edits in trunk/WebCore

<rdar://problem/5921046> AX: list box options have wrong AXPosition

4:59 PM Changeset in webkit [32989] by jchaffraix@webkit.org
  • 5 edits in trunk/WebCore

2008-05-08 Julien Chaffraix <jchaffraix@webkit.org>

Reviewed by Eric.

Bug 18916: make_names.pl --factory needs to support custom c++ guard

Add --guardFactoryWith to handle the cpp guard around generated factories.

  • DerivedSources.make: Set the guardFactoryWith variable for SVG factory.
  • GNUmakefile.am: Ditto.
  • WebCore.pro: Ditto.
  • dom/make_names.pl: Add guardFactoryWith option.
2:36 PM Changeset in webkit [32988] by andersca@apple.com
  • 2 edits in trunk/JavaScriptCore

2008-05-08 Anders Carlsson <andersca@apple.com>

Reviewed by Mark.

Enable NPAPI plug-ins on 64-bit.


  • wtf/Platform.h:
1:32 PM Changeset in webkit [32987] by jchaffraix@webkit.org
  • 4 edits in trunk/WebCore

2008-05-08 Julien Chaffraix <jchaffraix@webkit.org>

Reviewed by Adam Roben.

wx & Gtk build fix.

Should also fix the cURL backend for the Windows port.

  • WebCore.vcproj/WebCore.vcproj: Add FormDataStreamCurl information.
  • platform/network/curl/FormDataStreamCurl.h: Include stdio.h which fixes the build on some machine.
  • webcore-wx.bkl: Add FormDataStreamCurl.cpp.
1:00 PM Changeset in webkit [32986] by timothy@apple.com
  • 2 edits in trunk/WebCore

2008-05-08 Timothy Hatcher <timothy@apple.com>

Fixes the bug where the Web Inspector could not
find any localization strings.

Reviewed by Mark Rowe.

  • WebCore.xcodeproj/project.pbxproj: Add the localizedStrings.js file to the WebCore Copy Resources phase. Also removes an idl from the Copy Resources phase.
12:04 PM Changeset in webkit [32985] by mitz@apple.com
  • 2 edits in trunk/WebCore

Reviewed by Adam Roben.

  • fix <rdar://problem/5697957> "No recent searches" label in a narrow search field's history popup is truncated
  • platform/win/PopupMenuWin.cpp: (WebCore::PopupMenu::calculatePositionAndSize): Changed to use a bold font for measuring labels.
11:54 AM Changeset in webkit [32984] by mitz@apple.com
  • 2 edits in trunk/WebCore

Reviewed by Geoffrey Garen.

  • page/Frame.cpp: (WebCore::Frame::matchLabelsAgainstElement):
11:14 AM SquirrelFishBlockers edited by ggaren@apple.com
(diff)
11:11 AM Changeset in webkit [32983] by ggaren@apple.com
  • 2 edits in branches/squirrelfish/LayoutTests

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

Reviewed by Sam Weinig.


Updated test results to reflect correct behavior: The line number in
the old results was off by 2.

  • fast/js/recursion-limit-equal-expected.txt:
11:11 AM Changeset in webkit [32982] by mrowe@apple.com
  • 2 edits in trunk/WebKitSite

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

Reviewed by Sam Weinig.

Add a link to the Mac OS Forge terms of use.

  • nav.inc:
10:48 AM SquirrelFishBlockers edited by ggaren@apple.com
(diff)
7:58 AM Changeset in webkit [32981] by Simon Hausmann
  • 5 edits
    2 copies in trunk/WebCore

2008-05-08 Holger Hans Peter Freyther <zecke@selfish.org>

Reviewed by Simon.

Simple ImageBuffer::image implementation.

In contrast to cg and cairo we do not use a special BitmapImage because
the ownership of the FrameData inside the BitmapImage is a bit backward
(actually owned by the ImageDecoderQt...). Further work is needed for image
and pixmap handling in the qt port...

7:57 AM Changeset in webkit [32980] by Simon Hausmann
  • 2 edits in trunk/WebCore

2008-05-08 Holger Hans Peter Freyther <zecke@selfish.org>

Reviewed by Simon.

Update the WebKit.qrc of the inspector to be functional again

6:53 AM Changeset in webkit [32979] by Simon Hausmann
  • 2 edits in trunk/WebCore

2008-05-08 Tor Arne Vestbø <tavestbo@trolltech.com>

Reviewed by Simon

Fix the Qt/Mac build.

3:40 AM Changeset in webkit [32978] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Warwick Allison <warwick@trolltech.com>

Fixes: WebKit expects initial input method state to be *disabled*.

At least QWS does not need the initial input method state to be forced to
enabled, but other platforms (esp. X11) do. Until fixed/tested on those
platforms, this is specific to QWS.

3:23 AM Changeset in webkit [32977] by mjs@apple.com
  • 2 edits
    2 moves
    6 deletes in branches/squirrelfish/LayoutTests

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

Reviewed by Oliver.


  • move frame.xhtml and iframe.xhtml into a resources dir, as they were never meant to be tests
  • dom/xhtml/level2/html/HTMLFrameElement09.xhtml-disabled:
  • dom/xhtml/level2/html/frame.xhtml: Removed.
  • dom/xhtml/level2/html/iframe.xhtml: Removed.
  • dom/xhtml/level2/html/resources/frame.xhtml: Copied from dom/xhtml/level2/html/frame.xhtml.
  • dom/xhtml/level2/html/resources/iframe.xhtml: Copied from dom/xhtml/level2/html/iframe.xhtml.
  • platform/mac/dom/xhtml/level2/html/frame-expected.checksum: Removed.
  • platform/mac/dom/xhtml/level2/html/frame-expected.png: Removed.
  • platform/mac/dom/xhtml/level2/html/frame-expected.txt: Removed.
  • platform/mac/dom/xhtml/level2/html/iframe-expected.checksum: Removed.
  • platform/mac/dom/xhtml/level2/html/iframe-expected.png: Removed.
  • platform/mac/dom/xhtml/level2/html/iframe-expected.txt: Removed.
2:39 AM Changeset in webkit [32976] by Simon Hausmann
  • 3 edits in trunk/WebCore

2008-05-08 Ariya Hidayat <ariya.hidayat@trolltech.com>

Reviewed by Simon.

Use native Windows library handling (instead of QLibrary)
for Qt/Win32's PlatformModule.

  • platform/FileSystem.h: (WebCore::PlatformModuleVersion::PlatformModuleVersion):
  • platform/qt/FileSystemQt.cpp: (WebCore::unloadModule):
2:39 AM Changeset in webkit [32975] by mjs@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.


  • fix function.call for calls of more than 8 arguments


Fixes svg/carto.net/button.svg

  • kjs/list.cpp: (KJS::List::getSlice): properly set up the m_buffer of the target list.
2:38 AM Changeset in webkit [32974] by Simon Hausmann
  • 4 edits in trunk

2008-05-08 Simon Hausmann <Simon Hausmann>

Reviewed and found by Holger.

Include .css in the list of extensions for text/css. Fixes
fast/loader/local-css-allowed-in-strict-mode.html.

1:36 AM Changeset in webkit [32973] by mjs@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.


  • don't return a null RegisterID from RegExpNode in the exception case, since the caller may need a real register

Fixes:

  • fast/regex/early-acid3-86.html
  • http/tests/misc/acid3.html


  • kjs/nodes.cpp: (KJS::RegExpNode::emitCode):
12:45 AM Changeset in webkit [32972] by Simon Hausmann
  • 2 edits in trunk/WebCore

2008-05-08 Simon Hausmann <Simon Hausmann>

Fix the Qt and Wx build when compiling without offline app support.

May 7, 2008:

11:12 PM SquirrelFishBlockers edited by ggaren@apple.com
(diff)
11:11 PM Changeset in webkit [32971] by ggaren@apple.com
  • 13 edits
    2 adds in branches/squirrelfish/LayoutTests

o2008-05-07 Geoffrey Garen <ggaren@apple.com>

Reviewed by Oliver Hunt.

Added this test to demonstrate that, for "f(x)", it is correct to evaluate
"x" even if "f" is not a function, and therefore "f(x)" will throw an exception.

  • fast/js/function-argument-evaluation-before-exception-expected.txt: Added.
  • fast/js/function-argument-evaluation-before-exception.html: Added.


These tests now have an extra "access denied" message in them, because
of the behavior change mentioned above.


I also added try/catch clauses to eliminate the "is not object"
exception messages from the test output.


  • http/tests/security/listener/resources/targetChild-JSTargetNode-onclick-addEventListener.html:
  • http/tests/security/listener/resources/targetChild-JSTargetNode-onclick-shortcut.html:
  • http/tests/security/listener/resources/targetChild-XMLHttpRequest-addEventListener.html:
  • http/tests/security/listener/resources/targetChild-XMLHttpRequest-shortcut.html:
  • http/tests/security/listener/resources/targetChild-window-onclick-addEventListener.html:
  • http/tests/security/listener/resources/targetChild-window-onclick-shortcut.html:
  • http/tests/security/listener/xss-JSTargetNode-onclick-addEventListener-expected.txt:
  • http/tests/security/listener/xss-JSTargetNode-onclick-shortcut-expected.txt:
  • http/tests/security/listener/xss-XMLHttpRequest-addEventListener-expected.txt:
  • http/tests/security/listener/xss-XMLHttpRequest-shortcut-expected.txt:
  • http/tests/security/listener/xss-window-onclick-addEventListener-expected.txt:
  • http/tests/security/listener/xss-window-onclick-shortcut-expected.txt:
10:16 PM SquirrelFishBlockers edited by ggaren@apple.com
(diff)
9:36 PM Changeset in webkit [32970] by ggaren@apple.com
  • 11 edits in branches/squirrelfish/LayoutTests

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

Reviewed by Oliver Hunt.


Fixed up a few more tests that depended on the exact text of exception
messages.


  • In these tests, I fixed a bug in frame.html and iframe.html that caused a function to execute too many times.
  • dom/html/level2/html/HTMLFrameElement09-expected.txt:
  • dom/html/level2/html/HTMLIFrameElement11-expected.txt:
  • dom/html/level2/html/resources/frame.html:
  • dom/html/level2/html/resources/iframe.html:
  • I changed these tests to explicitly report exceptions, so their results don't depend on how the engine constructs messages for implicit exceptions:
  • dom/xhtml/level2/html/HTMLDocument17-expected.txt:
  • dom/xhtml/level2/html/HTMLDocument18-expected.txt:
  • dom/xhtml/level2/html/HTMLDocument19-expected.txt:
  • dom/xhtml/level2/html/HTMLDocument20-expected.txt:
  • dom/xhtml/level2/html/HTMLDocument21-expected.txt:
  • dom/xhtml/level2/html/selfxhtml.js:
8:28 PM Changeset in webkit [32969] by Stephanie Lewis
  • 2 edits in trunk/LayoutTests

2008-05-07 Stephanie Lewis <Stephanie Lewis>

fix messed up result

  • fast/events/onunload-not-on-body-expected.txt:
7:13 PM Changeset in webkit [32968] by weinig@apple.com
  • 5 edits in trunk/WebCore

2008-05-07 Sam Weinig <sam@webkit.org>

Reviewed by Adele Peterson

Update MessageEvent to match the latest version of the HTML5 spec,
adding the lastEventId attribute.

  • dom/MessageEvent.cpp: (WebCore::MessageEvent::MessageEvent): (WebCore::MessageEvent::initMessageEvent):
  • dom/MessageEvent.h: (WebCore::MessageEvent::lastEventId):
  • dom/MessageEvent.idl:
  • page/DOMWindow.cpp: (WebCore::DOMWindow::postMessage):
6:05 PM Changeset in webkit [32967] by Stephanie Lewis
  • 4 edits
    2 adds in trunk

2008-05-07 Stephanie Lewis <Stephanie Lewis>

Reviewed by Maciej.

remove non-functioning code. If onunload should be fired from these nodes then
a WindowEventListener needs to be set. However, Firefox and IE also do not
fire onunload events for these cases.

Test: fast/events/onunload-not-on-body.html


  • html/HTMLFrameElementBase.cpp: (WebCore::HTMLFrameElementBase::parseMappedAttribute):
  • html/HTMLObjectElement.cpp (WebCore::HTMLObjectElement::parseMappedAttribute):

Test onunload attr on a frame does not call onunload, but that an onunload attr on the body of
a frame does. Also test that onunloads on object elements are not called.

  • fast/events/onunload-not-on-body-expected.txt: Added.
  • fast/events/onunload-not-on-body.html: Added.
1:44 PM Changeset in webkit [32966] by mitz@apple.com
  • 4 edits
    4 adds in trunk

WebCore:

Reviewed by John Sullivan.

Test: fast/dynamic/positioned-movement-with-positioned-children.html

  • rendering/RenderBlock.cpp: (WebCore::RenderBlock::layoutOnlyPositionedObjects): Cover the case of a positioned object that has only moved and has only positioned children that have changed.
  • rendering/RenderObject.h: (WebCore::RenderObject::needsPositionedMovementLayout): Added this accessor.

LayoutTests:

Reviewed by John Sullivan.

  • fast/dynamic/positioned-movement-with-positioned-children.html: Added.
  • platform/mac/fast/dynamic/positioned-movement-with-positioned-children-expected.checksum: Added.
  • platform/mac/fast/dynamic/positioned-movement-with-positioned-children-expected.png: Added.
  • platform/mac/fast/dynamic/positioned-movement-with-positioned-children-expected.txt: Added.
1:41 PM Changeset in webkit [32965] by andersca@apple.com
  • 4 edits in trunk/WebCore

2008-05-07 Anders Carlsson <andersca@apple.com>

Reviewed by John.

When no document loaders are associated with an application cache group,
release the reference to the newest cache group. This prevents reference cycles.


  • loader/appcache/ApplicationCacheGroup.cpp: (WebCore::ApplicationCacheGroup::ApplicationCacheGroup): (WebCore::ApplicationCacheGroup::documentLoaderDestroyed): (WebCore::ApplicationCacheGroup::cacheDestroyed):
  • loader/appcache/ApplicationCacheGroup.h:


  • loader/appcache/ApplicationCacheStorage.cpp: (WebCore::ApplicationCacheStorage::cacheGroupForURL): Return early if the datbase wasn't open.


(WebCore::ApplicationCacheStorage::loadCache):
Add error.

12:42 PM Changeset in webkit [32964] by andersca@apple.com
  • 2 edits in trunk/WebCore

2008-05-07 Anders Carlsson <andersca@apple.com>

Reviewed by Adam.

Don't put pages with an application cache in the BF cache.


  • loader/FrameLoader.cpp: (WebCore::FrameLoader::canCachePage):
11:59 AM Changeset in webkit [32963] by justin.garcia@apple.com
  • 4 edits
    4 adds in trunk

WebCore:

2008-05-07 Justin Garcia <justin.garcia@apple.com>

Reviewed by John Sullivan.

<rdar://problem/5666354> Crashes in Mail at WebCore::RemoveNodeCommand::doApply


When a single tab or series of tabs was copied, we weren't putting them into a
tab span. On Paste, we would be given a text node with a single tab or series
of tabs in it, and we would crash when inserting it at the start of a block
(where that kind of text becomes completely unrendered).

  • editing/ReplaceSelectionCommand.cpp: (WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds): Clean up correctly and early return if we removed everything that was inserted.
  • editing/markup.cpp: (WebCore::createMarkup): Include the tab span when the only thing copied was a tab or a series of tabs.

LayoutTests:

2008-05-07 Justin Garcia <justin.garcia@apple.com>

Reviewed by John Sullivan.

<rdar://problem/5666354> Crashes in Mail at WebCore::RemoveNodeCommand::doApply

  • editing/pasteboard/5761530-1-expected.txt: Added.
  • editing/pasteboard/5761530-1.html: Added.
  • editing/pasteboard/5761530-2-expected.txt: Added.
  • editing/pasteboard/5761530-2.html: Added.
11:02 AM Changeset in webkit [32962] by andersca@apple.com
  • 2 edits in trunk/WebKit/mac

2008-05-07 Anders Carlsson <andersca@apple.com>

Reviewed by Mitz.

REGRESSION (3.1.1-TOT): Arrow keys are sticky in Google Maps street view
https://bugs.webkit.org/show_bug.cgi?id=18880
<rdar://problem/5909513>

Stop suspending key up events before calling handleEvent.


  • Plugins/WebNetscapePluginEventHandlerCarbon.mm: (WebNetscapePluginEventHandlerCarbon::sendEvent):
10:33 AM Changeset in webkit [32961] by ddkilzer@apple.com
  • 2 edits in trunk

Added radar to changelog for r32959.

10:16 AM Changeset in webkit [32960] by jchaffraix@webkit.org
  • 6 edits in trunk

2008-05-07 Julien Chaffraix <jchaffraix@webkit.org>

Reviewed by Adam Roben.

wx & Gtk build fix.

Add SIZE_MAX definition for the wx port.

  • os-win32/stdint.h:

2008-05-07 Julien Chaffraix <jchaffraix@webkit.org>

Reviewed by Adam Roben.

wx & Gtk build fix.

  • platform/network/curl/FormDataStreamCurl.cpp: Added stdint.h include. We need to define STDC_LIMIT_MACROS to have SIZE_MAX exported.
  • platform/network/curl/FormDataStreamCurl.h: Removed cstdint include (replaced by stdint.h) as it is not present on the build bots.
  • plugins/gtk/PluginDatabaseGtk.cpp: Added missing #endif.
10:11 AM Changeset in webkit [32959] by ddkilzer@apple.com
  • 3 edits
    2 adds in trunk

WebCore:

Bug 18900: Password field has focus but can't type text (i.rememberthemilk.com)
<https://bugs.webkit.org/show_bug.cgi?id=18900>

Original patch by Aaron Golden and Tim Omernick. Reviewed by Adele.

Test: fast/forms/textfield-to-password-on-focus.html

  • html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::setInputType): If the current node has focus, call updateFocusAppearance() to make sure its state is correct after changing its type.

LayoutTests:

Bug 18900: Password field has focus but can't type text (i.rememberthemilk.com)
<https://bugs.webkit.org/show_bug.cgi?id=18900>

Reviewed by Adele.

  • fast/forms/textfield-to-password-on-focus-expected.txt: Added.
  • fast/forms/textfield-to-password-on-focus.html: Added.
9:35 AM Changeset in webkit [32958] by Chris Fleizach
  • 6 edits in trunk/WebCore

<rdar://problem/4867889> REGRESSION: "Choose File.." buttons are exposed as AXGroup instead of AXButton

7:21 AM Changeset in webkit [32957] by Simon Hausmann
  • 2 edits in trunk/LayoutTests

2008-05-07 Tor Arne Vestbø <tavestbo@trolltech.com>

Reviewed by Simon

Add ~250 tests that fail to the skipped list so we have a sane baseline.

6:05 AM Changeset in webkit [32956] by jchaffraix@webkit.org
  • 5 edits
    2 adds in trunk/WebCore

2008-05-07 Julien Chaffraix <jchaffraix@webkit.org>

Reviewed by Eric.

Bug 17971: [Curl] FormData processing should be moved to its own class

Move FormData treatment into FormDataStream. The aim is to have FormDataStream behave like a stream that cURL
could manipulate.

First step into having complete file uploading facility in cURL.

No test case as it is only code refactoring.

  • GNUmakefile.am: Add FormDataStreamCurl.cpp
  • platform/network/ResourceHandleInternal.h: Move code to FormStreamDataCurl.h (WebCore::ResourceHandleInternal::ResourceHandleInternal):
  • platform/network/curl/FormDataStreamCurl.cpp: Added. (WebCore::FormDataStream::~FormDataStream): (WebCore::FormDataStream::read):
  • platform/network/curl/FormDataStreamCurl.h: Added. (WebCore::FormDataStream::FormDataStream):
  • platform/network/curl/ResourceHandleCurl.cpp: (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
  • platform/network/curl/ResourceHandleManager.cpp: (WebCore::readCallback): Move code to FormDataStreamCurl.cpp
5:28 AM Changeset in webkit [32955] by Simon Hausmann
  • 2 edits in trunk/WebCore

2008-05-07 Adam Treat <treat@kde.org>

Reviewed by Simon.

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

Fixed wrong transform being used for creating the pixmap for a new
transparency layer. This fixes the popup menus on dell.com.

5:10 AM Changeset in webkit [32954] by Simon Hausmann
  • 5 edits in trunk/WebCore

2008-05-07 Ariya Hidayat <ariya.hidayat@trolltech.com>

Reviewed by Simon.

Share the plug-in directories between Gtk and Qt/X11 port.

  • platform/qt/FileSystemQt.cpp: (WebCore::homeDirectoryPath): Implement it for Qt.
  • plugins/PluginDatabase.cpp: (WebCore::addMozillaPluginDirectories): Shared code. (WebCore::PluginDatabase::defaultPluginDirectories): (WebCore::PluginDatabase::isPreferredPluginDirectory): Shared code.
  • plugins/gtk/PluginDatabaseGtk.cpp: (WebCore::PluginDatabase::isPreferredPluginDirectory): Refactored.
  • plugins/qt/PluginDatabaseQt.cpp: Refactored.
4:46 AM Changeset in webkit [32953] by Simon Hausmann
  • 3 edits in trunk/WebCore

2008-05-07 Tor Arne Vestbø <tavestbo@trolltech.com>

Reviewed by Simon

Fix build issues on Mac and refeactor the .pro file a bit.

4:45 AM Changeset in webkit [32952] by Simon Hausmann
  • 2 edits in trunk/WebCore

2008-05-07 Tor Arne Vestbø <tavestbo@trolltech.com>

Reviewed by Simon

Draw scrollview corners (between scrollbars) using the Qt style.

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

2:50 AM Changeset in webkit [32951] by ddkilzer@apple.com
  • 2 edits in trunk/WebKitTools

Use File::Find and Getopt::Long in make-js-test-wrappers

Reviewed by Darin.

  • Scripts/make-js-test-wrappers:
  • Updated Apple copyright statement.
Added command-line switch parsing and -hhelp switch.
  • Allowed user to pass list of files/directories on which to do a restricted search for TEMPLATE.html files. The default behavior is still to search the entire LayoutTests directory.
  • Removed duplicate 'use strict' statement.
  • Replaced use of find statements with File::Find::find().
  • Remove unneeded chomp() calls now that we use File::Find. (directoryFilter): Added. Filters .svn directories when used with File::Find::find(). (findTemplateFiles): Added. Returns a list of TEMPLATE.html files found.
2:37 AM Changeset in webkit [32950] by Simon Hausmann
  • 2 edits in trunk/WebCore

2008-05-07 Simon Hausmann <Simon Hausmann>

Fix the Qt build, added AccessibilityListBox and ListBoxOption.cpp to
the build.

2:37 AM Changeset in webkit [32949] by Simon Hausmann
  • 2 edits in trunk/JavaScriptCore

2008-05-07 Ariya Hidayat <ariya.hidayat@trolltech.com>

Reviewed by Simon.

Support for isMainThread in the Qt port.

  • wtf/ThreadingQt.cpp: (WTF::initializeThreading): Adjusted. (WTF::isMainThread): Added.
2:36 AM Changeset in webkit [32948] by Simon Hausmann
  • 2 edits in trunk/WebCore

2008-05-07 Ariya Hidayat <ariya.hidayat@trolltech.com>

Rubber-stamped by Holger.

Fix building without storage support.

  • page/PageGroup.cpp: (WebCore::PageGroup::closeLocalStorage): proper #if
2:36 AM Changeset in webkit [32947] by Simon Hausmann
  • 2 edits in trunk/WebCore

2008-05-07 Ariya Hidayat <ariya.hidayat@trolltech.com>

Rubber-stamped by Oliver Hunt.

Fix building without accessibility.

  • page/AXObjectCache.cpp: (WebCore::AXObjectCache::selectedChildrenChanged): proper #if
2:02 AM Changeset in webkit [32946] by oliver@apple.com
  • 10 edits in branches/squirrelfish/JavaScriptCore

Partial fix for current performance regressions.

Patch from Cameron Zwarich
Reviewed by Oliver

Fix a performance regression caused by the introduction of property
attributes to SymbolTable in r32859 by encoding the attributes and the
register index into a single field of SymbolTableEntry.

This leaves Node::optimizeVariableAccess() definitely broken, although
it was probably not entirely correct in SquirrelFish before this change.

May 6, 2008:

11:33 PM Changeset in webkit [32945] by mitz@apple.com
  • 3 edits
    4 adds in trunk

WebCore:

Reviewed by Darin Adler.

  • fix <rdar://problem/5914544> Crash in layoutInlineChildren()

Test: fast/block/float/float-on-zero-height-line.html

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

LayoutTests:

Reviewed by Darin Adler.

  • test for <rdar://problem/5914544> Crash in layoutInlineChildren()
  • fast/block/float/float-on-zero-height-line.html: Added.
  • platform/mac/fast/block/float/float-on-zero-height-line-expected.checksum: Added.
  • platform/mac/fast/block/float/float-on-zero-height-line-expected.png: Added.
  • platform/mac/fast/block/float/float-on-zero-height-line-expected.txt: Added.
11:16 PM Changeset in webkit [32944] by Stephanie Lewis
  • 3 edits
    2 moves in trunk/WebKit

2008-05-06 Stephanie Lewis <Stephanie Lewis>

Reviewed by Andersca.

prepare for plugin fast teardown work - make WebPluginDatabase a objective C++ file.

  • Plugins/WebPluginDatabase.m: Removed.
  • Plugins/WebPluginDatabase.mm: Copied from WebKit/mac/Plugins/WebPluginDatabase.m.
  • Plugins/npapi.m: Removed.
  • Plugins/npapi.mm: Copied from WebKit/mac/Plugins/npapi.m.

prepare for plugin fast teardown work - make WebPluginDatabase a objective C++ file.

  • WebKit.xcodeproj/project.pbxproj:
10:35 PM Changeset in webkit [32943] by alice.liu@apple.com
  • 11 edits in trunk

WebCore:

2008-05-06 Alice Liu <alice.liu@apple.com>

Reviewed by Adele Peterson and John Sullivan.

changes needed to build on Windows after r32911 and r32927

  • WebCore.vcproj/WebCore.vcproj:
  • page/AXObjectCache.cpp: (WebCore::AXObjectCache::selectedChildrenChanged):
  • page/AccessibilityObject.h: (WebCore::AccessibilityObject::document): (WebCore::AccessibilityObject::topDocumentFrameView): (WebCore::AccessibilityObject::documentFrameView):
  • page/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::document): (WebCore::AccessibilityRenderObject::topDocumentFrameView): (WebCore::AccessibilityRenderObject::documentFrameView):
  • page/AccessibilityRenderObject.h:
  • page/mac/AXObjectCacheMac.mm:
  • page/mac/AccessibilityObjectWrapper.mm: (-[AccessibilityObjectWrapper position]): (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):

WebKit/win:

2008-05-06 Alice Liu <alice.liu@apple.com>

Reviewed by Adele Peterson and John Sullivan.

changes needed to build on Windows after r32911 and r32927

  • AccessibleBase.cpp: (AccessibleBase::get_accParent):
  • AccessibleDocument.cpp: (AccessibleDocument::document):
10:31 PM Changeset in webkit [32942] by beidson@apple.com
  • 5 edits in trunk/WebCore

2008-05-06 Brady Eidson <beidson@apple.com>

Reviewed by Sam Weinig

Fix a few bugs with the final sync'ing of LocalStorageAreas when the thread is shut down.
1 - A sync task actually needs to be scheduled for each LocalStorageArea when the shut down occurs.
2 - Pending sync timers all need to be cancelled.

  • storage/LocalStorage.cpp: (WebCore::LocalStorage::storageArea): (WebCore::LocalStorage::close): Tell each LocalStorageArea to schedule it's final sync before scheduling thread termination.
  • storage/LocalStorage.h: Change the map to be of LocalStorageAreas instead of StorageAreas
  • storage/LocalStorageArea.cpp: (WebCore::LocalStorageArea::LocalStorageArea): (WebCore::LocalStorageArea::~LocalStorageArea): ASSERT the timer has been cancelled, but make SURE it is in release builds. (WebCore::LocalStorageArea::scheduleFinalSync): Cancel the sync timer, schedule the final sync, and set the "final sync scheduled" flag (WebCore::LocalStorageArea::scheduleItemForSync): ASSERT that the final sync hasn't already been scheduled (WebCore::LocalStorageArea::scheduleClear): Ditto
  • storage/LocalStorageArea.h:
9:42 PM Changeset in webkit [32941] by kevino@webkit.org
  • 2 edits in trunk/WebCore

wx build fix. Adding files added in r32925 to the bakefiles.

9:10 PM Changeset in webkit [32940] by mjs@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

2008-05-06 Maciej Stachowiak <mjs@apple.com>

Rubber stamped by Oliver.


  • add missing ! in an assert that I failed to reverse
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::CodeGenerator):
9:01 PM Changeset in webkit [32939] by ggaren@apple.com
  • 282 edits in branches/squirrelfish/LayoutTests

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

Reviewed by Oliver Hunt.

To facilitate merging between the squirrelfish branch and trunk, I
edited a bunch of layout tests to make sure their results don't depend
on the exact text of an exception message generated by the JavaScript engine.

(We do want to test JavaScript exception messages -- we just don't want
to test them 300 times over, in tests that aren't supposed to be about
JavaScript at all.)

  • I fixed bugs that were causing these tests to throw exceptions by accident, and updated results to reflect correct behavior:


  • editing/selection/contenteditable-click-inside.html:
  • platform/mac/editing/selection/contenteditable-click-inside-expected.checksum:
  • platform/mac/editing/selection/contenteditable-click-inside-expected.png:
  • platform/mac/editing/selection/contenteditable-click-inside-expected.txt:
  • editing/selection/contenteditable-click-outside.html:
  • platform/mac/editing/selection/contenteditable-click-outside-expected.checksum:
  • platform/mac/editing/selection/contenteditable-click-outside-expected.png:
  • platform/mac/editing/selection/contenteditable-click-outside-expected.txt:
  • fast/forms/selected-index-assert.html:
  • fast/forms/selected-index-assert-expected.txt:
  • tables/mozilla_expected_failures/core/captions1.html:
  • platform/mac/tables/mozilla_expected_failures/core/captions1-expected.txt:
  • I changed these tests to explicitly throw/report exceptions, so their results don't depend on how the engine constructs messages for implicit exceptions:
  • fast/xpath/nsresolver-exception.xhtml:
  • fast/xpath/nsresolver-exception-expected.txt:
  • platform/mac/fast/AppleScript/001.html:
  • platform/mac/fast/AppleScript/001-expected.txt:


  • dom/xhtml/level3/core/selfxhtml.js
  • dom/xhtml/level3/core/*expected.txt (about 280 of these changed)
8:52 PM Changeset in webkit [32938] by mjs@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

2008-05-06 Maciej Stachowiak <mjs@apple.com>

Reviewed by Oliver.



The basic approach is to have "this" only be present in the symbol
table at compile time, not runtime.

  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::~CodeGenerator): Remove "this" from symbol table. (KJS::CodeGenerator::CodeGenerator): Add "this" back when re-using a symbol table.
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::execute): Don't assert that "this" is in the symbol table.
8:36 PM Changeset in webkit [32937] by oliver@apple.com
  • 12 edits in branches/squirrelfish/WebCore

Bug 18866: SQUIRRELFISH: JS/ObjC bridge is broken <https://bugs.webkit.org/show_bug.cgi?id=18866>
Bug 18867: SQUIRRELFISH: JS/NPRuntime bridge is broken <https://bugs.webkit.org/show_bug.cgi?id=18867>

Reviewed by Maciej

This fixes function binding logic for the ObjC and NPRuntime by
replacing incorrect implementations of implementsCall (which is
no longer virtual) with implementations of getCallData.

7:10 PM Changeset in webkit [32936] by alp@webkit.org
  • 2 edits in trunk/WebCore

2008-05-06 Alp Toker <alp@nuanti.com>

GTK+ build fix. Add empty stub to keep non-accessible ports building.

  • page/AXObjectCache.h: (WebCore::AXObjectCache::selectedChildrenChanged):
6:47 PM Changeset in webkit [32935] by Beth Dakin
  • 6 edits in trunk/WebCore

2008-05-06 Beth Dakin <Beth Dakin>

Reviewed by Darin.

Fix for <rdar://problem/5907916> Implement 'aria-labeledby' and
'aria-describedby' attributes.

  • html/HTMLAttributeNames.in: Added new attributes. Added both the British spelling (since that is what is specified in the spec), and the American spelling (since the bug filer and I are two Americans who keep spelling it the American way by accident).
  • page/AccessibilityObject.cpp: Added empty wrappers. These functions can't do anything meaningful without a renderer. (WebCore::AccessibilityObject::ariaAccessiblityName): (WebCore::AccessibilityObject::ariaLabeledByAttribute): (WebCore::AccessibilityObject::ariaDescribedByAttribute):
  • page/AccessibilityObject.h:

Here is where the real work is done.

  • page/AccessibilityRenderObject.h:
  • page/AccessibilityRenderObject.cpp: (WebCore::accessibleNameForNode): Takes a node and finds its contribution to the accessible name, as defined by the Mozilla ARIA Implementer's Guide. (WebCore::AccessibilityRenderObject::ariaAccessiblityName): Takes a string of space-separated IDs, fetches the corresponding element for each ID, and concatenates an accessible name based on the elements. (WebCore::AccessibilityRenderObject::ariaLabeledByAttribute): Retrieve the labeledby attribute and send its contents to ariaAccessibilityName(). (WebCore::AccessibilityRenderObject::title): Return the ARIA labeledby value if one exists. (WebCore::AccessibilityRenderObject::ariaDescribedByAttribute): Retrieve the describedby attribute and send its contents to ariaAccessibilityName(). (WebCore::AccessibilityRenderObject::accessibilityDescription): Return the ARIA describedby attribute if one exists.

These are two bugs I spotted.
(WebCore::AccessibilityRenderObject::accessibilityIsIgnored): Don't
ignore anything with an ARIA role.
(WebCore::AccessibilityRenderObject::roleValue): Button tags maps
to ButtonRole.

6:28 PM Changeset in webkit [32934] by andersca@apple.com
  • 1 edit in trunk/WebCore/ChangeLog

Fix tyop

6:27 PM Changeset in webkit [32933] by andersca@apple.com
  • 5 edits in trunk/WebCore

2008-05-06 Anders Carlsson <andersca@apple.com>

Reviewed by Brady.

Support reading back app caches from the datbase.


  • loader/appcache/ApplicationCache.cpp: (WebCore::ApplicationCache::ApplicationCache): Initialize m_storageID to 0.


  • loader/appcache/ApplicationCacheGroup.cpp: (WebCore::ApplicationCacheGroup::cacheDestroyed): If the cache being destroyed is not the newest cache, it should no longer be stored in the database. Remove it.


(WebCore::ApplicationCacheGroup::setNewestCache):
Don't store the cache here.


(WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
Store it here instead.


  • loader/appcache/ApplicationCacheStorage.cpp: (WebCore::ApplicationCacheStorage::loadCacheGroup): New method that loads a cache group with a given manifest URL (or returns 0 if the load fails).


(WebCore::ApplicationCacheStorage::findOrCreateCacheGroup):
Search for the group in the database.


(WebCore::ApplicationCacheStorage::loadManifestHostHashes):
New method that loads the host hashes from the database.


(WebCore::ApplicationCacheStorage::cacheGroupForURL):
Search in the database for a cache that contains the resource.


(WebCore::ApplicationCacheStorage::loadCache):
New method that loads a cache with a given ID.


(WebCore::ApplicationCacheStorage::remove):
New method that removes a cache.


  • loader/appcache/ApplicationCacheStorage.h: Add definitions.
6:21 PM Changeset in webkit [32932] by alp@webkit.org
  • 3 edits in trunk/WebCore

2008-05-06 Alp Toker <alp@nuanti.com>

Partial GTK+ build fix. Add files from r32925 to the build and replace
'nil' return with 0.

  • GNUmakefile.am:
  • page/AccessibilityListBoxOption.cpp: (WebCore::AccessibilityListBoxOption::parentObject):
5:52 PM Changeset in webkit [32931] by andersca@apple.com
  • 3 edits
    2 adds in trunk/WebKitExamplePlugins

2008-05-06 Anders Carlsson <andersca@apple.com>

Reviewed by Mitz.

Add NPN_PopUpContextMenu example.


  • NetscapeCocoaPlugin/MenuHandler.h: Added.
  • NetscapeCocoaPlugin/MenuHandler.m: Added. (-[MenuHandler _openURL:]): (-[MenuHandler _disabledItem:]): (-[MenuHandler validateUserInterfaceItem:]): (-[MenuHandler initWithBrowserFuncs:instance:]): (-[MenuHandler dealloc]): (-[MenuHandler menu]):
  • NetscapeCocoaPlugin/NetscapeCocoaPlugin.xcodeproj/project.pbxproj:
  • NetscapeCocoaPlugin/main.m: (NPP_Destroy): (handleMouseEvent):
5:32 PM Changeset in webkit [32930] by beidson@apple.com
  • 3 edits in trunk/WebCore

2008-05-06 Brady Eidson <beidson@apple.com>

Reviewed by Anders

Make LocalStorage persistent using a SQLite database.

There's a few things going on here. Whenever an item is changed, we add it to a set of
"items to be sync'ed." Instead of immediately scheduling the sync'ing on the background
thread, we set a "sync timer" instead. This is to shield against a series of rapid changes
to avoid thread churn.

When the sync timer fires, we move the "items to be sync'ed" set to a background thread set
and schedule the sync task which is where the items are actually committed to disk.

Current design for reading items back in from disk is to be as aggressive as possible.
When a page first accesses it's LocalStorage area, we begin to import all items in from disk so
they are immediately available. A future enhancement will be to being this pre-fetching the
moment we start loading a page when we know that page has LocalStorage.

  • storage/LocalStorageArea.cpp: (WebCore::LocalStorageArea::LocalStorageArea): (WebCore::LocalStorageArea::length): Return the length, or wait for the import to complete then return it. (WebCore::LocalStorageArea::key): Return the key, or wait for the import to complete then return it. (WebCore::LocalStorageArea::getItem): Return the item, or wait for the import to complete then return it. (WebCore::LocalStorageArea::setItem): Set the item, or hold the import lock and set it. The second case is because if the item is set while the import is still in progress, the new value should override whatever the imported value is. (WebCore::LocalStorageArea::removeItem): Remove the item, or hold the import lock and remove it. See the explanation for setItem() (WebCore::LocalStorageArea::contains): Return whether or not the item is contained. Do the same dance with the import flag, import lock, and import condition that the above methods do.

(WebCore::LocalStorageArea::itemChanged): Schedule the item for sync'ing
(WebCore::LocalStorageArea::itemRemoved): Schedule the removal of the item for sync'ing
(WebCore::LocalStorageArea::areaCleared): Schedule the clear for sync'ing, and clear all previously

scheduled items.

(WebCore::LocalStorageArea::scheduleItemForSync): Add an item to the sync set.
(WebCore::LocalStorageArea::scheduleClear): Set a bool flag denoting "All items removed." If any

items are later set before the actual removal takes place, they will be written *after* the removal.

(WebCore::LocalStorageArea::syncTimerFired): Move the current sync-set to the background thread sync set, then

schedule a sync task. Also transfer the "items cleared" flag to the "background thread items cleared" flag

(WebCore::LocalStorageArea::performImport): Import all items from disk, then signal the import complete.
(WebCore::LocalStorageArea::markImported): Set the imported flag and signal the import complete
(WebCore::LocalStorageArea::performSync): If the clear flag is set then drop all items. Then update or delete

each item waiting to be sync'ed

  • storage/LocalStorageArea.h:
4:42 PM Changeset in webkit [32929] by beidson@apple.com
  • 2 edits in trunk/WebCore

2008-05-06 Brady Eidson <beidson@apple.com>

Rubberstamped by Mitz Pettel RTL

  • storage/LocalStorage.cpp: (WebCore::LocalStorage::fullDatabaseFilename): Filename extensions for localstorage = all lowercase
4:32 PM Changeset in webkit [32928] by beidson@apple.com
  • 3 edits in trunk/WebCore

2008-05-06 Brady Eidson <beidson@apple.com>

Reviewed by Darin, Sam Weinig, and Anders

Preparation for upcoming work making LocalStorage persistent.

The final step before code that actually does storage and retrieval of LocalStorage items.

The LocalStorage set is responsible for controlling the path and filenames that individual
LocalStorageAreas will use for their persistent store. This adds the ability to return that
filename.

Also, add the scheduling methods that LocalStorageArea will use for importing and syncing
it's persistent items.

  • storage/LocalStorage.cpp: (WebCore::LocalStorage::storageArea): Add some comments re: the future direction of this method once we actually do quota tracking. (WebCore::LocalStorage::fullDatabaseFilename): (WebCore::LocalStorage::scheduleImport): (WebCore::LocalStorage::scheduleSync):
  • storage/LocalStorage.h:
4:27 PM Changeset in webkit [32927] by Chris Fleizach
  • 14 edits
    4 adds in trunk/WebCore

rdar://problem/5408464> REGRESSION: Unable to use Voiceover on combo boxes (disneyjobs.com)

3:44 PM Changeset in webkit [32926] by Chris Fleizach
  • 3 edits in trunk/WebCore

<rdar://problem/5455287> AXWebArea should include AXURL

Now it does

3:17 PM Changeset in webkit [32925] by alice.liu@apple.com
  • 5 edits in trunk/WebCore

2008-05-06 Alice Liu <alice.liu@apple.com>

Rubber-stamped by Beth


stab-in-the-dark attempt at fixing non-mac builds.

  • GNUmakefile.am:
  • WebCore.pro:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCoreSources.bkl:
3:16 PM Changeset in webkit [32924] by andersca@apple.com
  • 4 edits in trunk/WebCore/loader/appcache

Whoops, I did not intend to commit this right now.

3:15 PM Changeset in webkit [32923] by andersca@apple.com
  • 6 edits in trunk/WebCore

2008-05-06 Anders Carlsson <andersca@apple.com>

Reviewed by Adam.

Only use the toplevel application cache when loading subframes.

  • loader/MainResourceLoader.cpp: (WebCore::MainResourceLoader::load):
3:00 PM Changeset in webkit [32922] by weinig@apple.com
  • 27 edits
    3 adds in trunk

WebCore:

2008-05-06 Adam Barth <abarth-webkit@adambarth.com>

Reviewed by Sam Weinig.

https://bugs.webkit.org/show_bug.cgi?id=18725
Implement asynchronous postMessage.
MessageEvent no longer bubbles as per r1237 in the HTML 5 working draft.

Collin Jackson <collinj-webkit@collinjackson.com> also contributed to this patch.

Test: http/tests/security/postMessage/delivery-order.html

  • dom/MessageEvent.cpp: (WebCore::MessageEvent::MessageEvent):
  • page/DOMWindow.cpp: (WebCore::PostMessageTimer::PostMessageTimer): (WebCore::PostMessageTimer::event): (WebCore::PostMessageTimer::targetOrigin): (WebCore::PostMessageTimer::fired): (WebCore::DOMWindow::postMessage): (WebCore::DOMWindow::postMessageTimerFired):
  • page/DOMWindow.h:
  • page/DOMWindow.idl:

LayoutTests:

2008-05-06 Adam Barth <abarth-webkit@adambarth.com>

Reviewed by Sam Weinig.

https://bugs.webkit.org/show_bug.cgi?id=18725
Update tests for asynchronous postMessage.

Collin Jackson <collinj-webkit@collinjackson.com> also contributed to this patch.

  • http/tests/messaging/cross-domain-message-send.html:
  • http/tests/messaging/resources/cross-domain-message-receive.html:
  • http/tests/security/cross-frame-access-delete.html:
  • http/tests/security/cross-frame-access-history-put.html:
  • http/tests/security/cross-frame-access-location-put.html:
  • http/tests/security/postMessage/delivery-order-expected.txt: Added.
  • http/tests/security/postMessage/delivery-order.html: Added.
  • http/tests/security/postMessage/invalid-origin-throws-exception-expected.txt:
  • http/tests/security/postMessage/invalid-origin-throws-exception.html:
  • http/tests/security/postMessage/origin-unaffected-by-base-tag-expected.txt:
  • http/tests/security/postMessage/origin-unaffected-by-base-tag.html:
  • http/tests/security/postMessage/origin-unaffected-by-document-domain-expected.txt:
  • http/tests/security/postMessage/origin-unaffected-by-document-domain.html:
  • http/tests/security/postMessage/resources/javascript-post-message-sender.html:
  • http/tests/security/postMessage/resources/post-message-listener.html:
  • http/tests/security/postMessage/resources/recv.js: Added.
  • http/tests/security/postMessage/target-origin-expected.txt:
  • http/tests/security/postMessage/target-origin.html:
  • http/tests/security/resources/cross-frame-iframe-for-delete-test.html:
  • http/tests/security/resources/cross-frame-iframe-for-history-put-test.html:
  • http/tests/security/resources/cross-frame-iframe-for-location-put-test.html:
  • http/tests/security/resources/xss-eval3.html:
  • http/tests/security/xss-eval.html:
2:31 PM Changeset in webkit [32921] by ggaren@apple.com
  • 8 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.


Trivial support for function.arguments: Currently, we only support
function.arguments from within the scope of function.


This fixes the remaining Mozilla JS test failures.


SunSpider reports no change.

  • VM/Machine.cpp: (KJS::Machine::privateExecute): Separated scope chain deref from activation register copying: since it is now possible for client code to create an activation on behalf of a function that otherwise wouldn't need one, having an activation no longer necessarily means that you need to deref the scope chain.


(KJS::Machine::getCallFrame): For now, this function only examines the
current scope. Walking parent scopes requires some refactoring in the
way we track execution stacks.

  • kjs/ExecState.cpp: (KJS::ExecState::ExecState): We use a negative call frame offset to indicate that a given scope is not a function call scope.
2:01 PM Changeset in webkit [32920] by andersca@apple.com
  • 10 edits in trunk/WebCore

2008-05-06 Anders Carlsson <andersca@apple.com>

Reviewed by Brady.

Store cache to the database.

  • loader/appcache/ApplicationCache.cpp: (WebCore::ApplicationCache::addResource): If the cache has been saved to disk, save the resource as well.


  • loader/appcache/ApplicationCache.h: (WebCore::ApplicationCache::onlineWhitelist): New method which returns the online whitelist.

(WebCore::ApplicationCache::setStorageId):
(WebCore::ApplicationCache::storageId):
Setter/getter for the application cache storage ID.

  • loader/appcache/ApplicationCacheGroup.cpp: (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete): Save the cache/group to disk.


  • loader/appcache/ApplicationCacheGroup.h: (WebCore::ApplicationCacheGroup::setStorageID): (WebCore::ApplicationCacheGroup::storageID): Setter/getter for the application cache group storage ID.


  • loader/appcache/ApplicationCacheResource.cpp: (WebCore::ApplicationCacheResource::addType): We can't add a new type if the resource has been saved to disk.


  • loader/appcache/ApplicationCacheResource.h: (WebCore::ApplicationCacheResource::setStorageID): (WebCore::ApplicationCacheResource::storageID): Setter/getter for the application cache resource storage ID.
  • loader/appcache/ApplicationCacheStorage.cpp:
  • loader/appcache/ApplicationCacheStorage.cpp: (WebCore::ApplicationCacheStorage::executeSQLCommand): New method for executing SQL and logging any errors.


(WebCore::ApplicationCacheStorage::openDatabase):
Create new tables.


(WebCore::ApplicationCacheStorage::executeStatement):
New method for executing an SQL statement and logging any errors.


(WebCore::ApplicationCacheStorage::store):
New methods for storing a cache group, cache and cache resource to the store.

(WebCore::ApplicationCacheStorage::storeNewestCache):
New method which stores the newest cache and updates the newest cache field in the cache group.


  • loader/appcache/ApplicationCacheStorage.h: Add new methods.


  • platform/sql/SQLiteStatement.h: (WebCore::SQLiteStatement::query): Getter for the SQL query.
1:47 PM Changeset in webkit [32919] by andersca@apple.com
  • 2 edits in trunk/WebKit/mac

2008-05-06 Anders Carlsson <andersca@apple.com>

Reviewed by Darin.

Initialize numArchs to 0.


  • Plugins/WebBasePluginPackage.m: (-[WebBasePluginPackage isNativeLibraryData:]):
1:46 PM Changeset in webkit [32918] by beidson@apple.com
  • 10 edits
    4 adds in trunk/WebCore

2008-05-06 Brady Eidson <beidson@apple.com>

Reviewed by Darin Adler

Preparation for upcoming work making LocalStorage persistent.

Writing persistent values for LocalStorage will take place on a background thread.
Here is that background thread, as well as most of the hooks that will be utilized to
make the whole song and dance work.

The thread itself is very simple and MessageQueue based. LocalStorageTasks are what
mark the work that needs to be done and come in 5 flavors: Import and Sync a LocalStorage set,
Import and Sync a LocalStorageArea, and terminate the thread.

This patch accomplished 2 things:


1 - Each PageGroup has its own LocalStorage set. Upon its creation its LocalStorageThread is

created and started.

2 - At application shutdown, each thread is synchronously terminated.

What happens between steps 1 and 2 will come later.

  • GNUmakefile.am:
  • WebCore.pro:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • WebCoreSources.bkl:
  • storage/LocalStorage.cpp: Add some threading ASSERTs to make it clear which thread each method is meant to be called from. (WebCore::LocalStorage::LocalStorage): (WebCore::LocalStorage::storageArea): (WebCore::LocalStorage::performImport): Placeholder for importing known origins and quotas (WebCore::LocalStorage::performSync): Placeholder for writing out updated origins and quotas (WebCore::LocalStorage::close): Synchronously terminate the thread.
  • storage/LocalStorage.h:
  • storage/LocalStorageArea.cpp: Add some threading ASSERTs to make it clear which thread each method is meant to be called from. (WebCore::LocalStorageArea::itemChanged): (WebCore::LocalStorageArea::itemRemoved): (WebCore::LocalStorageArea::areaCleared): (WebCore::LocalStorageArea::dispatchStorageEvent): (WebCore::LocalStorageArea::performImport): Placeholder for importing all items for this LocalStorageArea to prime the page before the items are needed (WebCore::LocalStorageArea::performSync): Placeholder for writing out dirty items to disk
  • storage/LocalStorageArea.h:
  • storage/LocalStorageTask.cpp: Added. (WebCore::LocalStorageTask::LocalStorageTask): (WebCore::LocalStorageTask::performTask):
  • storage/LocalStorageTask.h: Added. (WebCore::LocalStorageTask::): (WebCore::LocalStorageTask::createImport): (WebCore::LocalStorageTask::createSync): (WebCore::LocalStorageTask::createTerminate):
  • storage/LocalStorageThread.cpp: Added. (WebCore::LocalStorageThread::create): (WebCore::LocalStorageThread::LocalStorageThread): (WebCore::LocalStorageThread::start): (WebCore::LocalStorageThread::localStorageThreadStart): (WebCore::LocalStorageThread::localStorageThread): (WebCore::LocalStorageThread::scheduleImport): (WebCore::LocalStorageThread::scheduleSync): (WebCore::LocalStorageThread::terminate): (WebCore::LocalStorageThread::performTerminate):
  • storage/LocalStorageThread.h: Added.
1:40 PM Changeset in webkit [32917] by andersca@apple.com
  • 5 edits in trunk/WebKit/mac

2008-05-06 Anders Carlsson <andersca@apple.com>

Reviewed by Darin.

Add implementation of NPN_PopUpContextMenu.


  • Plugins/WebBaseNetscapePluginView.mm: (-[WebBaseNetscapePluginView popUpContextMenu:]):
  • Plugins/WebBaseNetscapePluginViewPrivate.h:
  • Plugins/WebNetscapePluginPackage.m: (-[WebNetscapePluginPackage load]):
  • Plugins/npapi.m: (NPN_PopUpContextMenu):
1:40 PM Changeset in webkit [32916] by andersca@apple.com
  • 3 edits in trunk/WebCore

2008-05-06 Anders Carlsson <andersca@apple.com>

Reviewed by Darin.

Add NPN_PopUpContextMenu.


  • bridge/npapi.h:
  • plugins/npfunctions.h:
1:35 PM Changeset in webkit [32915] by alp@webkit.org
  • 1 edit in trunk/WebCore/ChangeLog

2008-05-06 Alp Toker <alp@nuanti.com>

GTK+ build fix. Add file from r32911 to the build.

  • GNUmakefile.am:
1:21 PM Changeset in webkit [32914] by christian@webkit.org
  • 4 edits in trunk/WebKit/gtk

Rubber stamped by Alp.

Back out 17626. It wasn't ready for commit.

1:17 PM Changeset in webkit [32913] by alp@webkit.org
  • 2 edits in trunk/WebCore

2008-05-06 Gwenole Beauchesne <gbeauchesne@splitted-desktop.org>

Reviewed by Alp Toker.

http://bugs.webkit.org/show_bug.cgi?id=18906
[GTK] Fix varargs terminator in g_build_filename()

  • plugins/gtk/PluginDatabaseGtk.cpp: (WebCore::PluginDatabase::isPreferredPluginDirectory): Fix varargs terminator.
11:44 AM Changeset in webkit [32912] by kmccullough@apple.com
  • 2 edits in trunk/WebCore

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

  • Forgot to update localized Strings from previous checkin.
  • English.lproj/localizedStrings.js:
11:39 AM Changeset in webkit [32911] by Chris Fleizach
  • 8 edits
    2 adds in trunk/WebCore

<rdar://problem/5408464> REGRESSION: Unable to use Voiceover on combo boxes (disneyjobs.com)
<rdar://problem/5895634> AX: AccessibilityObjectWrapper is being leaked all over the place
<rdar://problem/5893907> CrashTracer: [REGRESSION] 44 crashes in Safari at com.apple.WebCore: WebCore::AccessibilityObject::clearChildren + 9

Initial prep work to support accessibility objects that do not have renderers.

11:16 AM Changeset in webkit [32910] by andersca@apple.com
  • 2 edits in trunk/WebKit/mac

2008-05-06 Anders Carlsson <andersca@apple.com>

Fix typo (don't read random memory).


  • Plugins/WebBasePluginPackage.m: (-[WebBasePluginPackage isNativeLibraryData:]):
10:55 AM Changeset in webkit [32909] by andersca@apple.com
  • 3 edits in trunk/WebKit

2008-05-05 Anders Carlsson <andersca@apple.com>

Reviewed by Darin.

Change the isNativeLibraryData: method to handle universal binaries.


  • Plugins/WebBasePluginPackage.m: (swapIntsInHeader): (-[WebBasePluginPackage isNativeLibraryData:]):
10:54 AM Changeset in webkit [32908] by andersca@apple.com
  • 10 adds in trunk/WebKitExamplePlugins

Reviewed by Jon, Tim and Mark.

Add a sample NPAPI plugin that uses the Cocoa event model.

  • .: Added.
  • ChangeLog: Added.
  • NetscapeCocoaPlugin: Added.
  • NetscapeCocoaPlugin/English.lproj: Added.
  • NetscapeCocoaPlugin/English.lproj/InfoPlist.strings: Added.
  • NetscapeCocoaPlugin/Info.plist: Added.
  • NetscapeCocoaPlugin/NetscapeCocoaPlugin.xcodeproj: Added.
  • NetscapeCocoaPlugin/NetscapeCocoaPlugin.xcodeproj/project.pbxproj: Added.
  • NetscapeCocoaPlugin/main.m: Added. (NP_Initialize): (NP_GetEntryPoints): (NP_Shutdown): (NPP_New): (NPP_Destroy): (NPP_SetWindow): (NPP_NewStream): (NPP_DestroyStream): (NPP_WriteReady): (NPP_Write): (NPP_StreamAsFile): (NPP_Print): (handleDraw): (eventType): (invalidatePlugin): (handleMouseEvent): (handleKeyboardEvent): (NPP_HandleEvent): (NPP_URLNotify): (NPP_GetValue): (NPP_SetValue):
  • NetscapeCocoaPlugin/test.html: Added.
10:32 AM Changeset in webkit [32907] by rwlbuis@webkit.org
  • 2 edits in trunk/WebCore

Reviewed by Rob Buis.

https://bugs.webkit.org/show_bug.cgi?id=18859\
Prevented SVGRootInlineBox from static_casting a
node to a class it doesn't inherit

10:28 AM Changeset in webkit [32906] by beidson@apple.com
  • 10 edits in trunk

WebCore:

2008-05-06 Brady Eidson <beidson@apple.com>

Reviewed by Darin Adler

Preparation for upcoming work making LocalStorage persistent.

When the application terminates, all pending local storage writes need to be
sync'ed out to disk.
This works n combination with platform specific code in WebKit that calls it.

  • WebCore.base.exp:
  • page/PageGroup.cpp: (WebCore::PageGroup::closeLocalStorage): Close all open LocalStorage objects
  • page/PageGroup.h:
  • storage/LocalStorage.cpp: (WebCore::LocalStorage::close): Placeholder for what will sync and terminate the local storage thread in the future.
  • storage/LocalStorage.h:

WebKit/mac:

2008-05-06 Brady Eidson <beidson@apple.com>

Reviewed by Darin Adler

Preparation for upcoming work making LocalStorage persistent.

When the application terminates, all LocalStorage areas must be sync'ed out to disk first.

  • WebView/WebView.mm: (+[WebView _applicationWillTerminate]): Close all LocalStorage areas before quitting.

WebKit/win:

2008-05-06 Brady Eidson <beidson@apple.com>

Reviewed by Darin Adler

Preparation for upcoming work making LocalStorage persistent.

When the application terminates, all LocalStorage areas must be sync'ed out to disk first.

  • WebKitDLL.cpp: (shutDownWebKit): Close all LocalStorage areas before quitting.
10:24 AM Changeset in webkit [32905] by beidson@apple.com
  • 2 edits in trunk/WebCore

2008-05-06 Brady Eidson <beidson@apple.com>

Rubberstamped by David Kilzer

  • WebCore.base.exp: Sort this mess!
10:07 AM Changeset in webkit [32904] by andersca@apple.com
  • 6 edits in trunk/WebKit/win

2008-05-05 Anders Carlsson <andersca@apple.com>

Reviewed by John.

Add preference for enabling the offline web application cache.


  • Interfaces/IWebPreferencesPrivate.idl:
  • WebPreferenceKeysPrivate.h:
  • WebPreferences.cpp: (WebPreferences::initializeDefaultSettings): (WebPreferences::setOfflineWebApplicationCacheEnabled): (WebPreferences::offlineWebApplicationCacheEnabled):
  • WebPreferences.h:
  • WebView.cpp: (WebView::notifyPreferencesChanged):
9:46 AM SquirrelFish edited by ggaren@apple.com
(diff)
9:43 AM SquirrelFish edited by ggaren@apple.com
(diff)
7:21 AM Changeset in webkit [32903] by ap@webkit.org
  • 1 edit in trunk/LayoutTests/editing/inserting/edited-whitespace-1.html

Landing an updated test that was supposed to be part of r32879.

6:12 AM Changeset in webkit [32902] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

2008-05-06 Simon Hausmann <Simon Hausmann>

Reviewed by Holger.

Fix logic error in QWebHitTestResult::isNull().

May 5, 2008:

11:29 PM SquirrelFish edited by ggaren@apple.com
(diff)
10:01 PM Changeset in webkit [32901] by mrowe@apple.com
  • 2 edits in trunk/WebCore

Fix 60 crashes seen on the buildbots that were misreported as hangs.

Reviewed by Dan Bernstein.

  • dom/Document.cpp:

(WebCore::Document::detachNodeIterator): Null-check page() before dereferencing it.
(WebCore::Document::nodeWillBeRemoved): Ditto.
(WebCore::Document::textInserted): Ditto.
(WebCore::Document::textNodesMerged): Ditto.
(WebCore::Document::textRemoved): Ditto.

9:09 PM Changeset in webkit [32900] by beidson@apple.com
  • 3 edits in trunk/WebCore

2008-05-05 Brady Eidson <beidson@apple.com>

Reviewed by Mitz Pettel RTL

Preparation for upcoming work making LocalStorage persistent.

The other half of the StorageMap::importItem() addition.

  • storage/StorageArea.cpp: (WebCore::StorageArea::importItem):
  • storage/StorageArea.h:
9:03 PM Changeset in webkit [32899] by beidson@apple.com
  • 5 edits in trunk/WebCore

2008-05-05 Brady Eidson <beidson@apple.com>

Reviewed by Mitz Pettel RTL

Preparation for upcoming work making LocalStorage persistent.

  • Create the LocalStorage object for a PageGroup the moment the first Page is added to it The Settings of the first Page define what persistent path the LocalStorage will use
  • Add a Frame argument for the LocalStorageArea request - this will allow a client object to be queried before the LocalStorageArea is established
  • page/DOMWindow.cpp: (WebCore::DOMWindow::localStorage):
  • page/PageGroup.cpp: (WebCore::PageGroup::addPage): (WebCore::PageGroup::localStorage):
  • storage/LocalStorage.cpp: (WebCore::LocalStorage::LocalStorage): Take the path as a constructor argument. Deep copy the path as it will be used from another thread. (WebCore::LocalStorage::storageArea):
  • storage/LocalStorage.h: (WebCore::LocalStorage::create):
8:16 PM Changeset in webkit [32898] by oliver@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

Fix call frame set up for native -> JS function calls.

Review by Geoff

8:14 PM Changeset in webkit [32897] by beidson@apple.com
  • 3 edits in trunk/WebCore

2008-05-05 Brady Eidson <beidson@apple.com>

Reviewed by Mitz Pettel RTL

Preparation for upcoming work making LocalStorage persistent.

StorageMaps normally have copy-on-write semantics to help support SessionStorage.
For LocalStorage, we never want this behavior. When we forcefully import items into
a StorageMap from the LocalStorage background thread, this new import method will be used.

  • storage/StorageMap.cpp: (WebCore::StorageMap::importItem): Add a deep-copy of the item to the map without worrying about copy-on-write.
  • storage/StorageMap.h:
7:24 PM Changeset in webkit [32896] by ggaren@apple.com
  • 8 edits
    2 adds in branches/squirrelfish

JavaScriptCore:

2008-05-05 Geoffrey Garen <ggaren@apple.com>

Reviewed by Maciej Stachowiak.


Fixed ecma_3/Object/8.6.2.6-001.js, and similar bugs.


SunSpider reports a .4% speedup. Not sure what that's about.

  • VM/Machine.cpp: (KJS::Machine::privateExecute): Check for exception return from equal, since toPrimitive can throw.
  • kjs/operations.cpp: (KJS::strictEqual): In response to an error I made in an earlier version of this patch, I changed strictEqual to make clear the fact that it performs no conversions and can't throw, making it slightly more efficient in the process.

LayoutTests:

2008-05-05 Geoffrey Garen <ggaren@apple.com>

Reviewed by Maciej Stachowiak.


Layout test for exceptions thrown from equality comparisons.

  • fast/js/exception-thrown-from-equal-expected.txt: Added.
  • fast/js/exception-thrown-from-equal.html: Added.
5:45 PM Changeset in webkit [32895] by sfalken@apple.com
  • 3 edits in trunk/WebKitTools

Copy dependencies of ImageDiff, DumpRenderTree in post-build step.

  • DumpRenderTree/win/DumpRenderTree.vcproj:
  • DumpRenderTree/win/ImageDiff.vcproj:
5:23 PM Changeset in webkit [32894] by sfalken@apple.com
  • 2 edits in tags/Safari-6526.3.4/WebCore

Merged r32711.

5:21 PM Changeset in webkit [32893] by sfalken@apple.com
  • 5 edits in tags/Safari-6526.3.4

Merged r32699, 32701, 32702, 32704.

5:15 PM Changeset in webkit [32892] by sfalken@apple.com
  • 2 edits in tags/Safari-6526.3.4/WebKit/win

Merged r32698.

5:08 PM Changeset in webkit [32891] by sfalken@apple.com
  • 2 edits in tags/Safari-6526.3.4/WebCore

Merged r32659.

5:01 PM Changeset in webkit [32890] by kmccullough@apple.com
  • 4 edits
    6 adds in trunk/WebCore

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

Reviewed by Tim.

-<rdar://problem/5770054> JavaScript profiler (10928)
-Begininings of a UI for the Profiler in the WebInspector.

  • English.lproj/InspectorLocalizedStrings.js: Add new strings to be localized.
  • page/inspector/DatabasesPanel.js: Changed the name of the Databae's results table to be more generic as it is now also used by the profiler.
  • page/inspector/Images/glossySelected.png: Added.
  • page/inspector/Images/profilesIcon.png: Added.
  • page/inspector/Images/treeUpTriangleBlack.png: Added.
  • page/inspector/Images/treeUpTriangleWhite.png: Added.
  • page/inspector/ProfileView.js: Added. Sets up the header of the table.
  • page/inspector/ProfilesPanel.js: Added.
  • page/inspector/ProfilesPanel.js: Added. Sets up the containers of the profiler's content.
  • page/inspector/inspector.css: Change database-result-table to be more generic as well as add the styles needed by the profiler.
  • page/inspector/inspector.html: Add profiler support.
4:42 PM Changeset in webkit [32889] by beidson@apple.com
  • 2 edits in trunk/WebCore

2008-05-05 Brady Eidson <beidson@apple.com>

Change by Darin, reviewed by Brady

Small efficiency improvement Darin just spotted

  • storage/StorageMap.cpp: (WebCore::StorageMap::setItem):
4:41 PM Changeset in webkit [32888] by sfalken@apple.com
  • 3 edits in tags/Safari-6526.3.4/WebCore

Merged r32656, r32657.

4:31 PM Changeset in webkit [32887] by Antti Koivisto
  • 2 edits in trunk/WebCore

2008-05-05 Antti Koivisto <Antti Koivisto>

Reviewed by Anders.

Fix https://bugs.webkit.org/show_bug.cgi?id=18899
Bug 18899: REGRESSION (r32871): Non-Safari crash in WTF::HashTable on startup

  • loader/loader.cpp: (WebCore::Loader::Loader):
4:04 PM Changeset in webkit [32886] by weinig@apple.com
  • 2 edits in trunk/WebKit/mac

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

Reviewed by Darin Adler.

Fix for <rdar://problem/5884383>
Escape look-a-like characters from the the entire url.

  • Misc/WebNSURLExtras.mm: (escapeUnsafeCharacters): (-[NSURL _web_userVisibleString]):
4:00 PM Changeset in webkit [32885] by sfalken@apple.com
  • 1 copy in tags/Safari-6526.3.4

New tag.

3:57 PM Changeset in webkit [32884] by beidson@apple.com
  • 2 edits in trunk/WebCore

2008-05-05 Brady Eidson <beidson@apple.com>

Reviewed by Sam Weinig

Fix a bug in StorageMap iterator tracking where the iterator was not successfully
invalidated at an appropriate time.

  • storage/StorageMap.cpp: (WebCore::StorageMap::setItem): ALWAYS invalidate it here
3:50 PM Changeset in webkit [32883] by justin.garcia@apple.com
  • 7 edits in trunk

WebCore:

2008-05-05 Justin Garcia <justin.garcia@apple.com>

Reviewed by Darin.

<rdar://problem/5865171> REGRESSION: Creating a new quote places caret at beginning of quote instead of the end


Disable Range mutation on document modifications in Tiger and Leopard Mail,
since they do their own mutation which interferes with ours.

  • WebCore.base.exp:
  • dom/Document.cpp: (WebCore::Document::nodeChildrenChanged): (WebCore::Document::nodeWillBeRemoved): (WebCore::Document::textInserted): (WebCore::Document::textRemoved): (WebCore::Document::textNodesMerged): (WebCore::Document::textNodeSplit):
  • page/Settings.cpp: (WebCore::Settings::Settings): (WebCore::Settings::disableRangeMutationForOldAppleMail):
  • page/Settings.h: (WebCore::Settings::rangeMutationDisabledForOldAppleMail):

WebKit/mac:

2008-05-05 Justin Garcia <justin.garcia@apple.com>

Reviewed by Darin.


<rdar://problem/5865171> REGRESSION: Creating a new quote places caret at beginning of quote instead of the end

  • WebView/WebView.mm: (-[WebView _updateSettingsFromPreferences:]): Disable Range mutation on changes to the document for Tiger and Leopard Mail. There is code in Mail that does it, and the two interfere.
3:47 PM Changeset in webkit [32882] by weinig@apple.com
  • 8 edits
    1 add
    1 delete in trunk

WebCore:

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

Reviewed by Tim Hatcher.

Make the Inspector's localizable strings file match the format used by Dashboard widgets.

  • English.lproj/InspectorLocalizedStrings.js: Removed.
  • English.lproj/localizedStrings.js: Added.
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • page/inspector/inspector.js:

WebKit/mac:

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

Reviewed by Tim Hatcher.

Make the Inspector's localizable strings file match the format used by Dashboard widgets.

  • WebCoreSupport/WebInspectorClient.mm: (WebInspectorClient::localizedStringsURL):

WebKit/win:

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

Reviewed by Tim Hatcher.

Make the Inspector's localizable strings file match the format used by Dashboard widgets.

  • WebCoreSupport/WebInspectorClient.cpp: (WebInspectorClient::localizedStringsURL):
1:51 PM Changeset in webkit [32881] by sfalken@apple.com
  • 18 edits in trunk

2008-05-05 Steve Falkenburg <sfalken@apple.com>

Add WebPreference for application chrome mode.


Reviewed by Dave Hyatt.

  • Interfaces/IWebPreferencesPrivate.idl:
  • WebPreferenceKeysPrivate.h:
  • WebPreferences.cpp: (WebPreferences::initializeDefaultSettings): (WebPreferences::inApplicationChromeMode): (WebPreferences::setApplicationChromeMode):
  • WebPreferences.h:
  • WebView.cpp: (WebView::notifyPreferencesChanged):

2008-05-05 Steve Falkenburg <sfalken@apple.com>

Add support for default button appearance.
Add WebCore setting for app chrome mode.


Reviewed by Dave Hyatt.

  • css/CSSPrimitiveValueMappings.h: (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
  • css/CSSValueKeywords.in: Added default-button value keyword.
  • page/Settings.cpp: (WebCore::Settings::Settings): (WebCore::Settings::setApplicationChromeMode):
  • page/Settings.h: (WebCore::Settings::inApplicationChromeMode):
  • rendering/RenderButton.cpp: (WebCore::RenderButton::RenderButton): (WebCore::RenderButton::setStyle): (WebCore::RenderButton::timerFired):
  • rendering/RenderButton.h:
  • rendering/RenderStyle.h: (WebCore::):
  • rendering/RenderTheme.cpp: (WebCore::RenderTheme::adjustStyle): (WebCore::RenderTheme::paint): (WebCore::RenderTheme::paintBorderOnly): (WebCore::RenderTheme::paintDecorations): (WebCore::RenderTheme::isControlStyled): (WebCore::RenderTheme::isDefault):
  • rendering/RenderTheme.h: (WebCore::):
  • rendering/RenderThemeSafari.cpp: (WebCore::RenderThemeSafari::determineState): (WebCore::RenderThemeSafari::adjustRepaintRect): (WebCore::RenderThemeSafari::adjustButtonStyle):
  • rendering/RenderThemeWin.cpp: (WebCore::RenderThemeWin::supportsFocus):
1:35 PM Changeset in webkit [32880] by adele@apple.com
  • 2 edits in trunk/WebKitTools

2008-05-05 Adele Peterson <adele@apple.com>

Reviewed by Adam.

Look for the right ImageDiff executable for debug builds.

  • Scripts/run-webkit-tests:
11:29 AM Changeset in webkit [32879] by ap@webkit.org
  • 3 edits
    4 adds in trunk

Reviewed by Darin.

https://bugs.webkit.org/show_bug.cgi?id=11947
nbsps should be converted to entities in innerHTML

https://bugs.webkit.org/show_bug.cgi?id=18769
replacing &nbsp; with spaces using regexp creates inconsistent result

Tests: fast/dom/innerHTML-nbsp.html

fast/dom/innerHTML-escaping-attribute.html

  • editing/markup.cpp: (WebCore::appendAttributeValue): (WebCore::escapeContentText): (WebCore::appendEscapedContent): Added U+00a0/nbsp to the list of characters to escape.
11:26 AM Changeset in webkit [32878] by hyatt@apple.com
  • 3 edits
    3 adds in trunk

WebCore:

2008-05-05 David Hyatt <hyatt@apple.com>

Fix for https://bugs.webkit.org/show_bug.cgi?id=18821. Fix some bugs in both get/PutImageData of <canvas>.

Reviewed by Eric

New tests added in fast/canvas/

  • platform/graphics/cg/ImageBufferCG.cpp: (WebCore::ImageBuffer::getImageData): (WebCore::ImageBuffer::putImageData):

LayoutTests:

2008-05-05 David Hyatt <hyatt@apple.com>

Fix for https://bugs.webkit.org/show_bug.cgi?id=18821, putImageData incorrect when data has alpha.

Reviewed by Eric

  • fast/canvas/canvas-alphaImageData-behavior-expected.txt: Added.
  • fast/canvas/canvas-alphaImageData-behavior.html: Added.
  • fast/canvas/canvas-alphaImageData-behavior.js: Added.
9:59 AM Changeset in webkit [32877] by Darin Adler
  • 2 edits in trunk/JavaScriptCore

2008-05-05 Darin Adler <Darin Adler>

Reviewed by John Sullivan.

  • fix debug-only leak seen on buildbot
  • wtf/HashTable.h: (WTF::HashTable::checkKey): After writing an empty value in, but before constructing a deleted value on top of it, call the destructor so the empty value doesn't leak.
9:47 AM Changeset in webkit [32876] by andersca@apple.com
  • 3 edits in trunk/WebKit/mac

2008-05-05 Anders Carlsson <andersca@apple.com>

Reviewed by Jess.

Apparently preflighting can cause hangs for some reason. Revert this for now.


  • Plugins/WebNetscapePluginPackage.m: (-[WebNetscapePluginPackage _initWithPath:]):
  • Plugins/WebPluginPackage.m: (-[WebPluginPackage initWithPath:]):
9:44 AM Changeset in webkit [32875] by Darin Adler
  • 2 edits in trunk/WebKitTools

2008-05-05 Darin Adler <Darin Adler>

  • Scripts/run-webkit-tests: Ignore a Java leak showing up in the WebKit leak tests.
9:34 AM Changeset in webkit [32874] by Darin Adler
  • 2 edits in trunk/WebKit/mac

2008-05-05 Darin Adler <Darin Adler>

Reviewed by Mitz.

  • WebView/WebView.mm: (-[WebView viewWillMoveToWindow:]): Fix bug where we would stop observing the NSWindowWillCloseNotification if the view was moved out of the window but still had that window set as the host window. Also make sure this function doesn't do anything if the WebView is already closed. (-[WebView setHostWindow:]): Ditto.
9:31 AM Changeset in webkit [32873] by mitz@apple.com
  • 1 edit
    1 copy in trunk/LayoutTests

Rubber-stamped by Adam Roben.

  • fix test failure due to Windows' preference for Mac results over generic results
  • platform/win/editing/selection/move-left-right-expected.txt: Copied from LayoutTests/editing/selection/move-left-right-expected.txt.
9:27 AM Changeset in webkit [32872] by mitz@apple.com
  • 9 edits
    4 adds in trunk

WebCore:

Reviewed by Dave Hyatt.

Test: fast/block/basic/adding-near-anonymous-block.html

  • rendering/RenderBlock.cpp: (WebCore::RenderBlock::addChildToFlow): When adding a floating or positioned object, if it follows an anonymous block, put it inside the anonymous block. When adding an inline, check if it comes after an anonymous block and put it in the anonymous block.

LayoutTests:

Reviewed by Dave Hyatt.

  • fast/block/basic/adding-near-anonymous-block.html: Added.
  • media/video-controls-rendering.html: Changed to work around https://bugs.webkit.org/show_bug.cgi?id=18857 which now affects this test in its original form.
  • platform/mac/css1/box_properties/clear-expected.txt:
  • platform/mac/fast/block/basic/adding-near-anonymous-block-expected.checksum: Added.
  • platform/mac/fast/block/basic/adding-near-anonymous-block-expected.png: Added.
  • platform/mac/fast/block/basic/adding-near-anonymous-block-expected.txt: Added.
  • platform/mac/fast/forms/input-align-image-expected.txt:
  • platform/mac/media/audio-controls-rendering-expected.txt:
  • platform/mac/media/video-controls-rendering-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug51140-expected.txt:
9:09 AM Changeset in webkit [32871] by Antti Koivisto
  • 3 edits in trunk/WebCore

2008-05-05 Antti Koivisto <Antti Koivisto>

Reviewed by Darin.

Speculative fix for <rdar://problem/5906790>
Crash in Loader::servePendingRequests() due to hash table being modified during iteration


I don't know how to reproduce this. It would require the load to fail (or succeed)
synchronously, something that should not usually happen.

  • loader/loader.cpp: (WebCore::Loader::Loader): (WebCore::Loader::load): (WebCore::Loader::servePendingRequests): (WebCore::Loader::cancelRequests): (WebCore::Loader::Host::Host):
  • loader/loader.h: (WebCore::Loader::Host::name):
6:43 AM UsingGitWithWebKit edited by dan+macosforge@danwalters.net
fix repository url (diff)
3:43 AM Changeset in webkit [32870] by mjs@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

2008-05-05 Maciej Stachowiak <mjs@apple.com>

Reviewed by Oliver.


  • fix some dumb mistakes in my last patch
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitPushScope): (KJS::CodeGenerator::emitGetPropertyNames):
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
3:26 AM Changeset in webkit [32869] by Simon Hausmann
  • 2 edits in trunk/WebKitTools

Ariya Hidayat <ariya.hidayat@trolltech.com>

In the Qt's DumpRenderTree, adjust the web view properly (because W3C SVG
tests expect to be 480x360)

2:59 AM Changeset in webkit [32868] by Simon Hausmann
  • 2 edits in trunk/WebCore

Ariya Hidayat <ariya.hidayat@trolltech.com>

Disable SVG As Image support in the Qt port again, as it
requires more work. Right now the chrome client is
assumed to be a ChromeClientQt, which the SVG Image support
changes.

2:34 AM Changeset in webkit [32867] by mjs@apple.com
  • 5 edits in branches/squirrelfish/JavaScriptCore

2008-05-05 Maciej Stachowiak <mjs@apple.com>

Reviewed by Oliver.


  • document opcodes relating to jumps, scopes, and property name iteration


Documented jmp, jtrue, false, push_scope, pop_scope, get_pnames,
next_pname and jmp_scopes.

  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitJump): (KJS::CodeGenerator::emitJumpIfTrue): (KJS::CodeGenerator::emitJumpIfFalse): (KJS::CodeGenerator::emitPushScope): (KJS::CodeGenerator::emitNextPropertyName): (KJS::CodeGenerator::emitGetPropertyNames):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • kjs/nodes.cpp: (KJS::LogicalAndNode::emitCode): (KJS::LogicalOrNode::emitCode): (KJS::ConditionalNode::emitCode): (KJS::IfNode::emitCode): (KJS::IfElseNode::emitCode): (KJS::DoWhileNode::emitCode): (KJS::WhileNode::emitCode): (KJS::ForNode::emitCode): (KJS::ForInNode::emitCode): (KJS::WithNode::emitCode):
1:01 AM Changeset in webkit [32866] by oliver@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

Bug 18749: SQUIRRELFISH: const support is broken
<https://bugs.webkit.org/show_bug.cgi?id=18749>

Cameron Zwarich <cwzwarich@uwaterloo.ca>
Reviewed by Oliver.

Adds support for const during code generation.

Fixes 2 layout tests.

May 4, 2008:

11:48 PM Changeset in webkit [32865] by mjs@apple.com
  • 5 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoff.


  • document some more opcodes (and fix argument names)


Added docs for eq, neq, stricteq, nstriceq, less and lesseq.

  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitEqual): (KJS::CodeGenerator::emitNotEqual): (KJS::CodeGenerator::emitStrictEqual): (KJS::CodeGenerator::emitNotStrictEqual): (KJS::CodeGenerator::emitLess): (KJS::CodeGenerator::emitLessEq):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • kjs/nodes.cpp: (KJS::LessNode::emitCode): (KJS::GreaterNode::emitCode): (KJS::LessEqNode::emitCode): (KJS::GreaterEqNode::emitCode): (KJS::EqualNode::emitCode): (KJS::NotEqualNode::emitCode): (KJS::StrictEqualNode::emitCode): (KJS::NotStrictEqualNode::emitCode): (KJS::CaseBlockNode::emitCodeForBlock):
11:46 PM Changeset in webkit [32864] by ggaren@apple.com
  • 10 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.

More scaffolding for f.arguments.


Track the offset of the last call frame in the ExecState, so we can
produce a backtrace at any time.


Also, record numLocals, the sum of numVars + numParameters, in each code
block, to make updates to the ExecState a little cheaper than they
would be otherwise.


We now use numLocals in a bunch of places where we used to calculate
numVars + numParameters or -numVars - numParameters.


Reports are mixed, but all in all, this seems to be a wash on SunSpider.

10:30 PM Changeset in webkit [32863] by kevino@webkit.org
  • 5 edits in trunk/WebKit/wx

Reviewed by Kevin Ollivier.

Allow events to specify the ID of the particular wxWebView they are to be sent to.

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

9:46 PM Changeset in webkit [32862] by Antti Koivisto
  • 1 edit
    2 adds in trunk/LayoutTests

2008-05-02 Antti Koivisto <Antti Koivisto>

Reviewed by Mitz.


Test for <rdar://problem/5840475>
CrashTracer: [USER] 2 crashes in Safari at com.apple.WebCore: WebCore::RenderBlock::insertPositionedObject

  • fast/transforms/container-transform-crash-expected.txt: Added.
  • fast/transforms/container-transform-crash.html: Added.
9:44 PM Changeset in webkit [32861] by Antti Koivisto
  • 2 edits in trunk/WebCore

2008-05-02 Antti Koivisto <Antti Koivisto>

Reviewed by Mitz.

Fix <rdar://problem/5840475>
CrashTracer: [USER] 2 crashes in Safari at com.apple.WebCore: WebCore::RenderBlock::insertPositionedObject


Non-block objects can have transforms so containingBlock() could end up returning null.
RenderObject::container() needs to match.

Test: fast/transforms/container-transform-crash.html

  • rendering/RenderObject.cpp: (WebCore::RenderObject::containingBlock): (WebCore::RenderObject::container):
9:42 PM Changeset in webkit [32860] by oliver@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

Whoops, correctly handle properties that don't exist in the
symbol table.

Reviewed by Geoff

7:14 PM Changeset in webkit [32859] by oliver@apple.com
  • 8 edits in branches/squirrelfish/JavaScriptCore

Add attribute information to SymbolTable as ground work for
various DontEnum and ReadOnly issues.

Reviewed by Geoff

7:05 PM Changeset in webkit [32858] by ggaren@apple.com
  • 6 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.


More scaffolding for f.arguments.


Store the register file associated with an ExecState in the ExecState.


SunSpider reports no change.

  • kjs/JSGlobalObject.h: (KJS::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData): Moved registerFileStack above globalExec, so it gets initialized first. Removed remnants of old activation scheme.
6:48 PM Changeset in webkit [32857] by weinig@apple.com
  • 2 edits in trunk/WebCore

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

Roll out r32851. It broke tiger builds.

  • bindings/objc/DOMUtility.mm: (KJS::createDOMWrapper): (WebCore::createDOMWrapper):
6:11 PM Changeset in webkit [32856] by mjs@apple.com
  • 7 edits in branches/squirrelfish/JavaScriptCore

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

Rubber stamped by Oliver.


  • renamed a few opcodes and fixed assembly formatting to accomodate the longest opcode


equal --> eq
nequal --> neq
resolve_base_and_property --> resolve_with_base
resolve_base_and_func --> resolve_func
get_prop_id --> get_by_id
put_prop_id --> put_by_id
delete_prop_id --> del_by_id
get_prop_val --> get_by_val
put_prop_val --> put_by_val
delete_prop_val --> del_by_val
put_prop_index --> put_by_index


  • VM/CodeBlock.cpp: (KJS::printUnaryOp): (KJS::printBinaryOp): (KJS::printConditionalJump): (KJS::CodeBlock::dump):
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitEqual): (KJS::CodeGenerator::emitNotEqual): (KJS::CodeGenerator::emitResolveWithBase): (KJS::CodeGenerator::emitResolveFunction): (KJS::CodeGenerator::emitGetById): (KJS::CodeGenerator::emitPutById): (KJS::CodeGenerator::emitDeleteById): (KJS::CodeGenerator::emitGetByVal): (KJS::CodeGenerator::emitPutByVal): (KJS::CodeGenerator::emitDeleteByVal): (KJS::CodeGenerator::emitPutByIndex):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • VM/Opcode.h:
  • kjs/nodes.cpp: (KJS::ArrayNode::emitCode): (KJS::PropertyListNode::emitCode): (KJS::BracketAccessorNode::emitCode): (KJS::DotAccessorNode::emitCode): (KJS::EvalFunctionCallNode::emitCode): (KJS::FunctionCallResolveNode::emitCode): (KJS::FunctionCallBracketNode::emitCode): (KJS::FunctionCallDotNode::emitCode): (KJS::PostIncResolveNode::emitCode): (KJS::PostDecResolveNode::emitCode): (KJS::PostIncBracketNode::emitCode): (KJS::PostDecBracketNode::emitCode): (KJS::PostIncDotNode::emitCode): (KJS::PostDecDotNode::emitCode): (KJS::DeleteResolveNode::emitCode): (KJS::DeleteBracketNode::emitCode): (KJS::DeleteDotNode::emitCode): (KJS::TypeOfResolveNode::emitCode): (KJS::PreIncResolveNode::emitCode): (KJS::PreDecResolveNode::emitCode): (KJS::PreIncBracketNode::emitCode): (KJS::PreDecBracketNode::emitCode): (KJS::PreIncDotNode::emitCode): (KJS::PreDecDotNode::emitCode): (KJS::ReadModifyResolveNode::emitCode): (KJS::AssignResolveNode::emitCode): (KJS::AssignDotNode::emitCode): (KJS::ReadModifyDotNode::emitCode): (KJS::AssignBracketNode::emitCode): (KJS::ReadModifyBracketNode::emitCode): (KJS::ConstDeclNode::emitCodeSingle): (KJS::ForInNode::emitCode): (KJS::TryNode::emitCode):
4:29 PM Changeset in webkit [32855] by oliver@apple.com
  • 3 edits
    3 adds in branches/squirrelfish

Fix assertion when accessing arguments object with too many arguments provided

Reviewed by Maciej

The arguments constructor was assuming that the register offset given for argv
was an absolute offset into the registerfile, rather than the offset from the
frame. This patches corrects that issue.

3:03 PM Changeset in webkit [32854] by mitz@apple.com
  • 3 edits
    2 adds in trunk

WebCore:

Reviewed by Sam Weinig.

Test: fast/gradients/crash-on-remove.html

  • css/CSSImageGeneratorValue.cpp: (WebCore::CSSImageGeneratorValue::CSSImageGeneratorValue): (WebCore::CSSImageGeneratorValue::addClient): Added a call to ref() the value. (WebCore::CSSImageGeneratorValue::removeClient): Added code to deref() the value.

LayoutTests:

Reviewed by Sam Weinig.

  • fast/gradients/crash-on-remove-expected.txt: Added.
  • fast/gradients/crash-on-remove.html: Added.
2:52 PM Changeset in webkit [32853] by weinig@apple.com
  • 5 edits in trunk/LayoutTests

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

Reviewed by Maciej Stachowiak.

Don't print out the full url.

  • fast/dom/Window/dom-access-from-closure-iframe-expected.txt:
  • fast/dom/Window/dom-access-from-closure-window-expected.txt:
  • fast/dom/Window/resources/dom-access-from-closure-iframe-child.html:
  • fast/dom/Window/resources/dom-access-from-closure-window-child.html:
2:52 PM Changeset in webkit [32852] by ddkilzer@apple.com
  • 2 edits in trunk/WebKit/mac

Make parameters match for WebChromeClient::addMessageToConsole()

Reviewed by John.

  • WebCoreSupport/WebChromeClient.h: (WebChromeClient::addMessageToConsole): Renamed sourceID parameter to sourceURL to match implementation in WebChromeClient.mm.
2:29 PM Changeset in webkit [32851] by weinig@apple.com
  • 2 edits in trunk/WebCore

2008-05-03 Sam Weinig <sam@webkit.org>

Reviewed by Mark Rowe.

Move createDOMWrapper(JSObject* object) out of the KJS namespace and into
the WebCore namespace now that the required compilers don't freak out about
this anymore.

  • bindings/objc/DOMUtility.mm: (WebCore::createDOMWrapper):
11:27 AM Changeset in webkit [32850] by ggaren@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Rubber stamped by Sam Weinig.


Cleaned up Machine.cpp according to our style guidelines: moved static
data to the top of the file; moved stand-alone functions below that;
moved the Machine constructor above other Machine member functions.

May 3, 2008:

11:36 PM Changeset in webkit [32849] by rwlbuis@webkit.org
  • 5 edits in trunk

Reviewed by Sam.

https://bugs.webkit.org/show_bug.cgi?id=18652
onchange events don't seem to fire for input[type=range] controls.

Fire changeEvent when clicking the slider outside the current
thumb position.

6:04 PM Changeset in webkit [32848] by weinig@apple.com
  • 2 edits in trunk/WebCore

2008-05-03 Sam Weinig <sam@webkit.org>

Reviewed by Mark Rowe.

Remove unused enums from JSDOMWindowBase.

  • bindings/js/JSDOMWindowBase.h: (WebCore::JSDOMWindowBase::):
5:59 PM Changeset in webkit [32847] by weinig@apple.com
  • 2 edits in trunk/WebCore

2008-05-03 Sam Weinig <sam@webkit.org>

Real build fix.

  • WebCore.xcodeproj/project.pbxproj:
5:48 PM Changeset in webkit [32846] by weinig@apple.com
  • 2 edits in trunk/WebCore

2008-05-03 Sam Weinig <sam@webkit.org>

Build fix.

  • bindings/js/kjs_events.cpp: (WebCore::JSAbstractEventListener::handleEvent):
5:36 PM Changeset in webkit [32845] by weinig@apple.com
  • 1 edit
    16 adds in trunk/LayoutTests

2008-05-03 Sam Weinig <sam@webkit.org>

Reviewed by Dan Bernstein.

Add tests that show our behavior when using closures from a global object
whose frame has been navigated.

Related to https://bugs.webkit.org/show_bug.cgi?id=17249.

  • fast/dom/Window/closure-access-after-navigation-iframe-expected.txt: Added.
  • fast/dom/Window/closure-access-after-navigation-iframe.html: Added.
  • fast/dom/Window/closure-access-after-navigation-window-expected.txt: Added.
  • fast/dom/Window/closure-access-after-navigation-window.html: Added.
  • fast/dom/Window/dom-access-from-closure-iframe-expected.txt: Added.
  • fast/dom/Window/dom-access-from-closure-iframe.html: Added.
  • fast/dom/Window/dom-access-from-closure-window-expected.txt: Added.
  • fast/dom/Window/dom-access-from-closure-window.html: Added.
  • fast/dom/Window/resources/closure-access-after-navigation-iframe-child-1.html: Added.
  • fast/dom/Window/resources/closure-access-after-navigation-iframe-child-2.html: Added.
  • fast/dom/Window/resources/closure-access-after-navigation-window-child-1.html: Added.
  • fast/dom/Window/resources/closure-access-after-navigation-window-child-2.html: Added.
  • fast/dom/Window/resources/dom-access-from-closure-iframe-child.html: Added.
  • fast/dom/Window/resources/dom-access-from-closure-window-child.html: Added.
  • fast/dom/Window/resources/notify-opener-done.html: Added.
  • fast/dom/Window/resources/notify-parent-done.html: Added.
5:02 PM Changeset in webkit [32844] by weinig@apple.com
  • 23 edits
    2 moves in trunk/WebCore

2008-05-03 Sam Weinig <sam@webkit.org>

Rubber-stamped by Geoffrey Garen.

Rename JSDOMWindowWrapper to JSDOMWindowShell.

2:40 PM Changeset in webkit [32843] by mjs@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

2008-05-03 Maciej Stachowiak <mjs@apple.com>

Reviewed by Sam.


  • fix accidental breakage from last patch
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
2:08 PM Changeset in webkit [32842] by mjs@apple.com
  • 7 edits in branches/squirrelfish/JavaScriptCore

2008-05-03 Maciej Stachowiak <mjs@apple.com>

Reviewed by Geoff.


  • a bunch more opcode documentation and corresponding parameter name fixes

I renamed a few opcodes:


type_of --> typeof (that's what the JS operator is named)
instance_of --> instanceof (ditto)
create_error --> new_error (for consistency with other new_* opcodes)


I documented the following opcodes:


  • load
  • new_object
  • new_array
  • new_regexp
  • mov
  • pre_inc
  • pre_dec
  • post_inc
  • post_dec
  • to_jsnumber
  • negate
  • bitnot
  • not
  • instanceof
  • typeof
  • in
  • new_func
  • new_funcexp
  • new_error

I also fixed formatting on some existing opcode docs.


  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitMove): (KJS::CodeGenerator::emitNot): (KJS::CodeGenerator::emitPreInc): (KJS::CodeGenerator::emitPreDec): (KJS::CodeGenerator::emitPostInc): (KJS::CodeGenerator::emitPostDec): (KJS::CodeGenerator::emitToJSNumber): (KJS::CodeGenerator::emitNegate): (KJS::CodeGenerator::emitBitNot): (KJS::CodeGenerator::emitInstanceOf): (KJS::CodeGenerator::emitTypeOf): (KJS::CodeGenerator::emitIn): (KJS::CodeGenerator::emitLoad): (KJS::CodeGenerator::emitNewObject): (KJS::CodeGenerator::emitNewArray): (KJS::CodeGenerator::emitNewRegExp): (KJS::CodeGenerator::emitNewError):
  • VM/CodeGenerator.h: (KJS::CodeGenerator::scopeDepth): (KJS::CodeGenerator::addVar):
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • VM/Opcode.h:
  • kjs/nodes.cpp: (KJS::Node::emitThrowError): (KJS::RegExpNode::emitCode): (KJS::TypeOfValueNode::emitCode): (KJS::UnaryPlusNode::emitCode): (KJS::NegateNode::emitCode): (KJS::BitwiseNotNode::emitCode): (KJS::LogicalNotNode::emitCode): (KJS::InstanceOfNode::emitCode): (KJS::InNode::emitCode):
1:53 PM Changeset in webkit [32841] by mjs@apple.com
  • 2 edits
    2 adds in branches/squirrelfish/JavaScriptCore

2008-05-03 Maciej Stachowiak <mjs@apple.com>

Reviewed by Geoff and Sam.


  • generate HTML bytecode docs at build time
  • DerivedSources.make:
  • docs: Added.
  • docs/make-bytecode-docs.pl: Added.
1:35 PM Changeset in webkit [32840] by ggaren@apple.com
  • 7 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam Weinig.


Update ExecState::m_scopeChain when switching scope chains inside the
machine.


This fixes uses of lexicalGlobalObject, such as, in a subframe

alert(top.makeArray() instanceof Array ? "FAIL" : "PASS");


and a bunch of the security failures listed in
https://bugs.webkit.org/show_bug.cgi?id=18870. (Those tests still fail,
seemingly because of regressions in exception messages).


SunSpider reports no change.

  • VM/Machine.cpp: Factored out scope chain updating into a common function that takes care to update ExecState::m_scopeChain, too.
  • kjs/ExecState.h: I made Machine a friend of ExecState so that Machine could update ExecState::m_scopeChain, even though that value is read-only for everyone else.
  • kjs/JSGlobalObject.h: (KJS::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData): Changed this client to be a little friendlier to ExecState's internal storage type for scope chain data.
12:36 PM Changeset in webkit [32839] by ggaren@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam Weinig.


Fixed https://bugs.webkit.org/show_bug.cgi?id=18876
Squirrelfish: ScopeChainNode leak in op_jmp_scopes.


SunSpider reports no change.

  • VM/Machine.cpp: (KJS::Machine::privateExecute): Don't construct a ScopeChain object, since the direct threaded interpreter will goto across its destructor.
2:14 AM Changeset in webkit [32838] by ggaren@apple.com
  • 8 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.


A bit more efficient fix than r32832: Don't copy globals into function
register files; instead, have the RegisterFileStack track only the base
of the last *global* register file, so the global object's register
references stay good.


SunSpider reports a .3% speedup. Not sure what that's about.

12:20 AM Changeset in webkit [32837] by oliver@apple.com
  • 6 edits in branches/squirrelfish/JavaScriptCore

Bug 18864: SquirrelFish: Support getter and setter definition in object literals
<https://bugs.webkit.org/show_bug.cgi?id=18864>

Reviewed by Maciej

Add new opcodes to allow us to add getters and setters to an object. These are
only used by the codegen for object literals.

May 2, 2008:

11:44 PM Changeset in webkit [32836] by rwlbuis@webkit.org
  • 6 edits
    2 adds in trunk

Reviewed by Eric.

https://bugs.webkit.org/show_bug.cgi?id=18568
background: currentColor fails

Implement currentColor from CSS3 color module.

Tests: fast/css/background-currentcolor.html

11:43 PM Changeset in webkit [32835] by mrowe@apple.com
  • 4 edits in tags/Safari-6526.3.3

Versioning.

11:40 PM Changeset in webkit [32834] by mrowe@apple.com
  • 2 edits in tags/Safari-6526.3.3/WebKitLibraries

Merge r32649.

11:30 PM Changeset in webkit [32833] by mrowe@apple.com
  • 1 copy in tags/Safari-6526.3.3

New tag.

10:40 PM Changeset in webkit [32832] by mjs@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

2008-05-02 Maciej Stachowiak <mjs@apple.com>

Reviewed by Oliver.


  • properly copy globals into and out of implicit call register files, otherwise they will fail at global lookup

Fixes fast/js/array-tostring-and-join.html layout test.


  • VM/RegisterFileStack.cpp: (KJS::RegisterFileStack::pushGlobalRegisterFile): (KJS::RegisterFileStack::popGlobalRegisterFile): (KJS::RegisterFileStack::pushFunctionRegisterFile): (KJS::RegisterFileStack::popFunctionRegisterFile):
7:25 PM Changeset in webkit [32831] by ggaren@apple.com
  • 5 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.


Fixed https://bugs.webkit.org/show_bug.cgi?id=18822
SQUIRRELFISH: incorrect eval used in some cases


Changed all code inside the machine to fetch the lexical global object
directly from the scope chain, instead of from the ExecState.


Clients who fetch the lexical global object through the ExecState
still don't work.


SunSpider reports no change.

  • VM/Machine.cpp: (KJS::Machine::privateExecute): Fetch the lexical global object from the scope chain.


  • kjs/ExecState.h: (KJS::ExecState::ExecState::lexicalGlobalObject): Moved the logic for this function into ScopeChainNode, but kept this function around to support existing clients.
5:44 PM Changeset in webkit [32830] by andersca@apple.com
  • 5 edits in trunk

WebCore:

2008-05-02 Anders Carlsson <andersca@apple.com>

Reviewed by Mark.

Turns out calling locationInWindow on keyboard events will not throw an exception,
but the point returned is completely bogus, so remove coordinates from the keyboard event struct.


  • bridge/npapi.h: (_NPCocoaEvent::):

WebKit/mac:

2008-05-02 Anders Carlsson <andersca@apple.com>

Reviewed by Mark.

Various Cocoa event model and 64-bit plug-in fixes.


  • Plugins/WebNetscapePluginEventHandlerCocoa.mm: (WebNetscapePluginEventHandlerCocoa::sendMouseEvent): Set click count.


(WebNetscapePluginEventHandlerCocoa::flagsChanged):
(WebNetscapePluginEventHandlerCocoa::sendKeyEvent):
Don't try to get the mouse location for keyboard events.


  • Plugins/WebPluginPackage.m: (-[WebPluginPackage initWithPath:]): Preflight the bundle so we won't show 32-bit WebKit plug-ins when running as 64-bit.
5:21 PM Changeset in webkit [32829] by andersca@apple.com
  • 2 edits in trunk

2008-05-02 Anders Carlsson <andersca@apple.com>

Reviewed by Mark.

Add an "x86_64" make rule.


  • Makefile.shared:
4:10 PM Changeset in webkit [32828] by alp@webkit.org
  • 2 edits in trunk/WebCore

2008-05-02 Benjamin Otte <otte@gnome.org>

Reviewed by Alp Toker.

http://bugs.webkit.org/show_bug.cgi?id=18856
[GTK] variable initialization missing

Not initializing the m_needsXEmbed variable could have very funny
results. Most often those results would be crashes.

  • plugins/PluginView.cpp: (WebCore::PluginView::PluginView):
3:21 PM Changeset in webkit [32827] by alp@webkit.org
  • 4 edits in trunk

2008-05-02 Jan Michael Alonzo <jmalonzo@unpluggable.com>

Reviewed by Eric.

https://bugs.webkit.org/show_bug.cgi?id=18811
Enable dashboard and offline web apps in autotools

2:07 PM Changeset in webkit [32826] by mrowe@apple.com
  • 2 edits in tags/Safari-6526.3.2/JavaScriptCore

Merge r32654.

2:04 PM Changeset in webkit [32825] by mrowe@apple.com
  • 4 edits in tags/Safari-6526.3.2

Versioning.

2:02 PM Changeset in webkit [32824] by mrowe@apple.com
  • 1 copy in tags/Safari-6526.3.2

New tag.

1:21 PM Changeset in webkit [32823] by mrowe@apple.com
  • 4 edits in tags/Safari-6526.3.1/WebKit/mac

Merge r32706.

1:05 PM Changeset in webkit [32822] by ap@webkit.org
  • 4 edits in trunk/JavaScriptCore

Reviewed by Geoffrey Garen.

Get rid of static data in nodes.cpp (well, at least of non-debug one).

No measurable change on SunSpider.

  • kjs/InitializeThreading.cpp: (KJS::initializeThreadingOnce):
  • kjs/nodes.cpp: (KJS::newTrackedObjects): (KJS::trackedObjectExtraRefCounts): (KJS::initializeNodesThreading): (KJS::ParserRefCounted::ParserRefCounted): (KJS::ParserRefCounted::ref): (KJS::ParserRefCounted::deref): (KJS::ParserRefCounted::refcount): (KJS::ParserRefCounted::deleteNewObjects):
  • kjs/nodes.h: Made newTrackedObjects and trackedObjectExtraRefCounts per-thread.
12:23 PM Changeset in webkit [32821] by andersca@apple.com
  • 4 edits in trunk

WebCore:

2008-05-02 Anders Carlsson <andersca@apple.com>

Reviewed by Sam.

Name the event union so it will work in plain C.

  • bridge/npapi.h: (_NPCocoaEvent::):

WebKit/mac:

2008-05-02 Anders Carlsson <andersca@apple.com>

Reviewed by Sam.

The event union is now named.


  • Plugins/WebNetscapePluginEventHandlerCocoa.mm: (WebNetscapePluginEventHandlerCocoa::drawRect): (WebNetscapePluginEventHandlerCocoa::sendMouseEvent): (WebNetscapePluginEventHandlerCocoa::flagsChanged): (WebNetscapePluginEventHandlerCocoa::sendKeyEvent): (WebNetscapePluginEventHandlerCocoa::windowFocusChanged): (WebNetscapePluginEventHandlerCocoa::focusChanged):
11:15 AM Changeset in webkit [32820] by andersca@apple.com
  • 2 edits in trunk/WebKit/mac

2008-05-02 Anders Carlsson <andersca@apple.com>

Reviewed by Mark.

Make sure that 32-bit only plug-ins aren't shown when running as 64-bit.


Call preflightAndReturnError on the bundle, which will check if any of the architectures
in the bundle match the current architecture.


  • Plugins/WebNetscapePluginPackage.m: (-[WebNetscapePluginPackage _initWithPath:]):
11:10 AM Changeset in webkit [32819] by ap@webkit.org
  • 5 edits in trunk/JavaScriptCore

Reviewed by Darin.

Move call stack depth counter to global object.

  • kjs/ExecState.h: (KJS::ExecState::functionCallDepth): Added a recursion depth counter to per-thread data.
  • kjs/JSGlobalObject.cpp: (KJS::JSGlobalObject::init): Initialize PerThreadData.functionCallDepth.
  • kjs/JSGlobalObject.h: (KJS::JSGlobalObject::perThreadData): Made the result non-const.
  • kjs/object.cpp: (KJS::throwStackSizeExceededError): Moved throwError to a separate function, since it is now the only thing in JSObject::call that needs a PIC branch. (KJS::JSObject::call): Use a per-thread variable instead of local static for recursion depth tracking.
10:53 AM Changeset in webkit [32818] by mitz@apple.com
  • 2 edits in trunk/WebKitTools

Reviewed by Adam Roben.

  • add an option to svn-apply to set the reviewer name in change logs
Scripts/svn-apply: Added a [-rreviewer name] option.
9:15 AM Changeset in webkit [32817] by mitz@apple.com
  • 4 edits
    4 adds in trunk

WebCore:

Reviewed by John Sullivan.

  • render text shadows with zero offset, as the shadow can be seen behind the text if the text is translucent

Test: fast/text/shadow-no-blur.html

  • platform/graphics/mac/FontMac.mm: (WebCore::Font::drawComplexText): Removed the isEmpty() condition on the shadow offset. Since isEmpty() is also true for sizes that have one or more non-positive components, this also ensures that subpixel antialiasing of the text is maintained with shadows in all directions. (WebCore::Font::drawGlyphs): Ditto.
  • platform/graphics/win/FontCGWin.cpp: (WebCore::Font::drawGlyphs): Ditto.

LayoutTests:

Reviewed by John Sullivan.

  • add pixel test for text shadows with zero blur and various offsets, including zero offset
  • fast/text/shadow-no-blur.html: Added.
  • platform/mac/fast/text/shadow-no-blur-expected.checksum: Added.
  • platform/mac/fast/text/shadow-no-blur-expected.png: Added.
  • platform/mac/fast/text/shadow-no-blur-expected.txt: Added.
7:48 AM Changeset in webkit [32816] by Simon Hausmann
  • 102 edits
    14 adds in trunk/LayoutTests

2008-05-02 Tor Arne Vestbø <tavestbo@trolltech.com>

Updated Qt layout-tests to match changes in font metrics.

7:09 AM Changeset in webkit [32815] by Simon Hausmann
  • 2 edits in trunk/WebCore

Ariya Hidayat <ariya.hidayat@trolltech.com>

Build the Qt port with SVG Use and As Image support.

6:40 AM Changeset in webkit [32814] by Simon Hausmann
  • 2 edits in trunk/WebCore

Ariya Hidayat <ariya.hidayat@trolltech.com>

Fixed potential crash on SVG animation (added more checks to the assert).

6:21 AM Changeset in webkit [32813] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Benjamin Meyer <bmeyer@trolltech.com>

Doc: Mention that you have to enable plugins in QWebSettings for them to work.

6:07 AM Changeset in webkit [32812] by ap@webkit.org
  • 2 edits in trunk/WebCore

Rubber-stamped by John Sullivan.

Fix a debug-only crash in layout tests.

  • loader/CachedResource.cpp: (WebCore::CachedResource::~CachedResource): Don't call resourceForURL() for null URLs.
5:07 AM Changeset in webkit [32811] by Simon Hausmann
  • 2 edits in trunk/WebCore

Fix the Qt build on Windows when Phonon is enabled for Audio/Video support

4:04 AM Changeset in webkit [32810] by Simon Hausmann
  • 8 edits in trunk

Fix the Qt build, add ExecState where required.

3:32 AM Changeset in webkit [32809] by Simon Hausmann
  • 4 edits in trunk/WebCore

Fix the Qt/Win build.

3:29 AM Changeset in webkit [32808] by ap@webkit.org
  • 9 edits in trunk

Reviewed by Darin.

Make JavaScriptGlue and JavaScriptCore API functions implicitly call initializeThreading
for the sake of non-WebKit clients.

JavaScriptCore:

  • API/JSBase.cpp: (JSGarbageCollect):
  • API/JSContextRef.cpp: (JSGlobalContextCreate): These are the JavaScriptCore API bottlenecks. There are a few other JSStringRef and JSClassRef functions that can be called earlier, but they do not do anything that requires initializeThreading.
  • kjs/InitializeThreading.cpp: (KJS::doInitializeThreading): (KJS::initializeThreading): On Darwin, make the initialization happen under pthread_once, since there is no guarantee that non-WebKit clients won't try to call this function re-entrantly.
  • kjs/InitializeThreading.h:
  • wtf/Threading.h: Spell out initializeThreading contract.
  • wtf/ThreadingPthreads.cpp: (WTF::isMainThread): Make sure that results are correct on Darwin, even if threading was initialized from a secondary thread.

JavaScriptGlue:

  • JavaScriptGlue.cpp: (JSRunCreate): (JSCollect): (JSCreateJSArrayFromCFArray): (JSLockInterpreter): These are all possible JavaScriptGlue entry points.
3:07 AM Changeset in webkit [32807] by ap@webkit.org
  • 126 edits in trunk

Reviewed by Geoffrey Garen.

https://bugs.webkit.org/show_bug.cgi?id=18826
Make JavaScript heap per-thread

2:55 AM Changeset in webkit [32806] by Simon Hausmann
  • 2 edits in trunk/WebCore

2008-05-02 Ariya Hidayat <ariya.hidayat@trolltech.com>

Reviewed by Simon.

Build the Qt port with SVG Animation support.

12:55 AM Changeset in webkit [32805] by mitz@apple.com
  • 2 edits in trunk/JavaScriptCore

Reviewed by Maciej Stachowiak.

  • Mac build fix
  • wtf/StrHash.h: Added header guards and removed #include "config.h".
12:39 AM Changeset in webkit [32804] by Simon Hausmann
  • 2 edits in trunk/WebCore

Build fix for Qt/Gtk. Don't declare NP_InitializeFuncPtr twice
with different signatures.

12:27 AM Changeset in webkit [32803] by ggaren@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Rubber stamped by Oliver Hunt.


Removed ExecState.cpp from AllInOneFile.cpp, for a .2% speedup.

May 1, 2008:

11:37 PM Changeset in webkit [32802] by kevino@webkit.org
  • 3 edits in trunk/WebCore

Reviewed by Kevin Ollivier.

Explicitly set the pen style in wx port to keep pen style changes from affecting URL underline or text field drawing.

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

11:37 PM Changeset in webkit [32801] by mjs@apple.com
  • 2 edits in branches/squirrelfish/LayoutTests

2008-05-01 Maciej Stachowiak <mjs@apple.com>

Reviewed by Oliver.


  • bump up the numbers in this test to account for our now much higher recursion capability.
  • fast/js/deep-recursion-test.html:
11:24 PM Changeset in webkit [32800] by kevino@webkit.org
  • 4 edits
    1 add in trunk/WebCore

Reviewed by Kevin Ollivier.

Implement popup menu support for wx port.

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

10:48 PM Changeset in webkit [32799] by adachan@apple.com
  • 2 edits in trunk/JavaScriptCore

#include <wtf/StrHash.h> in identifier.cpp.

Reviewed by Maciej.

  • kjs/identifier.cpp:
10:16 PM Changeset in webkit [32798] by kevino@webkit.org
  • 2 edits in trunk/WebCore

Reviewed by Eric Seidel.

Make sure we properly set the button for all mouse events, not just mouse down, set the click count to 0 for non-click events, and finally set the timestamp.

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

9:12 PM Changeset in webkit [32797] by oliver@apple.com
  • 6 edits in branches/squirrelfish/JavaScriptCore

Bug 18827: SquirrelFish: Prevent getters and setters from destroying the current RegisterFile
<https://bugs.webkit.org/show_bug.cgi?id=18827>

Reviewed by Maciej and Geoff

Remove safe/unsafe RegisterFile concept, and instead just add additional
logic to ensure we always push/pop RegisterFiles when executing getters
and setters, similar to the logic for valueOf and toString.

8:00 PM Changeset in webkit [32796] by weinig@apple.com
  • 1 edit
    1 add in trunk/LayoutTests

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

Add missing result.

  • fast/canvas/canvas-path-with-inf-nan-dimensions-expected.txt: Added.
7:34 PM Changeset in webkit [32795] by weinig@apple.com
  • 10 edits
    4 adds
    2 deletes in trunk/WebCore

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

Reviewed by Mark Rowe (in his infinite wisdom).

Auto-generate the JSXSLTProcessor binding.

  • DerivedSources.make:
  • GNUmakefile.am:
  • WebCore.pro:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • WebCoreSources.bkl:
  • bindings/js/JSDOMWindowBase.cpp: (WebCore::JSDOMWindowBase::getValueProperty):
  • bindings/js/JSDOMWindowBase.h: (WebCore::JSDOMWindowBase::):
  • bindings/js/JSXSLTProcessor.cpp: Removed.
  • bindings/js/JSXSLTProcessor.h: Removed.
  • xml/XSLTProcessor.h:
7:27 PM Changeset in webkit [32794] by mrowe@apple.com
  • 4 edits in tags/Safari-6526.3.1

Versioning.

7:26 PM Changeset in webkit [32793] by mrowe@apple.com
  • 2 edits in tags/Safari-6526.3.1/JavaScriptCore

Merge r32789.

7:23 PM Changeset in webkit [32792] by mrowe@apple.com
  • 1 copy in tags/Safari-6526.3.1

New tag.

7:08 PM Changeset in webkit [32791] by weinig@apple.com
  • 16 edits in trunk

WebCore:

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

Reviewed by Geoffrey Garen.

Fixes:

This patch changes us to perform same-origin checks based on the lexical global object)
rather than dynamic global object, which is now possible we don't re-use the window on
navigations, but rather switch in a new one and re-use the outer shell. This is both
more secure and conforms with the HTML5 specification. Now that all the checks are
done based on the lexical global object, we can remove the SecurityOrigin::Reason
concept, as it was only around to work around an ebay.com bug that required the check to
be done that way.

An important thing to note is that we currently implement a stricter than necessary policy
and perform the same-origin check based on the currently active global object to avoid leaking
the document in cases when the target frame is navigated before access. This will be fixed in
an upcoming patch.

  • bindings/js/JSDOMWindowBase.cpp: (WebCore::JSDOMWindowBase::allowsAccessFrom): (WebCore::JSDOMWindowBase::allowsAccessFromNoErrorMessage): (WebCore::JSDOMWindowBase::allowsAccessFromPrivate): (WebCore::JSDOMWindowBase::crossDomainAccessErrorMessage): (WebCore::JSDOMWindowBase::printErrorMessage): (WebCore::asJSDOMWindow):
  • bindings/js/JSDOMWindowBase.h:
  • html/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::checkOrigin): (WebCore::CanvasRenderingContext2D::createPattern):
  • loader/FrameLoader.cpp: (WebCore::FrameLoader::begin): (WebCore::FrameLoader::write): (WebCore::FrameLoader::setOpener): (WebCore::FrameLoader::shouldAllowNavigation):
  • page/DOMWindow.h: (WebCore::DOMWindow::setSecurityOrigin): (WebCore::DOMWindow::securityOrigin): (WebCore::DOMWindow::setURL): (WebCore::DOMWindow::url):
  • platform/SecurityOrigin.cpp: (WebCore::SecurityOrigin::canAccess): (WebCore::SecurityOrigin::isSecureTransitionTo):
  • platform/SecurityOrigin.h:

LayoutTests:

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

Reviewed by Geoffrey Garen.

  • http/tests/security/listener/xss-JSTargetNode-onclick-addEventListener-expected.txt:
  • http/tests/security/listener/xss-JSTargetNode-onclick-shortcut-expected.txt:
  • http/tests/security/listener/xss-XMLHttpRequest-addEventListener-expected.txt:
  • http/tests/security/listener/xss-XMLHttpRequest-shortcut-expected.txt:
  • http/tests/security/listener/xss-window-onclick-addEventListener-expected.txt:
  • http/tests/security/listener/xss-window-onclick-shortcut-expected.txt:
  • http/tests/security/xss-eval-expected.txt:
6:34 PM Changeset in webkit [32790] by andersca@apple.com
  • 11 edits in trunk

WebCore:

2008-05-01 Anders Carlsson <andersca@apple.com>

Reviewed by Mark.

Enable 64-bit NPAPI plugins.


  • WebCore.xcodeproj/project.pbxproj: Don't remove NPAPI related symbols from the 64-bit .exp file.


  • bridge/npruntime.h: Remove now unnecessary #error.

WebKit/mac:

2008-05-01 Anders Carlsson <andersca@apple.com>

Reviewed by Mark.

64-bit NPAPI plugin build fixes.


  • Plugins/WebBaseNetscapePluginView.mm: (-[WebBaseNetscapePluginView saveAndSetNewPortStateForUpdate:]): (-[WebBaseNetscapePluginView updateAndSetWindow]): (-[WebBaseNetscapePluginView start]): (-[WebBaseNetscapePluginView windowBecameKey:]):
  • Plugins/WebNetscapeDeprecatedFunctions.c:
  • Plugins/WebNetscapeDeprecatedFunctions.h:
  • Plugins/WebNetscapePluginEventHandler.mm: (WebNetscapePluginEventHandler::create):
  • Plugins/WebNetscapePluginEventHandlerCarbon.h:
  • Plugins/WebNetscapePluginEventHandlerCarbon.mm:
  • Plugins/WebPluginDatabase.m: (-[WebPluginDatabase pluginForKey:withEnumeratorSelector:]):
6:10 PM Changeset in webkit [32789] by sfalken@apple.com
  • 2 edits in trunk/JavaScriptCore

2008-05-01 Steve Falkenburg <sfalken@apple.com>

Build fix.

6:02 PM Changeset in webkit [32788] by mjs@apple.com
  • 3 edits in trunk/WebCore

2008-05-01 Maciej Stachowiak <mjs@apple.com>

Reviewed by Oliver (a while ago)

  • just a wee bit more bindings speedup


Store the per-document Node --> JS wrapper cache in the document
instead of an external hashtable.

  • bindings/js/kjs_binding.cpp: (WebCore::ScriptInterpreter::getDOMNodeForDocument): (WebCore::ScriptInterpreter::forgetDOMNodeForDocument): (WebCore::ScriptInterpreter::putDOMNodeForDocument): (WebCore::ScriptInterpreter::forgetAllDOMNodesForDocument): (WebCore::ScriptInterpreter::markDOMNodesForDocument):
  • dom/Document.h: (WebCore::Document::wrapperCache):
5:15 PM Changeset in webkit [32787] by andersca@apple.com
  • 7 edits
    1 delete in trunk

WebCore:

2008-05-01 Anders Carlsson <andersca@apple.com>

Reviewed by Tim.

Remove duplicate npfunctions.h header from WebKit.


  • WebCore.xcodeproj/project.pbxproj: Add npfunctions.h and set its role to private.


  • plugins/npfunctions.h: Merge Mac specific changes.

WebKit:

2008-05-01 Anders Carlsson <andersca@apple.com>

Reviewed by Tim.

Remove npfunctions.h


  • WebKit.xcodeproj/project.pbxproj:

WebKit/mac:

2008-05-01 Anders Carlsson <andersca@apple.com>

Reviewed by Tim.

Remove duplicate npfunctions.h header from WebKit.

  • MigrateHeaders.make: Migrate npfunctions.h


  • Plugins/npfunctions.h: Removed.
4:58 PM Changeset in webkit [32786] by weinig@apple.com
  • 13 edits in trunk/WebCore

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

Reviewed by Geoffrey Garen.

Rename toJSDOMWindow(KJS::JSGlobalObject) to asJSDOMWindow, as all it does is
cast.

  • bindings/js/JSCustomVoidCallback.cpp: (WebCore::toVoidCallback):
  • bindings/js/JSCustomXPathNSResolver.cpp: (WebCore::JSCustomXPathNSResolver::create):
  • bindings/js/JSDOMApplicationCacheCustom.cpp: (WebCore::JSDOMApplicationCache::add): (WebCore::JSDOMApplicationCache::remove):
  • bindings/js/JSDOMWindowBase.cpp: (WebCore::allowPopUp): (WebCore::createWindow): (WebCore::windowProtoFuncOpen): (WebCore::asJSDOMWindow):
  • bindings/js/JSDOMWindowBase.h:
  • bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::setLocation): (WebCore::JSDOMWindow::postMessage):
  • bindings/js/JSDatabaseCustom.cpp: (WebCore::JSDatabase::changeVersion): (WebCore::JSDatabase::transaction):
  • bindings/js/JSDocumentCustom.cpp: (WebCore::JSDocument::setLocation):
  • bindings/js/JSLocationCustom.cpp: (WebCore::navigateIfAllowed): (WebCore::JSLocation::setHref): (WebCore::JSLocation::replace): (WebCore::JSLocation::reload): (WebCore::JSLocation::assign):
  • bindings/js/JSSQLTransactionCustom.cpp: (WebCore::JSSQLTransaction::executeSql):
  • bindings/js/JSXMLHttpRequestCustom.cpp: (WebCore::JSXMLHttpRequest::open):
  • page/JavaScriptDebugServer.cpp: (WebCore::toPage):
4:58 PM Changeset in webkit [32785] by andersca@apple.com
  • 1 edit
    1 move in trunk/LayoutTests

2008-05-01 Anders Carlsson <andersca@apple.com>

Reviewed by Mitz.

Disable an SVG font test that crashes.


http://bugs.webkit.org/show_bug.cgi?id=18830 tracks fixing the crash.


  • svg/W3C-SVG-1.1/fonts-glyph-02-t.svg: Removed.
  • svg/W3C-SVG-1.1/fonts-glyph-02-t.svg-disabled: Copied from svg/W3C-SVG-1.1/fonts-glyph-02-t.svg.
4:54 PM Changeset in webkit [32784] by mitz@apple.com
  • 3 edits
    4 adds in trunk

WebCore:

2008-05-01 Anatoli Papirovski <apapirovski@mac.com>

Reviewed by Dave Hyatt.

Test: fast/replaced/absolute-position-percentage-width.html

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

LayoutTests:

2008-05-01 Anatoli Papirovski <apapirovski@mac.com>

Reviewed by Dave Hyatt.

  • fast/replaced/absolute-position-percentage-width.html: Added.
  • platform/mac/fast/replaced/absolute-position-percentage-width-expected.checksum: Added.
  • platform/mac/fast/replaced/absolute-position-percentage-width-expected.png: Added.
  • platform/mac/fast/replaced/absolute-position-percentage-width-expected.txt: Added.
4:36 PM Changeset in webkit [32783] by mitz@apple.com
  • 2 edits in trunk/WebCore
  • Windows build fix
  • platform/graphics/win/FontCGWin.cpp: (WebCore::Font::drawGlyphs):
4:33 PM Changeset in webkit [32782] by andersca@apple.com
  • 2 edits in trunk/WebKit/mac

2008-05-01 Anders Carlsson <andersca@apple.com>

Reviewed by John.


Add null checks for the event handler.


  • Plugins/WebBaseNetscapePluginView.mm: (-[WebBaseNetscapePluginView stopTimers]): (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:sendNotification:]):
4:10 PM Changeset in webkit [32781] by mitz@apple.com
  • 4 edits in trunk/WebCore

Reviewed by Darin Adler.

  • make synthetic bold and synthetic italics work in GDI text
  • account for synthetic bold in complex text on Windows
  • platform/graphics/win/FontCGWin.cpp: (WebCore::Font::drawGlyphs): Adjusted the text rectangle's x coordinates to fit italics. Added a skew transform for synthetic italics and a second paint pass for synthetic bold.
  • platform/graphics/win/SimpleFontDataWin.cpp: (WebCore::SimpleFontData::widthForGDIGlyph): Added the synthetic bold offset.
  • platform/graphics/win/UniscribeController.cpp: (WebCore::UniscribeController::shapeAndPlaceItem): Added the synthetic bold offset.
3:53 PM Changeset in webkit [32780] by alp@webkit.org
  • 2 edits in trunk/WebCore

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

Qt/Win build fix attempt following plugin changes. Add missing return
statements.

Also fixes some newly introduced coding style issues in the Qt port.

  • platform/qt/FileSystemQt.cpp: (WebCore::openTemporaryFile): (WebCore::closeFile): (WebCore::writeToFile): (WebCore::unloadModule):
3:39 PM Changeset in webkit [32779] by oliver@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

Rename unsafeForReentry to safeForReentry to avoid double negatives.

RS=Geoff

3:21 PM Changeset in webkit [32778] by andersca@apple.com
  • 4 edits in trunk/WebKit/mac

2008-05-01 Anders Carlsson <andersca@apple.com>

Fix 64-bit build.


  • Plugins/WebNetscapePluginEventHandlerCocoa.h:
  • Plugins/WebNetscapePluginEventHandlerCocoa.mm:
  • WebCoreSupport/WebFrameLoaderClient.mm:
3:01 PM Changeset in webkit [32777] by andersca@apple.com
  • 2 edits in trunk/WebKit/mac

2008-05-01 Anders Carlsson <andersca@apple.com>

Fix build.


  • Plugins/npfunctions.h:
2:38 PM BuildingGtk edited by alp@atoker.com
Remove non-working link to Aplix wiki (feel free to re-add if this is … (diff)
2:37 PM HackingGtk edited by alp@atoker.com
Add plugin-related sources to bundled code list (diff)
2:28 PM Changeset in webkit [32776] by eric@webkit.org
  • 3 edits in trunk/LayoutTests

Rubber-stamped by Sam Weinig.


Mark a couple UTF16 files as binary so windows-svn doesn't mutilate them on checkout.

  • fast/xsl/xslt-enc16.xml: add svn:mime-type application/octet-stream
  • fast/xsl/xslt-enc16to16.xml: add svn:mime-type application/octet-stream
1:43 PM Changeset in webkit [32775] by ddkilzer@apple.com
  • 2 edits in trunk/WebCore

2008-05-01 Anders Carlsson <andersca@apple.com>

Reviewed by Adam.

Export methods needed to subclass Widget. (See r32770.)

  • WebCore.base.exp:
1:25 PM Changeset in webkit [32774] by mrowe@apple.com
  • 4 edits in trunk

Versioning.

1:06 PM Changeset in webkit [32773] by mrowe@apple.com
  • 64 edits in tags/Safari-6526.3

Merge r32652

12:59 PM Changeset in webkit [32772] by mrowe@apple.com
  • 4 edits in trunk

Versioning.

12:57 PM Changeset in webkit [32771] by mrowe@apple.com
  • 1 copy in tags/Safari-6526.3

New tag.

12:42 PM Changeset in webkit [32770] by andersca@apple.com
  • 5 edits in trunk/WebKit/mac

2008-05-01 Anders Carlsson <andersca@apple.com>

Reviewed by Adam.

Forward mouse move events to the Netscape plug-in view.


  • Plugins/WebBaseNetscapePluginView.h:
  • Plugins/WebBaseNetscapePluginView.mm: (-[WebBaseNetscapePluginView handleMouseMoved:]): New method that just calls the current event handler.


  • Plugins/WebNetscapePluginEventHandlerCocoa.mm: (WebNetscapePluginEventHandlerCocoa::flagsChanged): NSFlagsChanged is not a regular keyboard event and some of the NSEvent accessors don't work on it so don't call them.


  • WebCoreSupport/WebFrameLoaderClient.mm: (NetscapePluginWidget::NetscapePluginWidget): New Widget subclass to be used for Netscape plug-ins.


(NetscapePluginWidget::handleEvent):
Forward NSMouseMoved events to the plug-in.


(WebFrameLoaderClient::createPlugin):
Wrap the plug-in view in a NetscapePluginWidget.

12:15 PM Changeset in webkit [32769] by alice.liu@apple.com
  • 2 edits in trunk/LayoutTests

2008-05-01 Alice Liu <alice.liu@apple.com>

Rubber-stamped by Sam Weinig.

fast/events/tabindex-focus-blur-all.html was timing out on some machines
Make this test faster by not doing += on innerHTML.

  • fast/events/resources/tabindex-focus-blur-all.js:
11:52 AM Changeset in webkit [32768] by ddkilzer@apple.com
  • 1 edit in trunk/WebKitTools/Scripts/run-webkit-tests

Cleaned up ugly if/else statement.

11:34 AM Changeset in webkit [32767] by ddkilzer@apple.com
  • 2 edits in trunk/WebKitTools

Clean up configuration usage in run-webkit-tests

Reviewed by Adam.

  • Scripts/run-webkit-tests: Parse configuration switches using passedConfiguration() from webkitdirs.pm like every other script. Note that we must still call setConfiguration() afterwards in case the --configuration switch was used. Use $configurationOption when running build-dumprendertree instead of recreating the switch.
11:15 AM Changeset in webkit [32766] by alp@webkit.org
  • 30 edits
    7 adds in trunk

2008-05-01 Marc Ordinas i Llopis <marc.ordinasillopis@collabora.co.uk>

Reviewed by Alp Toker.
Qt parts OK'ed by Simon Hausmann.

Based on work by several authors.

https://bugs.webkit.org/show_bug.cgi?id=14750
Added support for NPAPI plugins on Gtk and Qt-x11 ports.

11:14 AM Changeset in webkit [32765] by weinig@apple.com
  • 2 edits in trunk/WebKit

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

Reviewed by Anders Carlsson.

Turn off deprecated warnings for WebNetscapePluginEventHandlerCarbon.mm.

  • WebKit.xcodeproj/project.pbxproj:
11:09 AM Changeset in webkit [32764] by weinig@apple.com
  • 4 edits in trunk/LayoutTests

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

Update results with -webkit-box-reflect values.

  • fast/css/computed-style-expected.txt:
  • fast/css/computed-style-without-renderer-expected.txt:
  • svg/css/getComputedStyle-basic-expected.txt:
10:48 AM Changeset in webkit [32763] by weinig@apple.com
  • 3 edits
    1 add in trunk

JavaScriptCore:

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

Fix build.

WebCore:

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

Fix build.

  • ForwardingHeaders/wtf/StrHash.h: Added.
10:15 AM Changeset in webkit [32762] by andersca@apple.com
  • 7 edits in trunk/WebCore

2008-05-01 Anders Carlsson <andersca@apple.com>

Reviewed by Darin.

Move management of cache groups to ApplicationCacheStorage. Also,
application caches now start out with a null group and will have their group set
when the cache has finished loading.

  • loader/appcache/ApplicationCache.cpp: (WebCore::ApplicationCache::ApplicationCache): Initialize m_group to 0.


(WebCore::ApplicationCache::~ApplicationCache):
Null check the group.


(WebCore::ApplicationCache::setGroup):
New method for setting the group.


  • loader/appcache/ApplicationCache.h: (WebCore::ApplicationCache::create): Remove the group argument.


  • loader/appcache/ApplicationCacheGroup.cpp: (WebCore::ApplicationCacheGroup::~ApplicationCacheGroup): Let the storage know that the cache group has been destroyed.


(WebCore::ApplicationCacheGroup::cacheForMainRequest):
Call into the storage.


(WebCore::ApplicationCacheGroup::selectCache):
Call into the storage.


(WebCore::ApplicationCacheGroup::documentLoaderDestroyed):
When there are no document loaders associated with the cache group,
set the newest cache to 0.


(WebCore::ApplicationCacheGroup::cacheDestroyed):
Delete the group if there are no associated caches.


(WebCore::ApplicationCacheGroup::setNewestCache):
New method that will set the newest cache and associate the group with the cache.


(WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
Call setNewestCache instead.


  • loader/appcache/ApplicationCacheStorage.cpp: (WebCore::urlHostHash): Move host hash method here.


(WebCore::ApplicationCacheStorage::findOrCreateCacheGroup):
New method that finds a cache group with a given manifest URL or creates a new one.

(WebCore::ApplicationCacheStorage::cacheGroupForURL):
New method that returns a cache group for a given URL.


(WebCore::ApplicationCacheStorage::cacheGroupDestroyed):
When the cache group has been destroyed, remove it from the hash map.


  • loader/appcache/ApplicationCacheStorage.h: Add new methods.I b
9:50 AM Changeset in webkit [32761] by alp@webkit.org
  • 4 edits in trunk/WebCore

2008-05-01 Dan Winship <danw@gnome.org>

Reviewed by Alp Toker.

http://bugs.webkit.org/show_bug.cgi?id=18490
Add mostly-working file: support and mostly-broken ftp: support to
the soup backend.

  • platform/network/soup/ResourceHandleSoup.cpp (start): after doing basic checks, delegate to one of three submethods (startData): handles data: URLs (startHttp): handles http: and https: URLs, via libsoup (startGio, etc): handles file: and ftp: URLs, via gio. Lots of FIXMEs detailing the parts that don't fully work yet.
  • platform/network/ResourceHandle.h:
  • platform/network/ResourceHandleInternal.h: add new member variables for gio-based loading
9:32 AM Changeset in webkit [32760] by kmccullough@apple.com
  • 7 edits
    1 add in trunk/JavaScriptCore

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

Reviewed by Darin.

<rdar://problem/5770054> JavaScript profiler (10928)

  • Fix "sample" output so that it can be imported into Instruments
  • Also keep track of number of times a function is profiled.
  • JavaScriptCore.xcodeproj/project.pbxproj: Add StrHash.h which needed to be pulled out of identifier.cpp so that it could be used by the profiler and identifiers.
  • kjs/identifier.cpp: Ditto.
  • profiler/FunctionCallProfile.cpp: (KJS::FunctionCallProfile::printDataInspectorStyle): Inspector style printing should show microseconds. (KJS::FunctionCallProfile::printDataSampleStyle): Sample style printing now counts the number of times a function is in the stack tree and does not print microseconds since that does not make sense for a sampler.
  • profiler/FunctionCallProfile.h: Keep track of number of times a function is profiled. (KJS::FunctionCallProfile::numberOfCalls):
  • profiler/Profiler.cpp: (KJS::functionNameCountPairComparator): Comparator for sort function in printDataSampleStyle. (KJS::Profiler::printDataSampleStyle): Print the number of times that a function is listed in the stack tree in order of most times listed.
  • wtf/HashCountedSet.h: Added copyToVector since it didn't exist and is a more standard way to copy a HashSet to a Vector. I added on variant that takes a pair as the Vector's type and so the HashCountedSet simply fills in that pair with its internal pair, and another variant that takes a Vector of the type of the HashCountedSet and only fills in the Vector with the first element of the pair. (WTF::copyToVector):
  • wtf/StrHash.h: Added. (WTF::):
8:56 AM Changeset in webkit [32759] by alp@webkit.org
  • 8 edits in trunk

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

Rubber-stamped by Anders.

GTK+ build fix for changes in r32752. Use int32, not int32_t types in
npapi.h.

Additional fix to use same signedness in npapi.h and Mac for the
interval parameter.

4:26 AM Changeset in webkit [32758] by oliver@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

Bug 18827: SquirrelFish: Prevent getters and setters from destroying the current RegisterFile
<https://bugs.webkit.org/show_bug.cgi?id=18827>

Reviewed by Maciej

This patch makes getters and setters work. It does this by
tracking whether the RegisterFile is "safe", that is whether
the interpreter is in a state that in which it can handle
the RegisterFile being reallocated.

Apr 30, 2008:

10:00 PM Changeset in webkit [32757] by ggaren@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Release build fix: Always compile in "isGlobalObject", since it's
listed in our .exp file.

  • kjs/ExecState.cpp: (KJS::ExecState::isGlobalObject):
  • kjs/ExecState.h:
9:46 PM Changeset in webkit [32756] by oliver@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

Minor code restructuring to prepare for getters and setters,
also helps exception semantics a bit.

Reviewed by Maciej

7:01 PM Changeset in webkit [32755] by jchaffraix@webkit.org
  • 2 edits in trunk/WebKit/qt

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

Qt 4.3 build fix.

Fixes a brace error that made Qt 4.4 build but not Qt 4.3.

  • Api/qwebview.cpp: (QWebView::event):
6:31 PM Changeset in webkit [32754] by ggaren@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Fixed tyop.

  • kjs/ExecState.h:
6:29 PM Changeset in webkit [32753] by ggaren@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Debug build fix: export a missing symbol.

5:28 PM Changeset in webkit [32752] by andersca@apple.com
  • 16 edits
    2 adds in trunk

WebCore:

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

Reviewed by Adam.

Add new Cocoa event model type declarations.


  • bridge/npapi.h:

WebKit:

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

Reviewed by Adam.

Add Cocoa event handler.


  • WebKit.xcodeproj/project.pbxproj:

WebKit/mac:

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

Reviewed by Adam.

Add new Cocoa event model and the NPN_ScheduleTimer/NPN_UnscheduleTimer methods.


  • Plugins/WebBaseNetscapePluginView.h:
  • Plugins/WebBaseNetscapePluginView.mm: (PluginTimer::PluginTimer): (PluginTimer::start): (PluginTimer::fired): (-[WebBaseNetscapePluginView saveAndSetNewPortStateForUpdate:]): (-[WebBaseNetscapePluginView stopTimers]): (-[WebBaseNetscapePluginView restartTimers]): (-[WebBaseNetscapePluginView scrollWheel:]): (-[WebBaseNetscapePluginView flagsChanged:]): (-[WebBaseNetscapePluginView start]): (-[WebBaseNetscapePluginView eventModel]): (-[WebBaseNetscapePluginView fini]): (-[WebBaseNetscapePluginView getVariable:value:]): (-[WebBaseNetscapePluginView setVariable:value:]): (-[WebBaseNetscapePluginView scheduleTimerWithInterval:repeat:timerFunc:]): (-[WebBaseNetscapePluginView unscheduleTimer:]):
  • Plugins/WebBaseNetscapePluginViewInternal.h:
  • Plugins/WebBaseNetscapePluginViewPrivate.h:
  • Plugins/WebNetscapePluginEventHandler.h:
  • Plugins/WebNetscapePluginEventHandler.mm: (WebNetscapePluginEventHandler::create):
  • Plugins/WebNetscapePluginEventHandlerCarbon.h:
  • Plugins/WebNetscapePluginEventHandlerCarbon.mm: (WebNetscapePluginEventHandlerCarbon::scrollWheel): (WebNetscapePluginEventHandlerCarbon::flagsChanged): (WebNetscapePluginEventHandlerCarbon::platformWindow):
  • Plugins/WebNetscapePluginEventHandlerCocoa.h: Added. (WebNetscapePluginEventHandlerCocoa::startTimers): (WebNetscapePluginEventHandlerCocoa::stopTimers):
  • Plugins/WebNetscapePluginEventHandlerCocoa.mm: Added. (WebNetscapePluginEventHandlerCocoa::WebNetscapePluginEventHandlerCocoa): (WebNetscapePluginEventHandlerCocoa::drawRect): (WebNetscapePluginEventHandlerCocoa::mouseDown): (WebNetscapePluginEventHandlerCocoa::mouseDragged): (WebNetscapePluginEventHandlerCocoa::mouseEntered): (WebNetscapePluginEventHandlerCocoa::mouseExited): (WebNetscapePluginEventHandlerCocoa::mouseMoved): (WebNetscapePluginEventHandlerCocoa::mouseUp): (WebNetscapePluginEventHandlerCocoa::scrollWheel): (WebNetscapePluginEventHandlerCocoa::sendMouseEvent): (WebNetscapePluginEventHandlerCocoa::keyDown): (WebNetscapePluginEventHandlerCocoa::keyUp): (WebNetscapePluginEventHandlerCocoa::flagsChanged): (WebNetscapePluginEventHandlerCocoa::sendKeyEvent): (WebNetscapePluginEventHandlerCocoa::windowFocusChanged): (WebNetscapePluginEventHandlerCocoa::focusChanged): (WebNetscapePluginEventHandlerCocoa::platformWindow): (WebNetscapePluginEventHandlerCocoa::sendEvent):
  • Plugins/WebNetscapePluginPackage.m: (-[WebNetscapePluginPackage load]):
  • Plugins/npapi.m: (NPN_ScheduleTimer): (NPN_UnscheduleTimer):
  • Plugins/npfunctions.h:
5:08 PM Changeset in webkit [32751] by Beth Dakin
  • 2 edits in trunk/WebCore

2008-04-30 Beth Dakin <Beth Dakin>

Reviewed by Sam Weinig.

This patch does three things:

  1. Adds support for the "img" ARIA role
  2. Switches over to a HashMap for converting ARIA role attributes to WebCore's AccessibilityRole type.
  3. Fixes a crash in the new ARIA code that I ran into while browsing with VoiceOver enabled.
  • page/AccessibilityObject.cpp: (WebCore::AccessibilityObject::headingLevel): This is the crash fix. Make sure the node's renderer is not null before looking up its corresponding AccessibilityObject in the cache. (WebCore::AccessibilityObject::accessibilityIsIgnored): Account for ARIA images. (WebCore::createARIARoleMap): Switch to HashMap, and add "img" to the Map. (WebCore::RoleEntry::): Same. (WebCore::ariaRoleToWebCoreRole): Same. (WebCore::AccessibilityObject::ariaRoleAttribute): Same.
4:16 PM Changeset in webkit [32750] by beidson@apple.com
  • 2 edits in trunk/WebKit/mac

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

Fix my WebPreferences revert check-in

  • WebView/WebView.mm: (-[WebView _preferencesChangedNotification:]):
4:11 PM Changeset in webkit [32749] by ggaren@apple.com
  • 7 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.


A little more ExecState refactoring: Now, only the global object creates
an ExecState.


Also inlined ExecState::lexicalGlobalObject().


SunSpider reports no change.

3:37 PM Changeset in webkit [32748] by ggaren@apple.com
  • 2 edits in branches/squirrelfish/WebKit/mac

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

Build fix: #ifdef'd out some code that doesn't work anymore.

3:33 PM Changeset in webkit [32747] by ggaren@apple.com
  • 5 edits in branches/squirrelfish/WebCore

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

Build fix: supply a parameter that used to be implicit to
Interpreter::evaluate.

3:33 PM Changeset in webkit [32746] by beidson@apple.com
  • 2 edits in trunk/WebKit/mac

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

Rubberstamped by John Sullivan

Revert the remainder of my original preferences changes from last week.
They caused a massive PLT regression (too many notifications being sent out
or listened to that weren't previously) and it's not in my schedule to refine
the preferences code instead of working on my feature!

  • WebView/WebView.mm: (-[WebView _updateSettingsFromPreferences:]): (-[WebView _commonInitializationWithFrameName:groupName:]):
3:25 PM Changeset in webkit [32745] by ggaren@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

WebCore build fix: forward-declare ScopeChain.

  • kjs/interpreter.h:
3:23 PM Changeset in webkit [32744] by ggaren@apple.com
  • 2 edits in branches/squirrelfish/WebCore

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

Build fix: #ifdef'd out some code that doesn't work anymore.

  • bindings/objc/WebScriptObject.mm: (+[WebScriptObject throwException:]): (-[WebScriptObject setException:]):
3:10 PM Changeset in webkit [32743] by ggaren@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptGlue

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

Build fix: supply missing parameter that used to be implicit.

  • JSRun.cpp: (JSRun::Evaluate):
3:10 PM Changeset in webkit [32742] by ggaren@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Build fix for JavaScriptGlue: export a missing symbol.

3:09 PM Changeset in webkit [32741] by ggaren@apple.com
  • 2 edits in branches/squirrelfish/WebKit/mac

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

Reviewed by Oliver Hunt.


#ifdef'd out some debugger code that doesn't work anymore.

  • WebView/WebScriptDebugDelegate.mm: (-[WebScriptCallFrame scopeChain]):
2:52 PM Changeset in webkit [32740] by andersca@apple.com
  • 5 edits in trunk/WebKit/mac

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

Fix the 64-bit build.


  • Plugins/WebNetscapePluginEventHandler.h:
  • Plugins/WebNetscapePluginEventHandler.mm:
  • Plugins/WebNetscapePluginEventHandlerCarbon.h:
  • Plugins/WebNetscapePluginEventHandlerCarbon.mm:
1:49 PM Changeset in webkit [32739] by ggaren@apple.com
  • 22 edits
    2 deletes in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.


Removed a lot of unused bits from ExecState, moving them into
OldInterpreterExecState, the fake scaffolding class.


The clutter was making it hard to see the forest from the trees.


.4% SunSpider speedup, probably because ExecState::lexicalGlobalObject()
is faster now.

1:47 PM Google Summer of Code 2008 edited by ddkilzer@apple.com
(diff)
1:36 PM Changeset in webkit [32738] by rwlbuis@webkit.org
  • 5 edits
    10 adds in trunk

Reviewed by Nikolas.

https://bugs.webkit.org/show_bug.cgi?id=16447
onload called too many times for <svg:image>
https://bugs.webkit.org/show_bug.cgi?id=12282
SVG wastes time in malloc to send loadEvents to non-existent listeners

Postpone load event dispatching for image when externalResourcesRequired is true, delaying parents but not siblings, and make sure the load event is sent once for image in all cases.

1:21 PM Changeset in webkit [32737] by hyatt@apple.com
  • 5 edits
    4 adds in trunk

WebCore:

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

Fix crashes when dynamically removing <video> elements with layers that establish stacking contexts. This
won't typically crash release builds because of arena recycling.

Reviewed by Dan Bernstein


  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::~RenderLayer): Make sure to remove the reflection's child layer from its parent.
  • rendering/RenderMedia.cpp: (WebCore::RenderMedia::~RenderMedia): (WebCore::RenderMedia::destroy): (WebCore::RenderMedia::removeChild):
  • rendering/RenderMedia.h: Adjust the teardown of RenderMedia so that it does all of its teardown inside destroy() (this makes it more like other renderers and doesn't leave you staring at a trashed layer hierarchy in the RenderMedia destructor).

LayoutTests:

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

Add test for video crasher.

Reviewed by Dan Bernstein

  • media/video-layer-crash.html: Added.
  • platform/mac/media/video-layer-crash-expected.checksum: Added.
  • platform/mac/media/video-layer-crash-expected.png: Added.
  • platform/mac/media/video-layer-crash-expected.txt: Added.
11:00 AM Changeset in webkit [32736] by rwlbuis@webkit.org
  • 2 edits in trunk

Fix the ChangeLogs so it includes the details about r32719.

10:57 AM Changeset in webkit [32735] by mitz@apple.com
  • 1 edit in trunk/WebCore/ChangeLog

Adding Radar link

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

2008-04-30 Rémi Zara <remi_zara@mac.com>

Reviewed by Dave Hyatt.

fix https://bugs.webkit.org/show_bug.cgi?id=18618
REGRESSION (r31823-r31847): Patterns are upside down

  • svg/graphics/cg/SVGPaintServerPatternCg.cpp: (WebCore::patternCallback): flip the y axis when drawing the tile
10:32 AM Changeset in webkit [32733] by timothy@apple.com
  • 2 edits in trunk/WebCore

Fixes an undefined type exception that fires when adding a resource to the inspector
that has a MIME type warning.

Reviewed by Adam Roben.

  • page/inspector/Resource.js:

(WebInspector.Resource.prototype._addTip): Call WebInspector.console instead of
WebInspector.consolePanel.
(WebInspector.Resource.prototype._checkWarning): Ditto.

10:32 AM Changeset in webkit [32732] by timothy@apple.com
  • 2 edits in trunk/WebCore

Fixes the bug where the selected resource would be deselected after
changing the sort order in the Resources panel.

Reviewed by Dan Bernstein.

  • page/inspector/ResourcesPanel.js:

(WebInspector.ResourcesPanel.prototype._sortResourcesIfNeeded):
Rememebr if the tree element that we are sorting was selected, so
the selection can be restored after it is re-inserted. The onSelect
is suppressed since we don't need to show the resource again.

10:31 AM Changeset in webkit [32731] by timothy@apple.com
  • 2 edits in trunk/WebCore

Fixes the regression where error bubbles in source views always show
"undefined" for the content because the message property on
ConsoleMessage was removed. Adds support for a plain text formated
message that is stored in the message proeprty.

Reviewed by Adam Roben.

  • page/inspector/Console.js:

(WebInspector.Console.prototype._format): Add a plainText argument that is passed to
the formatters.
(WebInspector.Console.prototype._formatvalue): Add a plainText argument, and a comment
about needing to honor it if the textContent of the output doesn't make sense.
(WebInspector.Console.prototype._formatvalue): Ditto.
(WebInspector.Console.prototype._formatstring): Ditto.
(WebInspector.Console.prototype._formatregexp): Ditto.
(WebInspector.Console.prototype._formatarray): Ditto.
(WebInspector.Console.prototype._formatnode): Ditto.
(WebInspector.Console.prototype._formatobject): Ditto.
(WebInspector.Console.prototype._formaterror): Ditto.
(WebInspector.ConsoleMessage): Call _format passing true for plainText. Get the
textContnet of the result and assign to the message proeprty. This property is
referenced from the SourceView.
(WebInspector.ConsoleMessage.prototype._format): Add a plainText argument. Build the
result element as a local and return it, instead of using formatedMessage directly.

10:31 AM Changeset in webkit [32730] by timothy@apple.com
  • 2 edits in trunk/WebCore

Adds a helper function to convert a JSValueRef to a String.

Reviewed by Adam Roben.

  • page/InspectorController.cpp:

(WebCore::toString): Converts a JSValueRef to a String.
(WebCore::search): Use toString.
(WebCore::InspectorController::handleException): Ditto.

9:08 AM Changeset in webkit [32729] by Simon Hausmann
  • 146 edits in trunk/LayoutTests

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

Rubber-stamped by Simon

Updated the expected test results to reflect the fact that most render objects now are anonymous.

6:41 AM Changeset in webkit [32728] by Simon Hausmann
  • 2 edits in trunk/WebCore

2008-04-30 Ariya Hidayat <ariya.hidayat@trolltech.com>

Reviewed by Simon.

Build the Qt port with SVG Foreign Object support.

5:49 AM Changeset in webkit [32727] by Simon Hausmann
  • 2 edits in trunk/WebCore

2008-04-30 Simon Hausmann <Simon Hausmann>

Reviewed by Holger.

Fix null pointer deference triggered by
LayoutTests/fast/loader/cancel-load-during-port-block-timer.html

3:25 AM Changeset in webkit [32726] by Simon Hausmann
  • 128 edits in trunk/LayoutTests

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

Rubber-stamped by Simon.

Updated the expected test results to the current font metrics.

3:22 AM Changeset in webkit [32725] by Simon Hausmann
  • 2 edits in trunk/LayoutTests

2008-04-30 Simon Hausmann <Simon Hausmann>

Rubber-stamped by Holger.

Updated the skip list for the Qt port to exclude features currently
not implemented.

2:39 AM Changeset in webkit [32724] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

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

Reviewed by Simon.

In focusIn and focusOut event always update the active state of the
focus controller. Fixes ~400 failing layout tests due to missing
editing callbacks that relied on the correct focus.

2:07 AM Changeset in webkit [32723] by zecke@webkit.org
  • 4 edits in trunk/WebKit/gtk

2008-04-30 Sean Egan <seanegan@gmail.com>

Reviewed and modified by Holger.

https://bugs.webkit.org/show_bug.cgi?id=17626
Support setting background color and a 16-bit alpha channel.

  • webkit/webkitprivate.h:
  • webkit/webkitwebview.cpp:
  • webkit/webkitwebview.h:
1:12 AM Changeset in webkit [32722] by hyatt@apple.com
  • 13 edits in trunk/WebCore

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

Improve the performance of masks by adding code to set more precise clips on the transparency layers
used to paint the content under the mask, and then also avoid creating transparency layers for the masks
themselves in common cases.

Reviewed by Dan Bernstein

  • platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::drawTiledImage): Fix a bug in drawTiledImage where the composite mode got lost in the double stretch case for nine piece images.
  • rendering/InlineFlowBox.cpp: (WebCore::InlineFlowBox::paintFillLayers): (WebCore::InlineFlowBox::paintFillLayer): (WebCore::InlineFlowBox::paintMask): Optimize to only push a transparency layer for the mask if multiple images are combining. Add a new composite operator argument for use when painting fill layers to do direct destination-in compositing while painting images.
  • rendering/InlineFlowBox.h:
  • rendering/RenderBox.cpp: (WebCore::RenderBox::paintMask): (WebCore::RenderBox::paintMaskImages): Optimize to only push a transparency layer for the mask if multiple images are combining.

(WebCore::RenderBox::maskClipRect):
A new method that attempts to compute a precise clip rect for the mask images.

(WebCore::RenderBox::paintFillLayers):
(WebCore::RenderBox::paintFillLayer):
(WebCore::RenderBox::paintFillLayerExtended):

  • rendering/RenderBox.h: Added the composite operator argument to the paintFillLayer methods.
  • rendering/RenderFieldset.cpp: (WebCore::RenderFieldset::paintMask): Call the new base class paintMaskImages method for optimized mask painting.
  • rendering/RenderLayer.cpp: (WebCore::transparencyClipBox): Fix a coordinate space issue with transparencyClipBox when masks were used. The border box was in the wrong coordinate space. Moved the code into the layer's boundingBox() method instead.

(WebCore::RenderLayer::paintLayer):
Removed the code that always pushed a transparency layer before painting masks.

(WebCore::RenderLayer::boundingBox):
Call maskClipRect to shrink the bounding box of the layer to fit the mask clip.

  • rendering/RenderObject.cpp: (WebCore::RenderObject::paintNinePieceImage): Added a composite operator argument for direct destination-in painting of nine piece images.
  • rendering/RenderObject.h: (WebCore::RenderObject::maskClipRect): (WebCore::RenderObject::paintFillLayerExtended): Base class stubs for RenderBox-implemented methods.
  • rendering/RenderTable.cpp: (WebCore::RenderTable::paintMask):
  • rendering/RenderTableCell.cpp: (WebCore::RenderTableCell::paintMask): Modified to call the new paintMaskImages function.
  • svg/graphics/SVGImage.cpp: (WebCore::SVGImage::draw): SVG images now respect composite modes by pushing a transparency layer when the composite mode is anything other than source-over.
12:45 AM Changeset in webkit [32721] by Simon Hausmann
  • 2 edits in trunk/WebCore

2008-04-30 Ariya Hidayat <ariya.hidayat@trolltech.com>

Rubber-stamped by Rob Buis.

Fixed crash or assertion if SVG_FOREIGN_OBJECT is not enabled

12:45 AM Changeset in webkit [32720] by Simon Hausmann
  • 2 edits in trunk/WebCore

2008-04-30 Ariya Hidayat <ariya.hidayat@trolltech.com>

Rubber-stamped by Rob Buis.

Fixed compile, due to API change in XMLSerializer

Apr 29, 2008:

11:13 PM Changeset in webkit [32719] by rwlbuis@webkit.org
  • 4 edits
    4 adds in trunk

Reviewed by Eric.

https://bugs.webkit.org/show_bug.cgi?id=11939
Quirksmode: Ignores media types in stylesheet PIs

Transfer the xml-stylesheet pseudo attribute media to the css
stylesheet created from the ProcessingInstruction.

Tests: fast/css/xml-stylesheet-media-processing.xhtml

10:10 PM Changeset in webkit [32718] by oliver@apple.com
  • 9 edits in branches/squirrelfish/JavaScriptCore

Bug 18643: SQUIRRELFISH: need to support implicit function calls (valueOf, toString, getters/setters)
<https://bugs.webkit.org/show_bug.cgi?id=18643>

Reviewed by Maciej

Prevent static slot optimisation for new variables and functions in
globally re-entrant code called from an an implicit function call.

This is necessary to prevent us from needing to resize the global
slot portion of the root RegisterFile during an implicit (and hence
unguarded) function call.

8:38 PM Changeset in webkit [32717] by adachan@apple.com
  • 5 edits in trunk/WebKit/win

Support text shadow in WebDrawText().
Remove DrawTextAtPoint() since it is only called by WebDrawText().

Reviewed by Adam.

  • WebKit.vcproj/WebKit.def:
  • WebKit.vcproj/WebKit_debug.def:
  • WebKitGraphics.cpp: (WebDrawText):
  • WebKitGraphics.h:


8:27 PM Changeset in webkit [32716] by ddkilzer@apple.com
  • 2 edits in trunk/WebCore

BUILD FIX for export of WTF::RefCounted<WebCore::FormData>::deref()

On the buildbot, this is a fatal error:

ld: symbols names listed in -exported_symbols_list: WebKitBuild/Release/DerivedSources/WebCore/WebCore.exp not in linked objects
ZN3WTF10RefCountedIN7WebCore8FormDataEE5derefEv
/usr/bin/libtool: internal link edit command failed

Newer dev tools only produce a warning:

ld warning: cannot export hidden symbol ZN3WTF10RefCountedIN7WebCore8FormDataEE5derefEv from WebKitBuild/WebCore.build/Release/WebCore.build/Objects-normal/i386/DocumentLoader.o

  • WebCore.base.exp: Remove hidden symbol from export list.
8:21 PM Changeset in webkit [32715] by ddkilzer@apple.com
  • 2 edits in trunk/WebKit/mac

2008-04-29 David D. Kilzer <ddkilzer@apple.com>

BUILD FIX for Release build.

  • Plugins/WebNetscapePluginEventHandlerCarbon.mm: (WebNetscapePluginEventHandlerCarbon::drawRect): Declare acceptedEvent separately so the compiler doesn't complain about an unused variable. (WebNetscapePluginEventHandlerCarbon::TSMEventHandler): Ditto.
7:16 PM Changeset in webkit [32714] by andersca@apple.com
  • 7 edits
    4 adds in trunk/WebKit

WebKit:

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

Reviewed by Adam.

Add new event handlers.


  • WebKit.xcodeproj/project.pbxproj:

WebKit/mac:

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

Reviewed by Adam.

Refactor the Carbon event handling code out into a separate class in preparation for adding
the Cocoa event handling code.


  • Plugins/WebBaseNetscapePluginView.h:
  • Plugins/WebBaseNetscapePluginView.mm: (-[WebBaseNetscapePluginView sendEvent:isDrawRect:]): (-[WebBaseNetscapePluginView sendActivateEvent:]): (-[WebBaseNetscapePluginView sendDrawRectEvent:]): (-[WebBaseNetscapePluginView stopTimers]): (-[WebBaseNetscapePluginView restartTimers]): (-[WebBaseNetscapePluginView setHasFocus:]): (-[WebBaseNetscapePluginView mouseDown:]): (-[WebBaseNetscapePluginView mouseUp:]): (-[WebBaseNetscapePluginView mouseEntered:]): (-[WebBaseNetscapePluginView mouseExited:]): (-[WebBaseNetscapePluginView mouseDragged:]): (-[WebBaseNetscapePluginView keyUp:]): (-[WebBaseNetscapePluginView keyDown:]): (-[WebBaseNetscapePluginView cut:]): (-[WebBaseNetscapePluginView copy:]): (-[WebBaseNetscapePluginView paste:]): (-[WebBaseNetscapePluginView selectAll:]): (-[WebBaseNetscapePluginView start]): (-[WebBaseNetscapePluginView stop]): (-[WebBaseNetscapePluginView fini]): (-[WebBaseNetscapePluginView drawRect:]): (-[WebBaseNetscapePluginView viewWillMoveToWindow:]): (-[WebBaseNetscapePluginView viewDidMoveToWindow]): (-[WebBaseNetscapePluginView windowBecameKey:]): (-[WebBaseNetscapePluginView windowResignedKey:]): (-[WebBaseNetscapePluginView windowDidMiniaturize:]): (-[WebBaseNetscapePluginView windowDidDeminiaturize:]): (-[WebBaseNetscapePluginView loginWindowDidSwitchFromUser:]): (-[WebBaseNetscapePluginView loginWindowDidSwitchToUser:]): (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:sendNotification:]): (-[WebBaseNetscapePluginView _viewHasMoved]):
  • Plugins/WebBaseNetscapePluginViewInternal.h:
  • Plugins/WebNetscapePluginEmbeddedView.h:
  • Plugins/WebNetscapePluginEventHandler.h: Added. (WebNetscapePluginEventHandler::~WebNetscapePluginEventHandler): (WebNetscapePluginEventHandler::currentEventIsUserGesture): (WebNetscapePluginEventHandler::WebNetscapePluginEventHandler):
  • Plugins/WebNetscapePluginEventHandler.mm: Added. (WebNetscapePluginEventHandler::create):
  • Plugins/WebNetscapePluginEventHandlerCarbon.h: Added.
  • Plugins/WebNetscapePluginEventHandlerCarbon.mm: Added. (WebNetscapePluginEventHandlerCarbon::WebNetscapePluginEventHandlerCarbon): (getCarbonEvent): (modifiersForEvent): (WebNetscapePluginEventHandlerCarbon::sendNullEvent): (WebNetscapePluginEventHandlerCarbon::drawRect): (WebNetscapePluginEventHandlerCarbon::mouseDown): (WebNetscapePluginEventHandlerCarbon::mouseUp): (WebNetscapePluginEventHandlerCarbon::mouseEntered): (WebNetscapePluginEventHandlerCarbon::mouseExited): (WebNetscapePluginEventHandlerCarbon::mouseDragged): (WebNetscapePluginEventHandlerCarbon::mouseMoved): (WebNetscapePluginEventHandlerCarbon::keyDown): (keyMessageForEvent): (WebNetscapePluginEventHandlerCarbon::keyUp): (WebNetscapePluginEventHandlerCarbon::focusChanged): (WebNetscapePluginEventHandlerCarbon::windowFocusChanged): (WebNetscapePluginEventHandlerCarbon::TSMEventHandler): (WebNetscapePluginEventHandlerCarbon::installKeyEventHandler): (WebNetscapePluginEventHandlerCarbon::removeKeyEventHandler): (WebNetscapePluginEventHandlerCarbon::nullEventTimerFired): (WebNetscapePluginEventHandlerCarbon::startTimers): (WebNetscapePluginEventHandlerCarbon::stopTimers): (WebNetscapePluginEventHandlerCarbon::sendEvent):
5:53 PM Changeset in webkit [32713] by ddkilzer@apple.com
  • 2 edits in trunk/WebCore

Another BUILD FIX for ENABLE(DASHBOARD_SUPPORT)

  • dom/make_names.pl: Added #if ENABLE(DASHBOARD_SUPPORT) to Dashboard code.
5:31 PM Changeset in webkit [32712] by ddkilzer@apple.com
  • 8 edits in trunk

Top:

BUILD FIX for ENABLE(DASHBOARD_SUPPORT)

  • configure.ac: Added conditional for ENABLE_DASHBOARD_SUPPORT.

JavaScriptCore:

BUILD FIX for ENABLE(DASHBOARD_SUPPORT)

  • wtf/Platform.h: Defined ENABLE(DASHBOARD_SUPPORT) to 1 only for PLATFORM(MAC) and PLATFORM(WIN). Changed default to 0 for other ports.

WebCore:

BUILD FIX for ENABLE(DASHBOARD_SUPPORT)

  • DerivedSources.make: Removed duplication of targets for generating CSSPropertyNames.h and CSSValueKeywords.h.
  • GNUmakefile.am: Ditto. Added support for ENABLE_DASHBOARD_SUPPORT.
  • WebCore.pro: Added support for ENABLE_DASHBOARD_SUPPORT. Made both SVG and non-SVG variables of GENERATOR 6-A use new DASHBOARDSUPPORTCSSPROPERTIES variable.
5:13 PM Changeset in webkit [32711] by adachan@apple.com
  • 2 edits in trunk/WebCore

Added missing return.

  • platform/win/COMPtr.h: (WTF::):
5:07 PM Changeset in webkit [32710] by alp@webkit.org
  • 2 edits in trunk/WebCore

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

GTK+ build fix attempt following breakage in r32700 which
conditionalised dashboard support.

  • GNUmakefile.am:
4:15 PM Changeset in webkit [32709] by mrowe@apple.com
  • 4 edits in tags/Safari-6526.2.1

Versioning.

4:14 PM Changeset in webkit [32708] by mrowe@apple.com
  • 4 edits in tags/Safari-6526.2.1/WebKit/mac

Merge r32706.

4:10 PM Changeset in webkit [32707] by mrowe@apple.com
  • 1 copy in tags/Safari-6526.2.1

New tag.

4:08 PM Changeset in webkit [32706] by mrowe@apple.com
  • 4 edits in trunk/WebKit/mac

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

Reviewed by David Harrison.

Ensure that WebDynamicScrollBarsView defines WebCoreScrollbarAlwaysOn to keep Mail building.

  • WebKit.exp:
  • WebView/WebDynamicScrollBarsView.h:
  • WebView/WebDynamicScrollBarsView.m:
4:00 PM Changeset in webkit [32705] by mitz@apple.com
  • 2 edits in trunk/LayoutTests

2008-04-29 Anatoli Papirovski <apapirovski@mac.com>

Reviewed by Dan Bernstein.

Modified the SVG test case for RGB and RGBA parsing - mixing percentage and
numerical values is illegal.

  • svg/custom/rgbcolor-syntax.svg:
3:23 PM Changeset in webkit [32704] by Adam Roben
  • 31 edits in trunk

Restore the beloved COMPtr::operator&

WebCore:

Restore the beloved COMPtr::operator&

  • platform/win/COMPtr.h: Removed the HashTableDeletedValueType constructor and isHashTableDeletedValue and hashTableDeletedValue functions. (WTF::): Changed constructDeletedValue to play nicely with COMPtr::operator&.

WebKit/win:

Restore the beloved COMPtr::operator&

WebKitTools:

Restore the beloved COMPtr::operator&

3:03 PM SquirrelFishPerfIdeas edited by ggaren@apple.com
(diff)
2:53 PM Changeset in webkit [32703] by Adam Roben
  • 1 edit in trunk/WebCore/ChangeLog

Fixed ChangeLog order

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

Fix assertion on launch on Windows

  • platform/graphics/win/FontPlatformData.h: Pass WTF::HashTableDeletedValue to the m_font constructor instead of a bogus -1 value. This is needed because m_font is a RefPtr.
2:48 PM Changeset in webkit [32701] by Adam Roben
  • 11 edits in trunk/WebKitTools

Windows build fixes

Replace COMPtr::operator& with COMPtr::adoptionPointer.

2:31 PM Changeset in webkit [32700] by ddkilzer@apple.com
  • 46 edits
    2 adds in trunk

JavaScriptCore:

2008-04-29 Greg Bolsinga <bolsinga@apple.com>

Reviewed by Darin.

Wrapped Dashboard code with ENABLE(DASHBOARD_SUPPORT)

  • wtf/Platform.h:

WebCore:

2008-04-29 Greg Bolsinga <bolsinga@apple.com>

Reviewed by Darin.

Wrapped Dashboard code with ENABLE(DASHBOARD_SUPPORT)

  • DerivedSources.make:
  • WebCore.DashboardSupport.exp: Added.
  • WebCore.base.exp:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::setLocation):
  • css/CSSComputedStyleDeclaration.cpp: (WebCore::): (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
  • css/CSSParser.cpp: (WebCore::CSSParser::parseValue):
  • css/CSSPrimitiveValue.cpp: (WebCore::CSSPrimitiveValue::cleanup): (WebCore::CSSPrimitiveValue::cssText):
  • css/CSSPropertyNames.in:
  • css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty):
  • css/DashboardRegion.h:
  • css/DashboardSupportCSSPropertyNames.in: Added.
  • dom/DOMImplementation.cpp: (WebCore::DOMImplementation::createDocument):
  • dom/Document.cpp: (WebCore::Document::Document): (WebCore::Document::importNode):
  • dom/Document.h:
  • html/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::fill): (WebCore::CanvasRenderingContext2D::stroke): (WebCore::CanvasRenderingContext2D::clip):
  • html/CanvasRenderingContext2D.h:
  • html/HTMLCanvasElement.cpp:
  • html/HTMLCanvasElement.h:
  • page/Chrome.cpp:
  • page/ChromeClient.h:
  • page/Frame.cpp: (WebCore::Frame::paint):
  • page/Frame.h:
  • page/FrameView.cpp: (WebCore::FrameView::layout):
  • page/FrameView.h:
  • page/Settings.cpp: (WebCore::Settings::Settings):
  • page/Settings.h:
  • page/mac/EventHandlerMac.mm: (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
  • page/mac/FrameMac.mm:
  • page/mac/WebDashboardRegion.h:
  • page/mac/WebDashboardRegion.m:
  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::scrollToOffset): (WebCore::RenderLayer::setHasHorizontalScrollbar): (WebCore::RenderLayer::setHasVerticalScrollbar): (WebCore::RenderLayer::updateScrollInfoAfterLayout):
  • rendering/RenderObject.cpp: (WebCore::RenderObject::setStyle):
  • rendering/RenderObject.h:
  • rendering/RenderStyle.cpp: (WebCore::StyleRareNonInheritedData::operator==): (WebCore::RenderStyle::diff):
  • rendering/RenderStyle.h:
  • xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::send): (WebCore::XMLHttpRequest::setRequestHeader):

WebKit/mac:

2008-04-29 Greg Bolsinga <bolsinga@apple.com>

Reviewed by Darin.

Wrapped Dashboard code with ENABLE(DASHBOARD_SUPPORT)

  • WebCoreSupport/WebChromeClient.h:
  • WebCoreSupport/WebChromeClient.mm:
  • WebView/WebClipView.m: (-[WebClipView scrollWheel:]):
  • WebView/WebHTMLView.mm: (-[WebHTMLView addMouseMovedObserver]): (-[WebHTMLView removeMouseMovedObserver]): (-[WebHTMLView acceptsFirstMouse:]):
  • WebView/WebUIDelegatePrivate.h:
  • WebView/WebView.mm: (-[WebViewPrivate init]):
  • WebView/WebViewPrivate.h:
2:07 PM Changeset in webkit [32699] by Adam Roben
  • 20 edits in trunk

Windows build fix

WebCore:

Windows build fix

This removes COMPtr::operator&, which didn't jive with HashTable. It
is replaced by COMPtr::adoptionPointer.

Discussed with Darin Adler and Anders Carlsson.

  • platform/win/COMPtr.h: Replaced operator& with adoptionPointer.

WebKit/win:

Windows build fix

Replaced uses of COMPtr::operator& with COMPtr::adoptionPointer.

2:02 PM Changeset in webkit [32698] by Adam Roben
  • 2 edits in trunk/WebKit/win

Fix a Windows build error

  • WebScriptCallFrame.cpp: (WebScriptCallFrame::variableNames): Don't use ::adopt now that PropertyNameArray has no swap function.
1:49 PM Changeset in webkit [32697] by hyatt@apple.com
  • 1 add in trunk/WebKitSite/blog-files/kate-reflected.png

Add reflection example photo.

1:39 PM Changeset in webkit [32696] by ggaren@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.


In nested program code, don't propogate "this" back to the parent
register file. ("this" should remain constant in the parent register
file, regardless of the scripts it invokes.)

  • VM/RegisterFile.cpp: (KJS::RegisterFile::copyGlobals):
1:34 PM Changeset in webkit [32695] by hyatt@apple.com
  • 26 edits
    23 adds in trunk

WebCore:

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

Implement the new box-reflect property in CSS. This property enables real-time reflections on
objects (yes you can reflect <video>!).

Reviewed by Dan Bernstein

Test cases added in fast/reflections/

  • GNUmakefile.am:
  • WebCore.pro:
  • WebCore.xcodeproj/project.pbxproj:
  • WebCoreSources.bkl:
  • css/CSSComputedStyleDeclaration.cpp: (WebCore::): (WebCore::valueForReflection): (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
  • css/CSSParser.cpp: (WebCore::CSSParser::parseValue): (WebCore::CSSParser::parseReflect): (WebCore::BorderImageParseContext::commitBorderImage): (WebCore::CSSParser::parseBorderImage): (WebCore::parseGradientColorStop): (WebCore::CSSParser::parseTransform):
  • css/CSSParser.h:
  • css/CSSPropertyNames.in:
  • css/CSSReflectValue.cpp: Added. (WebCore::CSSReflectValue::cssText):
  • css/CSSReflectValue.h: Added. (WebCore::): (WebCore::CSSReflectValue::CSSReflectValue): (WebCore::CSSReflectValue::direction): (WebCore::CSSReflectValue::offset): (WebCore::CSSReflectValue::mask): (WebCore::CSSReflectValue::setDirection): (WebCore::CSSReflectValue::setOffset): (WebCore::CSSReflectValue::setMask):
  • css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::adjustRenderStyle): (WebCore::CSSStyleSelector::applyProperty): (WebCore::CSSStyleSelector::mapNinePieceImage):
  • css/CSSStyleSelector.h:
  • rendering/InlineFlowBox.cpp: (WebCore::InlineFlowBox::placeBoxesVertically): (WebCore::InlineFlowBox::paintMask):
  • rendering/Length.h: (WebCore::Length::calcFloatValue):
  • rendering/RenderBlock.cpp: (WebCore::RenderBlock::overflowHeight): (WebCore::RenderBlock::overflowWidth): (WebCore::RenderBlock::overflowLeft): (WebCore::RenderBlock::overflowTop): (WebCore::RenderBlock::overflowRect): (WebCore::RenderBlock::layoutBlock):
  • rendering/RenderBox.cpp: (WebCore::RenderBox::setStyle): (WebCore::RenderBox::paintMask): (WebCore::RenderBox::imageChanged): (WebCore::RenderBox::computeAbsoluteRepaintRect):
  • rendering/RenderFlexibleBox.cpp: (WebCore::RenderFlexibleBox::layoutBlock):
  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::RenderLayer): (WebCore::RenderLayer::~RenderLayer): (WebCore::RenderLayer::updateLayerPositions): (WebCore::RenderLayer::enclosingPositionedAncestor): (WebCore::RenderLayer::enclosingTransformedAncestor): (WebCore::RenderLayer::isTransparent): (WebCore::transparencyClipBox): (WebCore::RenderLayer::operator delete): (WebCore::RenderLayer::destroy): (WebCore::RenderLayer::removeOnlyThisLayer): (WebCore::RenderLayer::insertOnlyThisLayer): (WebCore::RenderLayer::paintLayer): (WebCore::RenderLayer::updateZOrderLists): (WebCore::RenderLayer::updateOverflowList): (WebCore::RenderLayer::collectLayers): (WebCore::RenderLayer::shouldBeOverflowOnly): (WebCore::RenderLayer::styleChanged): (WebCore::RenderLayer::reflectionLayer): (WebCore::RenderLayer::createReflection): (WebCore::RenderLayer::updateReflectionStyle):
  • rendering/RenderLayer.h: (WebCore::RenderLayer::hasReflection): (WebCore::RenderLayer::reflection): (WebCore::RenderLayer::paintingInsideReflection):
  • rendering/RenderObject.cpp: (WebCore::RenderObject::RenderObject): (WebCore::RenderObject::requiresLayer): (WebCore::RenderObject::setStyle): (WebCore::RenderObject::updateImage): (WebCore::RenderObject::reflectionBox): (WebCore::RenderObject::reflectionOffset):
  • rendering/RenderObject.h: (WebCore::RenderObject::hasTransform): (WebCore::RenderObject::setHasReflection): (WebCore::RenderObject::hasReflection):
  • rendering/RenderReplica.cpp: Added. (WebCore::RenderReplica::RenderReplica): (WebCore::RenderReplica::~RenderReplica): (WebCore::RenderReplica::layout): (WebCore::RenderReplica::calcPrefWidths): (WebCore::RenderReplica::paint):
  • rendering/RenderReplica.h: Added. (WebCore::RenderReplica::renderName): (WebCore::RenderReplica::requiresLayer):
  • rendering/RenderStyle.cpp: (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData): (WebCore::StyleRareNonInheritedData::operator==): (WebCore::StyleRareNonInheritedData::reflectionDataEquivalent): (WebCore::RenderStyle::diff): (WebCore::RenderStyle::applyTransform):
  • rendering/RenderStyle.h: (WebCore::TranslateTransformOperation::apply): (WebCore::StyleReflection::StyleReflection): (WebCore::StyleReflection::operator==): (WebCore::StyleReflection::operator!=): (WebCore::StyleReflection::direction): (WebCore::StyleReflection::offset): (WebCore::StyleReflection::mask): (WebCore::StyleReflection::setDirection): (WebCore::StyleReflection::setOffset): (WebCore::StyleReflection::setMask): (WebCore::RenderStyle::boxReflect): (WebCore::RenderStyle::setBoxReflect): (WebCore::RenderStyle::initialBoxReflect):
  • rendering/RenderTable.cpp: (WebCore::RenderTable::layout): (WebCore::RenderTable::paintMask):
  • rendering/RenderTableCell.cpp: (WebCore::RenderTableCell::requiresLayer): (WebCore::RenderTableCell::paintMask):

LayoutTests:

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

Implement support for the new box-reflect property. Tests of the new property.

Reviewed by Dan Bernstein

  • fast/reflections: Added.
  • fast/reflections/reflection-computed-style-expected.txt: Added.
  • fast/reflections/reflection-computed-style.html: Added.
  • fast/reflections/reflection-direction.html: Added.
  • fast/reflections/reflection-masks.html: Added.
  • fast/reflections/reflection-nesting.html: Added.
  • fast/reflections/resources: Added.
  • fast/reflections/resources/kate.png: Added.
  • fast/reflections/resources/vignette-mask.png: Added.
1:27 PM Changeset in webkit [32694] by Beth Dakin
  • 5 edits in trunk/WebCore

2008-04-29 Beth Dakin <Beth Dakin>

Reviewed by Alice.

Initial implementation of the following ARIA roles: button,
checkbox, heading, link, radio, textbox.

  • html/HTMLAttributeNames.in: Add 'role' to list of attributes.
  • page/AccessibilityObject.cpp: When an ARIA role is set, the role overrides whatever the actual
11:09 AM Changeset in webkit [32693] by kmccullough@apple.com
  • 3 edits in trunk/JavaScriptCore

2008-04-29 Kevin McCullough <kmccullough@apple.com>

Reviewed by Geoff.

-<rdar://problem/5770054> JavaScript profiler (10928)
-Keep call count.

  • profiler/FunctionCallProfile.cpp: (KJS::FunctionCallProfile::FunctionCallProfile): (KJS::FunctionCallProfile::didExecute): Implements call count and fixed a bug where a stackIndex of 0 was causing the assert to be hit. (KJS::FunctionCallProfile::stopProfiling): (KJS::FunctionCallProfile::endAndRecordCall):
  • profiler/FunctionCallProfile.h:
10:36 AM Changeset in webkit [32692] by timothy@apple.com
  • 3 edits in trunk/WebCore

Make the exceptions that the InspectorController catches log the
original file and line number, if present on the exception object.

Reviewed by Adam Roben.

  • page/InspectorController.cpp:

(WebCore::InspectorController::callFunction): Pass the context to HANDLE_EXCEPTION.
(WebCore::InspectorController::~InspectorController): Ditto.
(WebCore::InspectorController::scriptObjectReady): Ditto.
(WebCore::InspectorController::addScriptResource): Ditto.
(WebCore::InspectorController::updateScriptResourceRequest): Ditto.
(WebCore::InspectorController::updateScriptResourceResponse): Ditto.
(WebCore::InspectorController::updateScriptResource): Ditto.
(WebCore::InspectorController::addDatabaseScriptResource): Ditto.
(WebCore::InspectorController::addScriptConsoleMessage): Ditto.
(WebCore::InspectorController::handleException): Take a context. Pull the line
and sourceURL properties off the exception if it is an object.

  • page/InspectorController.h: Change handleException to take a context.
10:12 AM Changeset in webkit [32691] by timothy@apple.com
  • 1 edit in trunk/WebCore/WebCore.xcodeproj/project.pbxproj

Remove .idl and .in files from WebCore's framework Resources.

10:05 AM Changeset in webkit [32690] by timothy@apple.com
  • 3 edits in trunk/WebCore

Fixes a regression where the Page's debugger would not be reattached
when a new JSDOMWindow is created.

Reviewed by Sam Weinig.

  • bindings/js/kjs_proxy.cpp:

(WebCore::KJSProxy::clear): Call attachDebugger after creating the JSDOMWindow.

  • history/CachedPage.cpp:

(WebCore::CachedPage::restore): For the case where the CachedPage doesn't
contain a window, reattach the debugger to the new JSDOMWindow by calling
proxy->attachDebugger. Also restore the setPageGroupIdentifier.

9:50 AM Changeset in webkit [32689] by mitz@apple.com
  • 6 edits in trunk

WebCore:

2008-04-29 Anatoli Papirovski <apapirovski@mac.com>

Reviewed by Darin Adler.

Fix for https://bugs.webkit.org/show_bug.cgi?id=18355
Fixed RGB and RGBA parsing to ignore the declaration when the value is not
"either three integer values or three percentage values."

  • css/CSSParser.cpp: (WebCore::CSSParser::parseColorParameters):

LayoutTests:

2008-04-29 Anatoli Papirovski <apapirovski@mac.com>

Reviewed by Darin Adler.

Fix for https://bugs.webkit.org/show_bug.cgi?id=18355
Updated the results of the layout test for "RGB color syntax error handling".

  • platform/mac/css2.1/t040306-syntax-01-f-expected.checksum:
  • platform/mac/css2.1/t040306-syntax-01-f-expected.png:
  • platform/mac/css2.1/t040306-syntax-01-f-expected.txt:
7:41 AM Changeset in webkit [32688] by Simon Hausmann
  • 2 edits in trunk/WebCore

Holger Hans Peter Freyther <zecke@selfish.org>

Fix crash when setHtml gets called from slots connected to QWebPage::unsupportedContent

Ben found this crash in the demo browser.

In void MainResourceLoader::continueAfterContentPolicy(PolicyAction contentPolicy,

case PolicyDownload:

frameLoader()->client()->download(m_handle.get(), request(), m_handle.get()->request(), r);
receivedError(interruptionForPolicyChangeError());

We are in a policy check, the download() call will call setHtml, which will start loading
the data into a frame. The loading will cancel all policy checks and call ResourceLoader::releaseResources
which will set m_frame to 0. Then we return and invoke interruptionForPolicyChangeError() which
will use the m_frame->loader() but it is gone. Do not call into receivedError and
interruptionForPolicyChangeError if we are gone anyway...

7:34 AM Changeset in webkit [32687] by Simon Hausmann
  • 2 edits in trunk/JavaScriptCore

Qt/Windows build fix. The externally declared hash tables are actually
declared const and the const is mangled in the symbol name, so when
importing they also need to be marked const.

When compiling without MULTIPLE_THREADS use a const HashTable&
instead of a HashTable& in ThreadClassInfoHashTables to avoid
initializing the latter with a const reference.

7:16 AM Changeset in webkit [32686] by Simon Hausmann
  • 209 edits in trunk/LayoutTests

Simon Hausmann <Simon Hausmann>

Updated the layout tests after the latest submits to the Qt port
to our new baseline, after numerous fixes in RenderThemeQt
and assorted.

Updated the Skipped file with new expected failures that need
fixing.

2:47 AM Changeset in webkit [32685] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Lincoln Ramsay <lincoln.ramsay@trolltech.com>

Fix compilation with QT_NO_PRINTER

1:51 AM Changeset in webkit [32684] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Ariya Hidayat <ariya.hidayat@trolltech.com>

Ensure that relative URL is converted to absolute URL.

This is necessary because loading a relative URL is not really supported
(the web page may load, but the subsequent URLs for images and links will
not be resolved properly).
This also fixes https://bugs.webkit.org/show_bug.cgi?id=18484

1:51 AM Changeset in webkit [32683] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Ariya Hidayat <ariya.hidayat@trolltech.com>

Simplification of Qt Launcher (no animation and use standard progress bar widget)

Status bar shows the hovered link without any animation. Progress bar just uses the standard QProgressBar (no custom widget). The launcher is leaner and faster to use under the debugger and/or valgrind.

1:51 AM Changeset in webkit [32682] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Ariya Hidayat <ariya.hidayat@trolltech.com>

Update the cursor when the frame/page loading is finished.

This fixes https://bugs.webkit.org/show_bug.cgi?id=18712

1:51 AM Changeset in webkit [32681] by Simon Hausmann
  • 3 edits in trunk/WebKit/qt

Simon Hausmann <shausman@trolltech.com>

Fixes: QWebPage::acceptNavigationRequest not being called / linkClicked() not being emitted when clicking on <a href="..." target="_blank"> kind of links.

Call QWebPage::acceptNavigationRequest when the creation of a new window with
URL is requested. The frame pointer is set to null in this case.

1:47 AM Changeset in webkit [32680] by Simon Hausmann
  • 2 edits in trunk/WebCore

Holger Hans Peter Freyther <zecke@selfish.org>

Rely on auto-boxing of C++ for the QCursor c'tor

1:47 AM Changeset in webkit [32679] by Simon Hausmann
  • 3 edits in trunk/WebCore

Holger Hans Peter Freyther <zecke@selfish.org>

Add the remaining cursors that defaulted to PointerCursor

1:47 AM Changeset in webkit [32678] by Simon Hausmann
  • 3 edits in trunk/WebKit/qt

Holger Hans Peter Freyther <zecke@selfish.org>

Use the WebCore facility to do the scrolling. Move some code around.

1:42 AM Changeset in webkit [32677] by alice.liu@apple.com
  • 3 edits
    2 adds in trunk

WebCore:

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

Reviewed by Beth Dakin.

Comply with HTML5 spec about parsing tabindex property according to
integer parsing rules

Test: fast/parser/tabindex-parsing.html

  • html/HTMLElement.cpp: (WebCore::HTMLElement::parseMappedAttribute):

LayoutTests:

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

Reviewed by Beth Dakin.

Comply with HTML5 spec about parsing tabindex property according to
integer parsing rules

  • fast/parser/tabindex-parsing-expected.txt: Added.
  • fast/parser/tabindex-parsing.html: Added.
1:36 AM Changeset in webkit [32676] by Simon Hausmann
  • 3 edits in trunk/WebCore

Fixes: Fix timing problem where scrollbars in subframes were sometimes not property repainted.

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

We need to repaint scrollbars after a geometry change, and also make sure
the computed clipping rect for the corners between scrollbars is propagated
to the chrome client without beeing intersected by the visible content rect
of the frame.

12:49 AM Changeset in webkit [32675] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Ariya Hidayat <ariya.hidayat@trolltech.com>

fix potential crash when loading image(s)

Crash may occur. If compiled with 4.3, the variable is not initialized.

12:43 AM Changeset in webkit [32674] by Simon Hausmann
  • 6 edits in trunk

Holger Hans Peter Freyther <zecke@selfish.org>

Calling QWebView::setCursor will override the WebCore Cursor.
Calling QWebView::setCursor will override the WebCore Cursor using
QWidget::unsetCursor will revert to the WebCore Cursor.

For detecting the unset we have to compare the shape of the
cursor to the default arrow. Qt::WA_SetCursor can not be used
as it is set unconditionally but conditionally removed.

Calling QWidget::setCursor will immediately send the CursorChange
event. We listen to this event to decide if we currently use a
WebCore cursor, got a cursor from outside, or revert to the default.

This should be race free and work reliable, the manual test for this
is WebCore/manual-tests/cursor.html

12:34 AM Changeset in webkit [32673] by Simon Hausmann
  • 6 edits in trunk/WebKit/qt

Kavindra Devi Palaraja <kdpalara@trolltech.com>

Documentation fixes:

  • Fixed a qdoc warning
  • Mention that fav icons can be of arbitrary size
  • Fix signature of QWebPage::acceptNavigationRequest show in the documentation

Apr 28, 2008:

11:14 PM Changeset in webkit [32672] by rwlbuis@webkit.org
  • 2 edits in trunk/WebKit/mac

Reviewed by Maciej.

Build fix for Tiger.

11:05 PM Changeset in webkit [32671] by mitz@apple.com
  • 13 edits in trunk

WebCore:

Reviewed by Maciej Stachowiak.

  • rendering/InlineTextBox.cpp: (WebCore::paintTextWithShadows): The loop was doing one extra pass without shadow even in cases where the last pass with a shadow was painting the text at the right position (rather than outside the clip). Fixed that. The only case where a separate pass without shadow is needed is when there is text-stroke, since in that case all shadow passes paint the text outside the clip.

LayoutTests:

Reviewed by Maciej Stachowiak.

  • platform/mac/fast/css/shadow-multiple-expected.checksum:
  • platform/mac/fast/css/shadow-multiple-expected.png:
  • platform/mac/fast/repaint/shadow-multiple-horizontal-expected.checksum:
  • platform/mac/fast/repaint/shadow-multiple-horizontal-expected.png:
  • platform/mac/fast/repaint/shadow-multiple-strict-horizontal-expected.checksum:
  • platform/mac/fast/repaint/shadow-multiple-strict-horizontal-expected.png:
  • platform/mac/fast/repaint/shadow-multiple-strict-vertical-expected.checksum:
  • platform/mac/fast/repaint/shadow-multiple-strict-vertical-expected.png:
  • platform/mac/fast/repaint/shadow-multiple-vertical-expected.checksum:
  • platform/mac/fast/repaint/shadow-multiple-vertical-expected.png:
10:53 PM SquirrelFishPerfIdeas edited by mjs@apple.com
(diff)
10:51 PM SquirrelFishPerfIdeas edited by mjs@apple.com
(diff)
10:30 PM SquirrelFishPerfIdeas edited by ggaren@apple.com
(diff)
9:10 PM Changeset in webkit [32670] by oliver@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

Restore base pointer when popping a global RegisterFile

Reviewed by Geoff

8:57 PM Changeset in webkit [32669] by oliver@apple.com
  • 5 edits in branches/squirrelfish/JavaScriptCore

Bug 18643: SQUIRRELFISH: need to support implicit function calls (valueOf, toString, getters/setters)
<https://bugs.webkit.org/show_bug.cgi?id=18643>

Reviewed by Geoff

Partial fix. This results in all implicit calls to toString or valueOf
executing in a separate RegisterFile, so ensuring that the the pointers
in the triggering interpreter don't get trashed. This still leaves the
task of preventing new global re-entry from toString and valueOf from
clobbering the RegisterFile.

8:14 PM Changeset in webkit [32668] by beidson@apple.com
  • 11 edits
    4 adds in trunk

WebCore:

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

Reviewed by Sam Weinig

Add Storage.clear(), per updates to HTML5

Tests: storage/domstorage/localstorage/clear.html

storage/domstorage/sessionstorage/clear.html

  • storage/LocalStorageArea.cpp: (WebCore::LocalStorageArea::areaCleared):
  • storage/LocalStorageArea.h:
  • storage/SessionStorageArea.cpp: (WebCore::SessionStorageArea::areaCleared):
  • storage/SessionStorageArea.h:
  • storage/Storage.cpp: (WebCore::Storage::clear):
  • storage/Storage.h:
  • storage/Storage.idl:
  • storage/StorageArea.cpp: (WebCore::StorageArea::internalClear):
  • storage/StorageArea.h: (WebCore::StorageArea::clear):

LayoutTests:

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

Reviewed by Sam Weinig

Add Storage.clear(), per updates to HTML5

  • storage/domstorage/localstorage/clear-expected.txt: Added.
  • storage/domstorage/localstorage/clear.html: Added.
  • storage/domstorage/sessionstorage/clear-expected.txt: Added.
  • storage/domstorage/sessionstorage/clear.html: Added.
6:54 PM Changeset in webkit [32667] by ggaren@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.


Simplified activation object a bit: No need to store the callee
in the activation object -- we can pull it out of the call frame
when needed, instead.


SunSpider reports no change.

6:30 PM Changeset in webkit [32666] by adele@apple.com
  • 21 edits in trunk

WebCore:

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

Reviewed by Dan Bernstein, Tim Hatcher, Anders Carlsson, and Darin Adler.

WebCore part of fix for <rdar://problem/3709505>
Safari should have a way to upload bundles from the file upload control (as zip)

  • WebCore.base.exp: Added symbols.
  • html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::formData): Ask the application if a file will need to be replaced before it's uploaded. It will also give the replacement filename which is used to determine the correct mime-type and to construct the correct header.
  • loader/FrameLoader.cpp: (WebCore::FrameLoader::submitForm): Asks the application to generate any files for the form data before a form submission starts. (WebCore::FrameLoader::loadItem): ditto.
  • loader/ResourceLoader.cpp: (WebCore::ResourceLoader::didReceiveResponse): Tells the FormData from the request to remove any generated files if it needs to. (WebCore::ResourceLoader::didCancel): ditto. (WebCore::ResourceLoader::didFail): ditto.
  • platform/network/FormData.cpp: (WebCore::FormData::FormData): Initializes m_hasGeneratedFiles, which keeps track of whether there are files that will need to be removed. (WebCore::FormData::~FormData): Added. Assert that there are no files that need to be removed, but if there are, release builds will still remove them here. (WebCore::FormData::appendFile): Passes along a shouldGenerateFile flag to the FormDataElement. (WebCore::FormData::generateFiles): Added. Iterates through the FormDataElements, and using the ChromeClient pointer, asks the application to create any compressed files so the FormDataElements can store the paths. (WebCore::FormData::removeGeneratedFilesIfNeeded): Added. Removes generated files and their directories (if empty).
  • platform/network/FormData.h: (WebCore::FormDataElement::FormDataElement): Added a boolean to track whether the file will need to be generated, and a string to hold the path of the generated file.
  • platform/network/mac/FormDataStreamMac.mm: (WebCore::advanceCurrentStream): Uses the generated file path instead of the original file path when streaming the file. (WebCore::setHTTPBody): Uses the generated file path when determining the size of the file to be uploaded.
  • platform/FileSystem.h: Added directoryName.
  • platform/posix/FileSystemPOSIX.cpp: (WebCore::directoryName): Added.
  • platform/gtk/FileSystemGtk.cpp: (WebCore::directoryName): Added empty implementation.
  • platform/qt/FileSystemQt.cpp: (WebCore::directoryName): ditto.
  • platform/win/FileSystemWin.cpp: (WebCore::directoryName): ditto.
  • platform/wx/FileSystemWx.cpp: (WebCore::directoryName): ditto.

Added new ChromeClient methods to give the application control over the file compression for uploading.

  • page/Chrome.cpp: (WebCore::ChromeClient::shouldReplaceWithGeneratedFileForUpload): Added a default implementation. (WebCore::ChromeClient::generateReplacementFile): ditto.
  • page/ChromeClient.h:

WebKit/mac:

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

Reviewed by Dan Bernstein, Tim Hatcher, Anders Carlsson, and Darin Adler.

WebKit part of fix for <rdar://problem/3709505>
Safari should have a way to upload bundles from the file upload control (as zip)

Added UIDelegate methods to let the application handle generating replacement files for uploads.
In this case, Safari will create archived files for bundles so they can be uploaded properly.

  • DefaultDelegates/WebDefaultUIDelegate.m: (-[WebDefaultUIDelegate webView:shouldReplaceUploadFile:usingGeneratedFilename:]): (-[WebDefaultUIDelegate webView:generateReplacementFile:]):
  • WebCoreSupport/WebChromeClient.h:
  • WebCoreSupport/WebChromeClient.mm: (WebChromeClient::shouldReplaceWithGeneratedFileForUpload): (WebChromeClient::generateReplacementFile):
  • WebView/WebUIDelegatePrivate.h:
6:28 PM Changeset in webkit [32665] by andersca@apple.com
  • 6 edits in trunk

WebCore:

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

Reviewed by Sam, Mark, Adele and Darin.

Add a (currently not called) method for opening the application cache database.


  • WebCore.base.exp:
  • loader/appcache/ApplicationCacheStorage.cpp: (WebCore::ApplicationCacheStorage::setCacheDirectory): (WebCore::ApplicationCacheStorage::openDatabase):
  • loader/appcache/ApplicationCacheStorage.h:

WebKit/mac:

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

Reviewed by Sam, Mark, Adele and Darin.

Initialize the application cache path.


  • WebView/WebView.mm: (WebKitInitializeApplicationCachePathIfNecessary): (-[WebView _commonInitializationWithFrameName:groupName:]):
6:18 PM Changeset in webkit [32664] by alice.liu@apple.com
  • 34 edits
    8 adds in trunk

WebCore:

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

Reviewed by Darin.

Fix <rdar://problem/4911289> Add tabindex property to all children
of HTMLElement (7138)
http://bugs.webkit.org/show_bug.cgi?id=7138

Test: fast/events/tabindex-focus-blur-all.html

  • WebCore.xcodeproj/project.pbxproj:
  • bindings/objc/DOMPrivate.h: -DOMHTMLLabelElementPrivate.h and DOMHTMLLegendElementPrivate.h are no longer needed
  • bindings/objc/PublicDOMInterfaces.h: -Moving focus, blur, tabindex to HTMLElement from its descendants.
  • dom/Node.cpp: (WebCore::Node::Node): (WebCore::Node::isFocusable): (WebCore::Node::isKeyboardFocusable): -The concept of being focusable now needs to account for tabindex attribute.
  • dom/Node.h: -Need to use a bit to keep track of whether tabindex was explicitly set to 0 or was just initialized to 0. (WebCore::Node::tabIndex): -Make this virtual so that Anchors and GenericFormElements can determine tabindex without accounting for focusability (WebCore::Node::setTabIndexExplicitly): -Renamed setTabIndex() to setTabIndexExplicitly() so as not to hide behind and/or be confused for HTMLElement::setTabIndex
  • html/HTMLAnchorElement.cpp:
  • html/HTMLAnchorElement.h: (WebCore::HTMLAnchorElement::tabIndex):
  • html/HTMLGenericFormElement.cpp:
  • html/HTMLGenericFormElement.h: (WebCore::HTMLGenericFormElement::tabIndex): -Anchors and form elements are normally focusable, and need to avert the check for focusability in HTMLElement::tabIndex because tabIndex could be queried before a first layout happens.
  • html/HTMLElement.cpp: (WebCore::HTMLElement::parseMappedAttribute): -Function Node::setTabIndex changed to Node::setTabIndexExplicitly (WebCore::HTMLElement::isFocusable): -The concept of being focusable now needs to account for tabindex attribute. (WebCore::HTMLElement::tabIndex): -HTML5 specifies that querying tabindex for elements that aren't focusable shall return -1 (WebCore::HTMLElement::setTabIndex): -New default implementation
  • html/HTMLElement.h:
  • html/HTMLLegendElement.cpp: (WebCore::HTMLLegendElement::focus): -Now with HTML5's enhanced specification of tabindex, legend elements themselves shall focus (if they should), and not the first form element they encapsulate. This matches Firefox behavior. HTMLLabelElements still forward focus to the encapsulated element. This also matches other browsers.
  • html/HTMLAreaElement.cpp: (WebCore::HTMLAreaElement::isFocusable):
  • html/HTMLAreaElement.h: -HTMLAreaElement isn't subject to the same focusability requirements as its parent, HTMLAnchorElement. Default HTMLElement implementation is desired.
  • html/HTMLFieldSetElement.cpp: (WebCore::HTMLFieldSetElement::isFocusable):
  • html/HTMLLegendElement.cpp: (WebCore::HTMLLegendElement::isFocusable):
  • html/HTMLOptGroupElement.cpp: (WebCore::HTMLOptGroupElement::isFocusable):
  • html/HTMLOptionElement.cpp: (WebCore::HTMLOptionElement::isFocusable): -These elements aren't subject to the same focusability requirements as their parent, HTMLGenericFormElement. Default HTMLElement implementation is desired.
  • html/HTMLAnchorElement.idl:
  • html/HTMLAreaElement.idl:
  • html/HTMLButtonElement.idl:
  • html/HTMLElement.idl:
  • html/HTMLInputElement.idl:
  • html/HTMLLabelElement.idl:
  • html/HTMLLegendElement.idl:
  • html/HTMLObjectElement.idl:
  • html/HTMLSelectElement.idl:
  • html/HTMLTextAreaElement.idl: -Moving tabindex attribute, focus and blur methods from descendants of HTMLElement to HTMLElement

WebKit/mac:

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

Reviewed by Darin.

Fix <rdar://problem/4911289> Add tabindex property to all children
of HTMLElement (7138)
http://bugs.webkit.org/show_bug.cgi?id=7138

  • MigrateHeaders.make: Removing DOMHTMLLabelElementPrivate.h and DOMHTMLLegendElementPrivate.h because now that focus() has been moved to DOMHTMLElement.h, these files are no longer needed.

LayoutTests:

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

Reviewed by Sam Weinig.

Fix <rdar://problem/4911289> Add tabindex property to all children
of HTMLElement (7138)
http://bugs.webkit.org/show_bug.cgi?id=7138

minor updates to these existing tests:

  • fast/dom/domListEnumeration-expected.txt:
  • fast/dom/plugin-attributes-enumeration-expected.txt:
  • fast/dom/resources/domListEnumeration.js:
  • fast/events/resources/abe.png: Added.
  • fast/events/resources/tabindex-focus-blur-all-frame1.html: Added.
  • fast/events/resources/tabindex-focus-blur-all-frame2.html: Added.
  • fast/events/resources/tabindex-focus-blur-all-iframe1.html: Added.
  • fast/events/resources/tabindex-focus-blur-all-iframe2.html: Added.
  • fast/events/resources/tabindex-focus-blur-all.js: Added.
  • fast/events/tabindex-focus-blur-all-expected.txt: Added.
  • fast/events/tabindex-focus-blur-all.html: Added.
5:26 PM Changeset in webkit [32663] by ggaren@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.


RS by Oliver Hunt on moving JSArguments.cpp out of AllInOneFile.cpp.

Substantially more handling of "arguments": "arguments" works fully
now, but "f.arguments" still doesn't work.

Fixes 10 regression tests.


SunSpider reports no regression.

  • kjs/JSActivation.cpp: (KJS::JSActivation::createArgumentsObject): Reconstruct an arguments List to pass to the arguments object constructor.
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • kjs/AllInOneFile.cpp: Removed JSActivation.cpp from AllInOneFile.cpp because that seems to make GCC happy. (Previously, I had added JSActivation.cpp to AllInOneFile.cpp because *that* seemed to make GCC happy. So it goes.)
4:39 PM Changeset in webkit [32662] by ggaren@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.


Groundwork for more handling of "arguments". I'm not checking in the
actual handling of "arguments" yet, because it still needs a little
fiddling to avoid a performance regression.


SunSpider reports no change.

  • VM/Machine.cpp: (KJS::initializeCallFrame): Put argc in the register file, so the arguments object can find it later, to determine arguments.length.
  • kjs/nodes.h: (KJS::FunctionBodyNode::): Added a special code accessor for when you know the code has already been generated, and you don't have a scopeChain to supply for potential code generation. (This is the case when the activation object creates the arguments object.)
4:04 PM Changeset in webkit [32661] by oliver@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

Replace unsafe use of auto_ptr in Vector with manual memory
management.

Reviewed by Geoff

2:28 PM Changeset in webkit [32660] by mitz@apple.com
  • 15 edits
    20 adds in trunk

WebCore:

Reviewed by Dave Hyatt.

  • support multiple box- and text-shadows

Tests: fast/css/shadow-multiple.html

fast/repaint/shadow-multiple-horizontal.html
fast/repaint/shadow-multiple-strict-horizontal.html
fast/repaint/shadow-multiple-strict-vertical.html
fast/repaint/shadow-multiple-vertical.html

  • css/CSSComputedStyleDeclaration.cpp: (WebCore::valueForShadow): Changed to account for reversing the order of the shadow values in the ShadowData list.
  • css/CSSValueList.cpp: (WebCore::CSSValueList::prepend): Added.
  • css/CSSValueList.h:
  • rendering/InlineFlowBox.cpp: (WebCore::InlineFlowBox::placeBoxesHorizontally): Changed to account for all shadows in overflow calculation. (WebCore::InlineFlowBox::placeBoxesVertically): Ditto. (WebCore::InlineFlowBox::paint): Changed to account for all shadows when testing for intersection with the damage rect. (WebCore::InlineFlowBox::paintTextDecorations): Changed to paint all shadows.
  • rendering/InlineTextBox.cpp: (WebCore::paintTextWithShadows): Factored out from paint() and changed to paint all shadows. (WebCore::InlineTextBox::paint): Moved the text painting code out to paintTextWithShadows(). Changed to not paint shadows for markers and composition underlines and in "force black text" mode. (WebCore::InlineTextBox::paintSelection): (WebCore::InlineTextBox::paintCompositionBackground): (WebCore::InlineTextBox::paintDecoration): Changed to paint all shadows.
  • rendering/InlineTextBox.h: Changed some public methods to private or protected.
  • rendering/RenderBlock.cpp: (WebCore::RenderBlock::overflowHeight): Changed to account for all shadows. (WebCore::RenderBlock::overflowWidth): Ditto. (WebCore::RenderBlock::overflowLeft): Ditto. (WebCore::RenderBlock::overflowTop): Ditto. (WebCore::RenderBlock::overflowRect): Ditto. (WebCore::RenderBlock::layoutBlock): Ditto.
  • rendering/RenderFlexibleBox.cpp: (WebCore::RenderFlexibleBox::layoutBlock): Ditto.
  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::calculateRects): Ditto.
  • rendering/RenderObject.cpp: (WebCore::RenderObject::paintBoxShadow): Changed to paint all shadows. Changed to avoid clipping out the box if it has a fully opaque background. (WebCore::RenderObject::repaintAfterLayoutIfNeeded): Changed to account for all shadows. (WebCore::RenderObject::selectionForegroundColor): Cleaned up. (WebCore::RenderObject::adjustRectForOutlineAndShadow): Changed to account for all shadows.
  • rendering/RenderReplaced.cpp: (WebCore::RenderReplaced::adjustOverflowForBoxShadow): Ditto.
  • rendering/RenderStyle.cpp: (WebCore::RenderStyle::setTextShadow): Changed to prepend when adding so that the stacking order of shadows when painting will be "first o top". (WebCore::RenderStyle::setBoxShadow): Ditto.
  • rendering/RenderTable.cpp: (WebCore::RenderTable::layout): Changed to account for all shadows.

LayoutTests:

Reviewed by Dave Hyatt.

  • add rendering and invalidation tests for multiple shadows
  • fast/css/shadow-multiple.html: Added.
  • fast/repaint/shadow-multiple-horizontal.html: Added.
  • fast/repaint/shadow-multiple-strict-horizontal.html: Added.
  • fast/repaint/shadow-multiple-strict-vertical.html: Added.
  • fast/repaint/shadow-multiple-vertical.html: Added.
  • platform/mac/fast/css/shadow-multiple-expected.checksum: Added.
  • platform/mac/fast/css/shadow-multiple-expected.png: Added.
  • platform/mac/fast/css/shadow-multiple-expected.txt: Added.
  • platform/mac/fast/repaint/shadow-multiple-horizontal-expected.checksum: Added.
  • platform/mac/fast/repaint/shadow-multiple-horizontal-expected.png: Added.
  • platform/mac/fast/repaint/shadow-multiple-horizontal-expected.txt: Added.
  • platform/mac/fast/repaint/shadow-multiple-strict-horizontal-expected.checksum: Added.
  • platform/mac/fast/repaint/shadow-multiple-strict-horizontal-expected.png: Added.
  • platform/mac/fast/repaint/shadow-multiple-strict-horizontal-expected.txt: Added.
  • platform/mac/fast/repaint/shadow-multiple-strict-vertical-expected.checksum: Added.
  • platform/mac/fast/repaint/shadow-multiple-strict-vertical-expected.png: Added.
  • platform/mac/fast/repaint/shadow-multiple-strict-vertical-expected.txt: Added.
  • platform/mac/fast/repaint/shadow-multiple-vertical-expected.checksum: Added.
  • platform/mac/fast/repaint/shadow-multiple-vertical-expected.png: Added.
  • platform/mac/fast/repaint/shadow-multiple-vertical-expected.txt: Added.
12:47 PM Changeset in webkit [32659] by Adam Roben
  • 2 edits in trunk/WebCore

Fix some more Windows build errors in COMPtr

  • platform/win/COMPtr.h: (WTF::): Define DefaultHash<COMPtr<P> > by using PtrHash<COMPtr<P> >, which is just a copy of PtrHash<RefPtr<P> >.
12:39 PM Changeset in webkit [32658] by Adam Roben
  • 3 edits in trunk/WebKit/win

Fix some Windows build errors in WebKit

  • Interfaces/WebKit.idl: Touched to force Interfaces to rebuild.
  • WebKitPrefix.cpp: Touched to force WebKit to rebuild.
12:28 PM Changeset in webkit [32657] by Adam Roben
  • 2 edits in trunk/WebCore

Fix some Windows build errors in COMPtr

  • platform/win/COMPtr.h: Explicitly name the WTF namespace when using HashTableDeletedValueType.
12:22 PM Changeset in webkit [32656] by Adam Roben
  • 2 edits in trunk/WebCore

Fix some Windows build errors in FontPlatfomrData

  • platform/graphics/win/FontPlatformData.h: Removed the Deleted constructor and replaced it with a HashTableDeletedValueType constructor. Also added isHashTableDeletedValue() and hashTableDeletedFontValue().
12:14 PM Changeset in webkit [32655] by hyatt@apple.com
  • 3 edits
    4 adds in trunk

WebCore:

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

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

Canvas can't draw itself into its own buffer. Make sure the dirtying call comes after the image()
has been accessed. Technically willDraw should be renamed to didDraw and all calls should be moved
to after draws have occurred (since if the draw op itself wants to reference the image it shouldn't get
a dirty copy either), but I'll take that up with olliej when he wakes up. :)

Reviewed by Dan Bernstein

Added fast/canvas/canvasDrawsIntoSelf.html

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

LayoutTests:

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

Add layout test for canvas self-drawing bug.

Reviewed by Dan Bernstein

  • fast/canvas/canvasDrawingIntoSelf.html: Added.
  • platform/mac/fast/canvas/canvasDrawingIntoSelf-expected.checksum: Added.
  • platform/mac/fast/canvas/canvasDrawingIntoSelf-expected.png: Added.
  • platform/mac/fast/canvas/canvasDrawingIntoSelf-expected.txt: Added.
12:12 PM Changeset in webkit [32654] by ap@webkit.org
  • 2 edits in trunk/JavaScriptCore

Windows build fix.

  • kjs/ExecState.h: For whatever reason, MSVC couldn't generate a default constructor for a struct that had a "const List" member. Removing the const qualifier makes the problem go away.
11:58 AM Changeset in webkit [32653] by ap@webkit.org
  • 2 edits in trunk/WebCore

Reviewed by Geoff Garen.

<rdar://problem/5825192> Replace use of Gestalt with BSD sysctl

  • platform/graphics/mac/MediaPlayerPrivateQTKit.mm: (WebCore::MediaPlayerPrivate::isAvailable): There is no need to check QuickTime version post-Tiger, as it will never be below 7.3 again. This change may make library loading happen earlier in some cases, hopefully, that's not a big deal.
11:22 AM Changeset in webkit [32652] by ap@webkit.org
  • 64 edits in trunk

Reviewed by Darin.

Fix run-webkit-tests --threading
and provisionally fix <https://bugs.webkit.org/show_bug.cgi?id=18661>
Proxy server issue in Sunday's Nightly

Changed ClassInfo objects for built-in objects to hold a getter function returning
a per-thread instance. This makes it safe to share these ClassInfo objects between threads -
and these are the only ones that need to be shared.

11:15 AM Changeset in webkit [32651] by hyatt@apple.com
  • 3 edits
    4 adds in trunk

WebCore:

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

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

The arguments in drawImage were reversed when I switched away from the image buffer method.

Reviewed by Tim Hatcher

Added fast/canvas/drawImage.html

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

LayoutTests:

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

Add layout test for canvas.

Reviewed by Tim Hatcher

  • fast/canvas/drawImage.html: Added.
  • platform/mac/fast/canvas/drawImage-expected.checksum: Added.
  • platform/mac/fast/canvas/drawImage-expected.png: Added.
  • platform/mac/fast/canvas/drawImage-expected.txt: Added.
10:18 AM Changeset in webkit [32650] by Darin Adler
  • 7 edits in trunk/JavaScriptCore

2008-04-28 Darin Adler <Darin Adler>

Reviewed by Adam.

  • make sure RefPtr's default hash doesn't ref/deref when computing the hash
  • remove remnants of the hash table storage type optimization
  • wtf/HashFunctions.h: Used "using" to get the hash and equal functions from PtrHash<P*> into PtrHash<RefPtr<P>>.
  • wtf/HashMap.h: Replaced uses of PairBaseHashTraits with PairHashTraits. Eliminated storage-related typedefs. Removed constructor, destructor, copy constructor, and destructor since the compiler-generated ones are fine. Removed refAll and derefAll. Took out unnnecessary typecasts. Removed use of RefCounter.
  • wtf/HashSet.h: Eliminated storage-related typedefs. Removed constructor, destructor, copy constructor, and destructor since the compiler-generated ones are fine. Removed refAll and derefAll. Removed unneeded template arguents from HashSetTranslatorAdapter. Eliminated unneeded HashSetTranslator template.
  • wtf/HashTable.h: Tweaked formatting. Removed NeedsRef, RefCounterBase, RefCounter, HashTableRefCounterBase, HashTableRefCounter, and Assigner class templates.
  • wtf/HashTraits.h: Removed StorageTraits, needsRef, PairBaseHashTraits, and HashKeyStorageTraits.
  • wtf/RefPtrHashMap.h: Made all the same fixes as in HashMap. Also made the corresponding changes to RefPtrHashMapRawKeyTranslator.
10:06 AM Changeset in webkit [32649] by Darin Adler
  • 2 edits in trunk/WebKitLibraries

2008-04-28 Darin Adler <Darin Adler>

Reviewed by Adam.

  • fix Windows build
  • win/tools/vsprops/common.vsprops: Add warning 4344 to the list of disabled warnings. It's really a warning about a bug they fixed in MSVC -- not helpful to us in WebKit.
9:54 AM Changeset in webkit [32648] by Darin Adler
  • 2 edits in trunk/JavaScriptCore

2008-04-28 Darin Adler <Darin Adler>

Reviewed by Mitz.

  • fix assertion hit every time you view www.apple.com
  • kjs/PropertyNameArray.cpp: (KJS::PropertyNameArray::add): Changed assertion to allow null and empty strings. Now to find out why we have a property named "" and if that's a bug!
8:25 AM Changeset in webkit [32647] by Simon Hausmann
  • 3 edits
    4 adds in trunk

Holger Hans Peter Freyther <zecke@selfish.org>

Fix the crash on http://www.orad.pl. We called end too early.

  1. we need a ::write that will pause the parser due a pending script
  2. we need a second write to queue data (tricky part)
  3. we need to get a finish call (document loaded)
  4. we resume the script and parse, schedule loading of a new script and have called end
  5. we resume the new script and we get a crash

This bug is hard to trigger, e.g. if the web server is only allowing
one connection per client/IP. This is why we need to sleep in the scripts. We
want to make sure that the page is first fully received before serving the
scripts.

8:24 AM Changeset in webkit [32646] by Simon Hausmann
  • 2 edits in trunk/LayoutTests

Holger Hans Peter Freyther <zecke@selfish.org>

Update the Skipped list, we pass most of the http/tests/misc

8:24 AM Changeset in webkit [32645] by Simon Hausmann
  • 2 edits in trunk/WebKitTools

Holger Hans Peter Freyther <zecke@selfish.org>

Reset dumping resource load callbacks to false for the next test

8:14 AM Changeset in webkit [32644] by Simon Hausmann
  • 2 edits in trunk/WebCore

Ariya Hidayat <ahidayat@trolltech.com>

Fix rounded corner on combo box with CSS border

8:14 AM Changeset in webkit [32643] by Simon Hausmann
  • 13 edits in trunk

Tor Arne Vestbø <tavestbo@trolltech.com>

Fix QWebView::loadFinished isn't always emitted

Replaced loadDone() with loadFinished(bool) and moved the signals for progress
tracking (start, progres, and finish) to the page instead of the frame. This
ensures that we emit loadFinished even when a subframe started the actual load.

This causes a few regressions in the layout tests that we for now accept for
the sake of the correct API. Layout tests we can fix any time though, including
patch release, the API however we can't change anymore in patch releases.

8:09 AM Changeset in webkit [32642] by Simon Hausmann
  • 2 edits in trunk/WebCore

Ariya Hidayat <ahidayat@trolltech.com>

Fix CSS border does not show up for combo boxes

Do not clear the border when painting the combo box for 'select' form element

8:09 AM Changeset in webkit [32641] by Simon Hausmann
  • 4 edits in trunk/WebKit/qt

Kavindra Devi Palaraja <kdpalara@trolltech.com>

Added more documentation for QWebSettings, QWebPluginFactory and QWebFrame

8:09 AM Changeset in webkit [32640] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Ariya Hidayat <ahidayat@trolltech.com>

Fix document/frame title not reset when loading a new URI

We should assume first the frame has no title. If it has, then the dispatchDidReceiveTitle()
will be called very soon with the correct title.
This properly resets the title when we navigate to a URI without a title.

8:08 AM Changeset in webkit [32639] by Simon Hausmann
  • 2 edits in trunk/WebCore

Olivier Goffart <ogoffart@trolltech.com>

Avoid comparing to 0 in qFuzzyCompare for increased
numeric stability.

7:51 AM Changeset in webkit [32638] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

David Boddie <dboddie@trolltech.com>

Minor documentation changes.

7:51 AM Changeset in webkit [32637] by Simon Hausmann
  • 2 edits in trunk/WebCore

Benjamin Meyer <bmeyer@trolltech.com>

Fixes: Pages returning 404 with content are not displayed.

A web page that returns 404 can still have content.

7:50 AM Changeset in webkit [32636] by Simon Hausmann
  • 2 edits in trunk/WebCore

Paul Olav Tvete <paul@trolltech.com>

Fix compiler warning

7:29 AM Changeset in webkit [32635] by Simon Hausmann
  • 4 edits in trunk

Tor Arne Vestbø <tavestbo@trolltech.com>

Prevent middle-click from triggering open URL from clipboard when the event has already been accepted.

7:29 AM Changeset in webkit [32634] by Simon Hausmann
  • 5 edits in trunk

Tor Arne Vestbø <tavestbo@trolltech.com>

Fix scrollbar behavior in QtWebKit to match QScrollBar.

Right click context menu is now supported, along with
middle click to center slider thumb over mouse cursor.

7:24 AM Changeset in webkit [32633] by Simon Hausmann
  • 5 edits
    1 add in trunk

Tor Arne Vestbø <tavestbo@trolltech.com>

Implemented channel-based logging for QtWebKit.

Comma-separated log channels are read from the QT_WEBKIT_LOG environment variable.
Warnings for notImplemented() is still output by default, but can be disabled
by setting DISABLE_NI_WARNINGS=1.

6:52 AM Changeset in webkit [32632] by Simon Hausmann
  • 5 edits in trunk/WebKit/qt

Simon Hausmann <shausman@trolltech.com>

Removed setHtml(const QByteArray &) overload as it breaks the common use of the setHtml() API.

6:52 AM Changeset in webkit [32631] by Simon Hausmann
  • 4 edits in trunk/WebKit/qt

Kavindra Devi Palaraja <kdpalara@trolltech.com>

Doc - adding more documentation to QWebFrame, QWebPage and QWebView

6:50 AM Changeset in webkit [32630] by Simon Hausmann
  • 4 edits in trunk

Simon Hausmann <shausman@trolltech.com>

Fixes: Popups/Context menu in WebKit appearing at the wrong location when embedded in the graphics view or using multiple screens

Give the popups the right parent widget and the right coordinates relative within the parent.

6:45 AM Changeset in webkit [32629] by Simon Hausmann
  • 4 edits in trunk/WebKit/qt

Benjamin Meyer <bmeyer@trolltech.com>

Doc: Add see also's (and a few minor whitespace/typo corrections)

6:45 AM Changeset in webkit [32628] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Kavindra Devi Palaraja <kdpalara@trolltech.com>

Submitting more documentation for QWebPage

6:45 AM Changeset in webkit [32627] by Simon Hausmann
  • 2 edits in trunk/WebCore

Tor Arne Vestbø <tavestbo@trolltech.com>

Fixes: Tabbing to a checkbox/button doesn't work on Win/X11

Respect platform settings for tabbing to all controls.

6:45 AM Changeset in webkit [32626] by Simon Hausmann
  • 2 edits in trunk/WebCore

Tor Arne Vestbø <tavestbo@trolltech.com>

First part of the fix for tabbing to a checkbox/button doesn't work on Win/X11

Draw controls instead of pimitive elements, to get focus rects for free.

6:44 AM Changeset in webkit [32625] by Simon Hausmann
  • 5 edits in trunk

Lincoln Ramsay <lincoln.ramsay@trolltech.com>

Compile when QT_NO_CLIPBOARD is defined.

6:44 AM Changeset in webkit [32624] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

David Boddie <dboddie@trolltech.com>

Minor documentation fix.

6:34 AM Changeset in webkit [32623] by Simon Hausmann
  • 3 edits in trunk/WebCore

Ariya Hidayat <ariya.hidayat@trolltech.com>

Draw the arrow button on the styled combo box using the fallback ("Windows") style

6:30 AM Changeset in webkit [32622] by Simon Hausmann
  • 2 edits in trunk/WebCore

Fix positioning of native widgets (plugins).

Correctly convert the coordinates of the Widget in Widget::setFrameGeometry()
to be relative to the containing toplevel QWidget using convertToContainingWindow().

Note: convertToContainingWindow() takes child coordinates.

6:30 AM Changeset in webkit [32621] by Simon Hausmann
  • 3 edits in trunk/WebCore

Holger Hans Peter Freyther <zecke@selfish.org>

plugins: fix scrolling issues

When scrolling you can see artefacts that remain on the screen, they
seem to originate from the backingstore handling. I'm not entirely sure
where they come from, my workarounds involved a
data->m_widget->parentWidget()->update() call in Widget::geometryChanged or
handling widgets with a native QWidget embedded like web pages with a
static background. This needs more investigations, I think the ScrollView
change is cleaner than the brute force in Widget::geometryChanged

Focus handling seems to be broken as well and needs further work, we don't
clip plugin QWidgets and they can draw out of their bounds, e.g. on the ScrollBar,
the z-order is likely not honored as well.

6:29 AM Changeset in webkit [32620] by Simon Hausmann
  • 1 edit
    3 adds in trunk/WebCore

Holger Hans Peter Freyther <zecke@selfish.org>

Add manual test to test placement of QWidgets in iframe's

6:29 AM Changeset in webkit [32619] by Simon Hausmann
  • 3 edits in trunk/WebKit/qt

Holger Hans Peter Freyther <zecke@selfish.org>

Implement QWebPage::createPlugin

The code is coming from the demo browser and needed here
for some manual tests.

4:59 AM Changeset in webkit [32618] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Qt/Win build fix. Include config.h to get the implicit MathExtras.h
inclusion correct with regards to rand_s.

4:21 AM Changeset in webkit [32617] by Simon Hausmann
  • 2 edits in trunk/WebCore

Fix the build with ENABLE_DATABASE=0 (Qt/Windows) by including
SecurityOrigin.h. It's used in the file and also implicitly included
through the database headers.

3:52 AM Changeset in webkit [32616] by Simon Hausmann
  • 2 edits in trunk/WebCore

Prospective Wx build fix.

3:52 AM Changeset in webkit [32615] by Simon Hausmann
  • 2 edits in trunk/WebCore

2008-04-28 Simon Hausmann <Simon Hausmann>

Reviewed by Alp.

Gtk build fix, similar to the changes done in r32609.

3:24 AM Changeset in webkit [32614] by Simon Hausmann
  • 2 edits in trunk/WebCore

2008-04-28 Simon Hausmann <Simon Hausmann>

Prospective build fix. After r32609 it seems the workaround here
is not needed anymore. With gcc 4.2/4.3 before 32609 the workaround
is needed for compilation, after 32609 compilation only succeeds
without the workaround.

  • plugins/PluginPackage.h: Removed workaround of extra StorageTraits specification for the custom hash function of PluginPackage used in PluginSet.
3:10 AM Changeset in webkit [32613] by Simon Hausmann
  • 6 edits in trunk

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

Reviewed by Simon.

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

Fix scrollbar painting issues in QtWebKit.

Hovering and click-draging outside of the scrollbar would
produce unexpected and inconcistent results. We also didn't
pass on leave-events to the underlying WebKit code, which
was nessecary to implement the paint fix.

12:41 AM Changeset in webkit [32612] by oliver@apple.com
  • 8 edits
    1 add in trunk

Bug 17173: HTML5 Canvas API requires us to ignore certain operations
<https://bugs.webkit.org/show_bug.cgi?id=17173>

Reviewed by Maciej

This fixes the semantics of a number of Canvas functions to match
the new HTML5 non-throwing semantics.

Test: fast/canvas/canvas-path-with-inf-nan-dimensions.html

Apr 27, 2008:

11:57 PM Changeset in webkit [32611] by mrowe@apple.com
  • 2 edits in trunk/JavaScriptCore

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

Reviewed by Maciej Stachowiak.

Fix crash inside PtrHash::hash when loading a page.

  • wtf/HashFunctions.h: Explicitly use the superclass implementation of hash to avoid infinite recursion.
11:49 PM Changeset in webkit [32610] by rwlbuis@webkit.org
  • 3 edits
    2 adds in trunk

Reviewed by Adele.

https://bugs.webkit.org/show_bug.cgi?id=18652
onchange events don't seem to fire for input[type=range] controls.

Fire changeEvent when dragging the slider.

10:59 PM Changeset in webkit [32609] by Darin Adler
  • 42 edits in trunk

JavaScriptCore:

2008-04-25 Darin Adler <Darin Adler>

Reviewed by Maciej.

  • fix <rdar://problem/5657459> REGRESSION: JavaScriptCore no longer builds with GCC 4.2 due to pointer aliasing warnings

Fix this by removing the HashTable optimizations that allowed us to share a back end
implementation between hash tables with integers, pointers, RefPtr, and String objects
as keys. The way it worked was incompatible with strict aliasing.

This increases code size. On Mac OS X we'll have to regenerate .order files to avoid
slowing down Safari startup times.

This creates a slight slowdown in SunSpider, mitigated by the following four speedups:

  • speed up array put slightly by moving a branch (was already done for get)
  • speed up symbol table access by adding a function named inlineGet to HashMap and using that in symbolTableGet/Put
  • speed up PropertyNameArray creation by reducing the amount of reference count churn and uniqueness checking when adding names and not doing any allocation at all when building small arrays
  • speed up conversion of strings to floating point numbers by eliminating the malloc/free of the buffer for the ASCII copy of the string; a way to make things even faster would be to change strtod to take a UTF-16 string

Note that there is considerable unused complexity now in HashSet/Map/Table to support
"storage types", which is no longer used. Will do in a separate patch.

  • API/JSCallbackObjectFunctions.h: (KJS::JSCallbackObject<Base>::getPropertyNames): Removed explicit cast to Identifier to take advantage of the new PropertyNameArray::add overload and avoid reference count churn.
  • API/JSObjectRef.cpp: (JSPropertyNameAccumulatorAddName): Ditto.
  • JavaScriptCore.exp: Updated PropertyNameArray::add entry point name.
  • kjs/JSVariableObject.cpp: Removed now-unneeded IdentifierRepHashTraits::nullRepPtr definition (see below). (KJS::JSVariableObject::getPropertyNames): Removed explicit cast to Identifier.
  • kjs/JSVariableObject.h: (KJS::JSVariableObject::symbolTableGet): Use inlineGet for speed. Also changed to do early exit instead of nesting the body inside an if. (KJS::JSVariableObject::symbolTablePut): Ditto.
  • kjs/PropertyNameArray.cpp: (KJS::PropertyNameArray::add): Changed implementation to take a raw pointer instead of a reference to an identifier. Do uniqueness checking by searching the vector when the vector is short, only building the set once the vector is large enough.
  • kjs/PropertyNameArray.h: Added an overload of add for a raw pointer, and made the old add function call that one. Added an addKnownUnique function for use when the new name is known to be different from any other in the array. Changed the vector to have an inline capacity of 20.
  • kjs/SymbolTable.h: Changed IdentifierRepHash to inherit from the default hash for a RefPtr so we don't have to define so much. Added an overload of the hash function for a raw pointer as required by the new RefPtrHashMap. Got rid of the now-unneeded IdentifierRepHashTraits -- the default traits now work fine. Added a definition of empthValueIsZero to SymbolTableIndexHashTraits; not having it was incorrect, but harmless.
  • kjs/array_instance.cpp: (KJS::ArrayInstance::put): Move the maxArrayIndex check inside the branch that checks the index against the length, as done in the get function.
  • kjs/function.cpp: (KJS::globalFuncKJSPrint): Changed to use the new getCString instead of cstring.
  • kjs/internal.cpp: Removed printInfo debugging function, a client of cstring. If we need a debugging function we can easily make a better one and we haven't used this one in a long time.
  • kjs/internal.h: Ditto.
  • kjs/object.cpp: (KJS::JSObject::getPropertyNames): Removed explicit cast to Identifier.
  • kjs/property_map.cpp: (KJS::PropertyMap::getEnumerablePropertyNames): Ditto. Also added a special case for the case where the propertyNames array is empty -- in that case we know we're adding a set of names that are non-overlapping so we can use addKnownUnique.
  • kjs/ustring.cpp: (KJS::UString::getCString): Replaces cstring. Puts the C string into a CStringBuffer, which is a char Vector with an inline capacity. Also returns a boolean to indicate if the converion was lossy, which eliminates the need for a separate is8Bit call. (KJS::UString::toDouble): Changed to call getCString instead of cstring.
  • kjs/ustring.h: Ditto.
  • wtf/HashFunctions.h: Overload the hash and equal functions for RefPtr's default hash to take raw pointers. This works with the changes to RefPtrHashMap to avoid introducing refcount churn.
  • wtf/HashMap.h: Removed special code to convert the deleted value to the empty value when writing a new value into the map. This is now handled elsewhere. (WTF::HashMap::get): Removed code that checks for an empty hash table before calling HashTable::lookup; it's slightly more efficient to do this check inside lookup.
  • wtf/HashTable.h: (WTF::HashTable::isDeletedBucket): Changed to use isDeletedValue instead of using deletedValue and the equality operator. (WTF::HashTable::deleteBucket): Changed to use constructDeletedValue instead of using deletedValue and the assignment operator. (WTF::HashTable::checkKey): Added. Factors out the check for values that are empty or deleted keys that's used in various functions below. (WTF::HashTable::lookup): Changed to use checkKey, check for a 0 table, and also made public for use by RefPtrHashMap. (WTF::HashTable::lookupForWriting): Changed to use checkKey. (WTF::HashTable::fullLookupForWriting): Changed to use checkKey. (WTF::HashTable::add): Changed to use checkKey, and call initializeBucket on a deleted bucket before putting a new entry into it. (WTF::HashTable::addPassingHashCode): Ditto. (WTF::HashTable::deallocateTable): Check isDeletedBucket before calling ~ValueType.
  • wtf/HashTraits.h: Got ridd of all the HashTraits specialization for the integer types, since GeneicHashTraitsBase already deals with integers separately. Put the deleted value support into GenericHashTraitsBase. Changed FloatHashTraits to inherit from GenericHashTraits, and define construct/isDeletedValue rather than deletedValue. Removed the ref and deref functions from RefPtr's HashTraits, and defined construct/isDeletedValue. Eliminated DeletedValueAssigner. Changed PairHashTraits to define construct/isDeletedValue, and also merged PairBaseHashTraits in with PairHashTraits. Got rid of all specialization of HashKeyStorageTraits. We'll remove that, and the needsRef data member, later.
  • wtf/RefPtr.h: Added HashTableDeletedValueType, an enum type with a single value, HashTableDeletedValue. Used that type to make a new constructor to construct deleted values and also added an isHashTableDeletedValue function.
  • wtf/RefPtrHashMap.h: Added RefPtrHashMapRawKeyTranslator and used it to implement the raw pointer functions. This is a way to continue to avoid refcount thrash. We can't use the old way because it depended on the underlying map using a non-RefPtr type. (WTF::HashMap::find): Use find with RefPtrHashMapRawKeyTranslator. (WTF::HashMap::contains): Use contains with RefPtrHashMapRawKeyTranslator. (WTF::HashMap::inlineAdd): Use add with RefPtrHashMapRawKeyTranslator. (WTF::HashMap::get): Removed code that checks for an empty hash table before calling HashTable::lookup; it's slightly more efficient to do this check inside lookup. (WTF::HashMap::inlineGet): Added. Just like get, but marked inline for use in the symbol table code.

WebCore:

2008-04-25 Darin Adler <Darin Adler>

Reviewed by Maciej.

  • update for compatibility with HashTable that no longer has optimization to share implementation between hash tables with integers, pointers, RefPtr, and String objects as keys
  • bindings/js/JSSVGPODTypeWrapper.h: (WebCore::PODTypeReadWriteHashInfo::PODTypeReadWriteHashInfo): Added constructor for HashTableDeletedValue. (WebCore::PODTypeReadWriteHashInfo::isHashTableDeletedValue): Added. (WebCore::PODTypeReadWriteHashInfoTraits::constructDeletedValue): Added. (WebCore::PODTypeReadWriteHashInfoTraits::isDeletedValue): Added.
  • dom/Document.cpp: Made changedDocuments internal to the file rather than a static data member of Document. (WebCore::FormElementKey::ref): Removed unneeded check for deleted value -- this will never be called on a deleted element. (WebCore::FormElementKey::deref): Ditto.
  • dom/Document.h: Added HashTableDeletedValue constructor and isHashTableDeletedValue to FormElementKey. Changed FormElementKeyHashTraits to use construct/isDeletedValue. Got rid of the changedDocuments data member. Changed iconURL to be an inline that returns a const String&.
  • dom/StyledElement.cpp: Changed MappedAttributeKeyTraits to use construct/isDeletedValue.
  • page/mac/AXObjectCacheMac.mm: (WebCore::AXObjectCache::getAXID): Call isDeletedValue instead of deletedValue.
  • platform/SecurityOriginHash.h: Added overload so that SecurityOriginHash can work with raw pointers as well as RefPt (helpful with the new RefPtrHashMap). Eliminated SecurityOriginTraits, since we can now use the default traits. Changed the value of safeToCompareToEmptyOrDeleted to false, since it's not safe to compare a deleted value using this hash function. I don't think it was safe before either; I'm not sure why it didn't cause a problem before.
  • platform/cf/SchedulePair.h: Removed SchedulePairTraits -- custom traits are no longer needed.
  • platform/graphics/FontCache.cpp: (WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey): Added constructor for HashTableDeletedValue. (WebCore::FontPlatformDataCacheKey::isHashTableDeletedValue): Added. (WebCore::FontPlatformDataCacheKey::hashTableDeletedSize): Added. (WebCore::FontPlatformDataCacheKeyTraits::constructDeletedValue): Added. (WebCore::FontPlatformDataCacheKeyTraits::isDeletedValue): Added. (WebCore::FontDataCacheKeyTraits::constructDeletedValue): Added. (WebCore::FontDataCacheKeyTraits::isDeletedValue): Added.
  • platform/graphics/IntSizeHash.h: Changed HashTraits<IntSize> to use construct/isDeletedValue.
  • platform/graphics/mac/FontPlatformData.h: (WebCore::FontPlatformData::FontPlatformData): Added constructor for HashTableDeletedValue. (WebCore::FontPlatformData::isHashTableDeletedValue): Added. (WebCore::FontPlatformData::hashTableDeletedFontValue): Added.
  • platform/text/PlatformString.h: (WebCore::String::swap): Added. Avoids any refcount churn when swapping two strings. (WebCore::String::String): Added constructor for HashTableDeletedValue. (WebCore::String::isHashTableDeletedValue): Added. (WebCore::swap): Added. Avoids any refcount churn when swapping two strings.
  • platform/text/StringHash.h: Changed specialization of HashTraits for WebCore::String to use the deleted value now defined in that class and removed the code to do ref/deref. Removed HashKeyStorageTraits specializations.


  • platform/win/COMPtr.h: Changed specialization of HashTraits for COMPtr to use the deleted value now defined in that class and removed the code to do ref/deref. Removed HashKeyStorageTraits specializations. (COMPtr::COMPtr): Added constructor for HashTableDeletedValue. (COMPtr::isHashTableDeletedValue): Added. (COMPtr::query): Removed inline keyword not needed since functions defined in the class definition are automatically marked inline. (COMPtr::hashTableDeletedValue): Added.
  • storage/DatabaseTracker.h: Removed now-unneeded SecurityOriginTraits.
  • storage/LocalStorage.h: Ditto.
  • storage/OriginQuotaManager.h: Ditto.
  • storage/SessionStorage.h: Ditto.
  • svg/SVGAnimatedTemplate.h: (WebCore::SVGAnimatedTypeWrapperKey::SVGAnimatedTypeWrapperKey): Added constructor for HashTableDeletedValue. (WebCore::SVGAnimatedTypeWrapperKey::isHashTableDeletedValue): Added. (WebCore::SVGAnimatedTypeWrapperKeyHashTraits::constructDeletedValue): Added. (WebCore::SVGAnimatedTypeWrapperKeyHashTraits::isDeletedValue): Added.
10:44 PM Changeset in webkit [32608] by mrowe@apple.com
  • 2 edits in trunk/WebCore

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

Reviewed by Tim Hatcher.

Initialize the extra member of the xmlEntity struct when using libxml2 >= 2.6.27.

  • dom/XMLTokenizer.cpp: (WebCore::):
10:37 PM Changeset in webkit [32607] by kevino@webkit.org
  • 3 edits in trunk/WebKit/wx

Add methods to check if there is a previous/next page in the history. Also some coding style cleanup.

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

10:08 PM Changeset in webkit [32606] by mjs@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej.

Bug 18746: SQUIRRELFISH: indirect eval used when direct eval should be used
<https://bugs.webkit.org/show_bug.cgi?id=18746>

Change the base to the correct value of the 'this' object after the direct
eval test instead of before.

Fixes 5 layout tests.

  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • kjs/nodes.cpp: (KJS::EvalFunctionCallNode::emitCode):
9:46 PM Changeset in webkit [32605] by mitz@apple.com
  • 6 edits
    3 adds in trunk

WebCore:

Reviewed by Darin Adler.

Test: editing/selection/move-left-right.html

  • editing/SelectionController.cpp: (WebCore::SelectionController::modifyMovingRight): Added. Currently implemented for character granularity, all other being treated as "forward". (WebCore::SelectionController::modifyMovingForward): Renamed modifyMovingRightForward() to this. (WebCore::SelectionController::modifyMovingLeft): Added. Currently implemented for character granularity, all other being treated as "backward". (WebCore::SelectionController::modifyMovingBackward): Renamed modifyMovingLeftBackward() to this. (WebCore::SelectionController::modify): Changed to call either the visual (left/right) or logical (backward/forward) methods depending on the 'dir' argument for moves.
  • editing/SelectionController.h:
  • editing/VisiblePosition.cpp: (WebCore::VisiblePosition::leftVisuallyDistinctCandidate): Added. (WebCore::VisiblePosition::left): Added. (WebCore::VisiblePosition::rightVisuallyDistinctCandidate): Added. (WebCore::VisiblePosition::right): Added.
  • editing/VisiblePosition.h:

LayoutTests:

Reviewed by Darin Adler.

  • editing/selection/move-left-right-expected.txt: Added.
  • editing/selection/move-left-right.html: Added.
  • platform/mac/editing/selection/move-left-right-expected.txt: Added.
9:32 PM Changeset in webkit [32604] by weinig@apple.com
  • 5 edits in trunk

WebCore:

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

Reviewed by Maciej Stachowiak.

Fix for <rdar://problem/5893385> Need to provide access to the CanvasRenderingContext2D prototype
Add a JS constructor for CanvasRenderingContext2D.

  • html/CanvasRenderingContext2D.idl:
  • page/DOMWindow.idl:

LayoutTests:

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

Reviewed by Maciej Stachowiak.

Update test to reflect add the CanvasRenderingContext2d constructor.

  • fast/dom/Window/window-properties-expected.txt:

Apr 26, 2008:

10:27 PM Changeset in webkit [32603] by mrowe@apple.com
  • 11 edits in tags/Safari-6526.2

Merge r32530.

10:27 PM Changeset in webkit [32602] by mrowe@apple.com
  • 8 edits in tags/Safari-6526.2

Merge r32583.

8:10 PM Changeset in webkit [32601] by ddkilzer@apple.com
  • 4 edits
    41 deletes in trunk/BugsSite

Removed temp files and added appropriate svn:ignore properties.

Rubber-stamped by Mark Rowe.

  • data: Added svn:ignore property for "versioncache" and "versioncache.*" files.
  • data/template: Added svn:ignore property for "template" subdirectory.
  • data/template/template: Removed precompiled template subdirectory.
  • data/versioncache: Removed.
  • data/versioncache.*: Removed backup versioncache files.
  • data/webdot: Added svn:ignore property for "*.dot" files.
  • data/webdot/*.dot: Removed cached webdot files.
7:29 PM Changeset in webkit [32600] by kevino@webkit.org
  • 2 edits in trunk/WebKitTools

Delete the DerivedSources after make clean has been done so that the DerivedSouces don't get re-created. Also, use the proper extension for the Win wxPython extension.

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

7:24 PM Changeset in webkit [32599] by mrowe@apple.com
  • 4 edits in trunk

Versioning.

7:23 PM Changeset in webkit [32598] by mrowe@apple.com
  • 1 copy in tags/Safari-6526.2

New tag.

6:56 PM Changeset in webkit [32597] by weinig@apple.com
  • 29 edits
    6 moves
    4 adds in trunk

WebCore:

2008-04-26 Adam Barth <hk9565@gmail.com>

Reviewed by Adam Roben and Sam Weinig.

Fixes bug http://bugs.webkit.org/show_bug.cgi?id=17331
Fixes bug http://bugs.webkit.org/show_bug.cgi?id=16848


Updates postMessage implementation to match HTML 5 specification:
1) Adds origin parameter to postMessage.
2) Removes domain and uri attributes of MessageEvent in favor of

origin attribute.

In order to do this correctly, we need to distinguish between hosts and domains
in the SecurityOrigin class. There are now three ways to compare security origins:
1) isSameSchemeHostPort compares scheme, host, and port, and is used for postMessage
2) equal compares all aspects of the security origin, and is used for hash keys
3) canAccess understands the semantics of schemes such as file:// and data:// URLs,

and should be used for scripting access checks.

Changed SecurityOrigin::toString() to generate identifiers that are suitable for
being used as a MessageEvent's origin property. In the future, they could be used
as database string identifiers as well. Re-used KURL parser to parse serialized
SecurityOrigins.

Collin Jackson <collinj-webkit@collinjackson.com> also contributed to this patch.


Tests: http/tests/security/postMessage/invalid-origin-throws-exception.html

http/tests/security/postMessage/javascript-page-still-sends-origin.html
http/tests/security/postMessage/origin-unaffected-by-base-tag.html
http/tests/security/postMessage/origin-unaffected-by-document-domain.html
http/tests/security/postMessage/target-origin.html

  • WebCore.base.exp:
  • bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::postMessage):
  • dom/Document.cpp: (WebCore::Document::domain):
  • dom/MessageEvent.cpp: (WebCore::MessageEvent::MessageEvent): (WebCore::MessageEvent::initMessageEvent):
  • dom/MessageEvent.h: (WebCore::MessageEvent::origin):
  • dom/MessageEvent.idl:
  • html/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::checkOrigin): (WebCore::CanvasRenderingContext2D::createPattern):
  • page/DOMWindow.cpp: (WebCore::DOMWindow::postMessage):
  • page/DOMWindow.h:
  • page/DOMWindow.idl:
  • platform/SecurityOrigin.cpp: (WebCore::SecurityOrigin::SecurityOrigin): (WebCore::SecurityOrigin::create): (WebCore::SecurityOrigin::createForFrame): (WebCore::SecurityOrigin::copy): (WebCore::SecurityOrigin::setDomainFromDOM): (WebCore::SecurityOrigin::canAccess): (WebCore::SecurityOrigin::isSecureTransitionTo): (WebCore::SecurityOrigin::toString): (WebCore::SecurityOrigin::createFromString): (WebCore::SecurityOrigin::createFromDatabaseIdentifier): (WebCore::SecurityOrigin::databaseIdentifier): (WebCore::SecurityOrigin::equal): (WebCore::SecurityOrigin::isSameSchemeHostPort):
  • platform/SecurityOrigin.h: (WebCore::SecurityOrigin::host): (WebCore::SecurityOrigin::domain):
  • platform/SecurityOriginHash.h: (WebCore::SecurityOriginTraits::deletedValue):
  • storage/DatabaseTracker.cpp: (WebCore::DatabaseTracker::hasEntryForDatabase): (WebCore::DatabaseTracker::originPath): (WebCore::DatabaseTracker::fullPathForDatabase): (WebCore::DatabaseTracker::populateOrigins): (WebCore::DatabaseTracker::databaseNamesForOrigin): (WebCore::DatabaseTracker::detailsForNameAndOrigin): (WebCore::DatabaseTracker::setDatabaseDetails): (WebCore::DatabaseTracker::setQuota): (WebCore::DatabaseTracker::addDatabase): (WebCore::DatabaseTracker::deleteOrigin): (WebCore::DatabaseTracker::deleteDatabase):

WebKit/mac:

2008-04-20 Adam Barth <hk9565@gmail.com>

Reviewed by Adam Roben and Sam Weinig.

Updated WebSecurityOrigin to match new SecurityOrigin API.

Collin Jackson <collinj-webkit@collinjackson.com> also contributed to this patch.

  • Storage/WebSecurityOrigin.mm: (-[WebSecurityOrigin host]): (-[WebSecurityOrigin domain]):
  • Storage/WebSecurityOriginPrivate.h:

WebKit/win:

2008-04-26 Adam Barth <hk9565@gmail.com>

Reviewed by Adam Roben and Sam Weinig.

Renamed "domain" method to "host" to match SecurityOrigin.

  • Interfaces/IWebSecurityOrigin.idl:
  • WebSecurityOrigin.cpp: (WebSecurityOrigin::host):
  • WebSecurityOrigin.h:

WebKitTools:

2008-04-26 Adam Barth <hk9565@gmail.com>

Reviewed by Adam Roben and Sam Weinig.

Updates LayoutTestController to use host instead of domain.

Collin Jackson <collinj-webkit@collinjackson.com> also contributed to this patch.

  • DumpRenderTree/mac/LayoutTestControllerMac.mm: (LayoutTestController::setDatabaseQuota):
  • DumpRenderTree/mac/UIDelegate.mm: (-[UIDelegate webView:frame:exceededDatabaseQuotaForSecurityOrigin:database:]):

LayoutTests:

2008-04-26 Adam Barth <hk9565@gmail.com>

Reviewed by Adam Roben and Sam Weinig.

Update LayoutTests for new postMessage API.

Collin Jackson <collinj-webkit@collinjackson.com> also contributed to this patch.

  • http/tests/security/postMessage/domain-and-uri-unaffected-by-base-tag-expected.txt: Removed.
  • http/tests/security/postMessage/domain-and-uri-unaffected-by-base-tag.html: Removed.
  • http/tests/security/postMessage/domain-unaffected-by-document-domain-expected.txt: Removed.
  • http/tests/security/postMessage/domain-unaffected-by-document-domain.html: Removed.
  • http/tests/security/postMessage/invalid-origin-throws-exception-expected.txt: Added.
  • http/tests/security/postMessage/invalid-origin-throws-exception.html: Added.
  • http/tests/security/postMessage/javascript-page-still-sends-domain-expected.txt: Removed.
  • http/tests/security/postMessage/javascript-page-still-sends-domain.html: Removed.
  • http/tests/security/postMessage/javascript-page-still-sends-origin-expected.txt: Copied from LayoutTests/http/tests/security/postMessage/javascript-page-still-sends-domain-expected.txt.
  • http/tests/security/postMessage/javascript-page-still-sends-origin.html: Copied from LayoutTests/http/tests/security/postMessage/javascript-page-still-sends-domain.html.
  • http/tests/security/postMessage/origin-unaffected-by-base-tag-expected.txt: Copied from LayoutTests/http/tests/security/postMessage/domain-and-uri-unaffected-by-base-tag-expected.txt.
  • http/tests/security/postMessage/origin-unaffected-by-base-tag.html: Copied from LayoutTests/http/tests/security/postMessage/domain-and-uri-unaffected-by-base-tag.html.
  • http/tests/security/postMessage/origin-unaffected-by-document-domain-expected.txt: Copied from LayoutTests/http/tests/security/postMessage/domain-unaffected-by-document-domain-expected.txt.
  • http/tests/security/postMessage/origin-unaffected-by-document-domain.html: Copied from LayoutTests/http/tests/security/postMessage/domain-unaffected-by-document-domain.html.
  • http/tests/security/postMessage/target-origin-expected.txt: Added.
  • http/tests/security/postMessage/target-origin.html: Added.
6:52 PM Changeset in webkit [32596] by kevino@webkit.org
  • 4 edits in trunk

Another round of build fixes, hopefully the last this time.

5:35 PM Changeset in webkit [32595] by kevino@webkit.org
  • 2 edits in trunk/WebKitTools

Reviewed by Kevin Ollivier.

Allow the user to set the path to SWIG using an environment variable.

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

5:28 PM Changeset in webkit [32594] by kevino@webkit.org
  • 2 edits in trunk/WebCore

wx build fix. Add needed wx includes for compilation.
https://bugs.webkit.org/show_bug.cgi?id=18758

5:21 PM Changeset in webkit [32593] by kevino@webkit.org
  • 2 edits in trunk/WebKitTools

wx build fix. Download the latest libpng version for building the dependencies.

1:12 PM Changeset in webkit [32592] by mjs@apple.com
  • 5 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.


  • document all property getting, setting and deleting opcodes


(And fix function parameter names to match corresponding opcode parameter names.)

  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitResolve): (KJS::CodeGenerator::emitResolveBase): (KJS::CodeGenerator::emitResolveBaseAndProperty): (KJS::CodeGenerator::emitResolveBaseAndFunc): (KJS::CodeGenerator::emitGetPropId): (KJS::CodeGenerator::emitPutPropId): (KJS::CodeGenerator::emitDeletePropId): (KJS::CodeGenerator::emitPutPropVal):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::resolve): (KJS::resolveBase): (KJS::resolveBaseAndProperty): (KJS::resolveBaseAndFunc): (KJS::Machine::privateExecute):
  • kjs/nodes.cpp: (KJS::ResolveNode::emitCode): (KJS::ArrayNode::emitCode): (KJS::PropertyListNode::emitCode): (KJS::BracketAccessorNode::emitCode): (KJS::EvalFunctionCallNode::emitCode): (KJS::FunctionCallResolveNode::emitCode): (KJS::FunctionCallBracketNode::emitCode): (KJS::PostIncResolveNode::emitCode): (KJS::PostDecResolveNode::emitCode): (KJS::PostIncBracketNode::emitCode): (KJS::PostDecBracketNode::emitCode): (KJS::PostIncDotNode::emitCode): (KJS::PostDecDotNode::emitCode): (KJS::DeleteResolveNode::emitCode): (KJS::TypeOfResolveNode::emitCode): (KJS::PreIncResolveNode::emitCode): (KJS::PreDecResolveNode::emitCode): (KJS::PreIncBracketNode::emitCode): (KJS::PreDecBracketNode::emitCode): (KJS::AssignResolveNode::emitCode): (KJS::AssignDotNode::emitCode): (KJS::ReadModifyDotNode::emitCode): (KJS::AssignBracketNode::emitCode): (KJS::ReadModifyBracketNode::emitCode): (KJS::ConstDeclNode::emitCodeSingle):
9:41 AM Changeset in webkit [32591] by mitz@apple.com
  • 6 edits
    8 adds in trunk

WebCore:

2008-04-26 Anatoli Papirovski <apapirovski@mac.com>

Reviewed by Dave Hyatt.

Fix for https://bugs.webkit.org/show_bug.cgi?id=18583
WebKit should ignore declarations with a negative value for
line-height and font-size, including in the shorthand font form.

Tests: fast/css/font-size-negative.html

fast/css/line-height-negative.html

  • css/CSSParser.cpp: (WebCore::CSSParser::parseValue): (WebCore::CSSParser::parseFont):

LayoutTests:

2008-04-26 Anatoli Papirovski <apapirovski@mac.com>

Reviewed by Dave Hyatt.

Test for https://bugs.webkit.org/show_bug.cgi?id=18583
Negative values are invalid for font-size and line-height,
including in the shorthand "font".

  • fast/css/font-size-negative.html: Added.
  • fast/css/line-height-negative.html: Added.
  • platform/mac/css2.1/t100801-c548-ln-ht-02-b-ag-expected.checksum:
  • platform/mac/css2.1/t100801-c548-ln-ht-02-b-ag-expected.png:
  • platform/mac/css2.1/t100801-c548-ln-ht-02-b-ag-expected.txt:
  • platform/mac/fast/css/font-size-negative-expected.checksum: Added.
  • platform/mac/fast/css/font-size-negative-expected.png: Added.
  • platform/mac/fast/css/font-size-negative-expected.txt: Added.
  • platform/mac/fast/css/line-height-negative-expected.checksum: Added.
  • platform/mac/fast/css/line-height-negative-expected.png: Added.
  • platform/mac/fast/css/line-height-negative-expected.txt: Added.
2:07 AM Changeset in webkit [32590] by oliver@apple.com
  • 9 edits
    2 adds in branches/squirrelfish

Bug 18628: SQUIRRELFISH: need to support recursion limit
<https://bugs.webkit.org/show_bug.cgi?id=18628>

Reviewed by Maciej.

Basically completes recursion limiting. There is still some
tuning we may want to do to make things better in the face of
very bad code, but certainly nothing worse than anything already
possible in trunk.

Also fixes a WebKit test by fixing the exception text :D

2:07 AM Changeset in webkit [32589] by oliver@apple.com
  • 1 edit in branches/squirrelfish/JavaScriptCore/ChangeLog

Fix the changelog

Apr 25, 2008:

8:28 PM Changeset in webkit [32588] by mrowe@apple.com
  • 2 edits in trunk/JavaScriptGlue

<rdar://problem/5891264> Don't install the JavaScriptGlue headers

Reviewed by Adele Peterson.

7:02 PM Changeset in webkit [32587] by weinig@apple.com
  • 11 edits
    1 delete in trunk/JavaScriptCore

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

Rubber-stamped by Mark Rowe.

Remove SavedBuiltins and SavedProperties classes and the methods used to
save data to them. The CachedPage now stores a the JSGlobalObject in full.

  • JavaScriptCore.exp:
  • JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • kjs/JSGlobalObject.cpp:
  • kjs/JSGlobalObject.h:
  • kjs/JSVariableObject.cpp:
  • kjs/JSVariableObject.h: (KJS::JSVariableObject::localStorage):
  • kjs/SavedBuiltins.h: Removed.
  • kjs/object.h:
  • kjs/property_map.cpp:
  • kjs/property_map.h:
5:55 PM Changeset in webkit [32586] by andersca@apple.com
  • 3 edits
    2 adds in trunk/WebCore

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

Reviewed by Sam.

Add empty ApplicationCacheStorage class.


  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • loader/appcache/ApplicationCacheStorage.cpp: Added. (WebCore::cacheStorage):
  • loader/appcache/ApplicationCacheStorage.h: Added.
5:45 PM Changeset in webkit [32585] by weinig@apple.com
  • 7 edits in trunk/WebCore

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

Reviewed by Geoffrey Garen.

Replace the JSDOMWindow with a new one instead of clearing it.

  • bindings/js/JSDOMWindowBase.cpp: (WebCore::JSDOMWindowBase::clear): Don't reset the window.
  • bindings/js/kjs_proxy.cpp: (WebCore::KJSProxy::clear): Replace the current JSDOMWindow stored in the wrapper window with a new one.
  • history/CachedPage.cpp: (WebCore::CachedPage::CachedPage): (WebCore::CachedPage::restore): (WebCore::CachedPage::clear):
  • history/CachedPage.h: Instead of storing the builtins, properties and localstorage in special holding structs, store the entire JSDOMWindow.

For the case of a page that has no JSDOMWindow before it's first
navigation, has one created while it is in the cache and is then
navigated back, create a new JSDOMWindow to keep the assumption
in JSDOMWindowWrapper that it always has the correct window.

  • loader/FrameLoader.cpp: (WebCore::FrameLoader::clear): We must clear the DOMWindow first, so that we create a new JSDOMWindow, it gets a new one.
  • page/Frame.cpp: (WebCore::Frame::clearDOMWindow): Null out the domWindow so that on the next access, a new one is created.
5:08 PM Changeset in webkit [32584] by weinig@apple.com
  • 7 edits in trunk/WebCore

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

Reviewed by Mark Rowe.

The EventListeners need to operate and store JSDOMWindows, not JSDOMWrapperWindows.

  • bindings/js/JSDOMWindowBase.cpp: (WebCore::JSDOMWindowBase::~JSDOMWindowBase): (WebCore::JSDOMWindowBase::findOrCreateJSEventListener): (WebCore::JSDOMWindowBase::findOrCreateJSUnprotectedEventListener):
  • bindings/js/JSSVGLazyEventListener.cpp: (WebCore::JSSVGLazyEventListener::JSSVGLazyEventListener):
  • bindings/js/JSSVGLazyEventListener.h:
  • bindings/js/kjs_events.cpp: (WebCore::JSAbstractEventListener::handleEvent): (WebCore::JSUnprotectedEventListener::JSUnprotectedEventListener): (WebCore::JSUnprotectedEventListener::~JSUnprotectedEventListener): (WebCore::JSUnprotectedEventListener::window): (WebCore::JSUnprotectedEventListener::clearWindow): (WebCore::JSEventListener::JSEventListener): (WebCore::JSEventListener::~JSEventListener): (WebCore::JSEventListener::window): (WebCore::JSEventListener::clearWindow): (WebCore::JSLazyEventListener::JSLazyEventListener): (WebCore::JSLazyEventListener::parseCode):
  • bindings/js/kjs_events.h:
  • bindings/js/kjs_proxy.cpp: (WebCore::KJSProxy::createHTMLEventHandler): (WebCore::KJSProxy::createSVGEventHandler):
5:03 PM Changeset in webkit [32583] by mrowe@apple.com
  • 8 edits in trunk

Add some content to an empty ICU header file to prevent verification errors.

Rubber-stamped by Sam Weinig.

4:38 PM Changeset in webkit [32582] by andersca@apple.com
  • 2 edits in trunk/WebCore

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

Fix tyop.


  • loader/DocumentLoader.cpp: (WebCore::DocumentLoader::scheduleApplicationCacheLoad):
4:36 PM Changeset in webkit [32581] by andersca@apple.com
  • 12 edits in trunk

WebCore:

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

Reviewed by Sam.

Add and honor offlineWebApplicationCacheEnabled setting.


  • WebCore.base.exp:
  • loader/DocumentLoader.cpp: (WebCore::DocumentLoader::scheduleApplicationCacheLoad):
  • loader/MainResourceLoader.cpp: (WebCore::MainResourceLoader::load):
  • loader/appcache/ApplicationCacheGroup.cpp: (WebCore::ApplicationCacheGroup::selectCache): (WebCore::ApplicationCacheGroup::selectCacheWithoutManifestURL):
  • page/Settings.cpp: (WebCore::Settings::Settings): (WebCore::Settings::setOfflineWebApplicationCacheEnabled):
  • page/Settings.h: (WebCore::Settings::offlineWebApplicationCacheEnabled):

WebKit/mac:

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

Reviewed by Sam.

Add offlineWebApplicationCacheEnabled preference.


  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.m: (+[WebPreferences initialize]): (-[WebPreferences offlineWebApplicationCacheEnabled]): (-[WebPreferences setOfflineWebApplicationCacheEnabled:]):
  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm: (-[WebView _updateSettingsFromPreferences:]):
3:44 PM Changeset in webkit [32580] by mrowe@apple.com
  • 98 edits in trunk/WebKitSite

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

Upgrade to WordPress 2.5.1. Another day, another security vulnerability in WordPress.

  • blog:
3:41 PM Changeset in webkit [32579] by oliver@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

Bug 18736: SQUIRRELFISH: switch statements with no default have incorrect codegen
<https://bugs.webkit.org/show_bug.cgi?id=18736>

Reviewed by Geoff

Put a limit on the level of reentry recursion. 128 levels of re-entrant recursion
seems reasonable as it is greater than the old eval limit, and a long way short of
the reentry depth needed to overflow the stack.

2:44 PM Changeset in webkit [32578] by ddkilzer@apple.com
  • 2 edits in trunk/JavaScriptCore

<rdar://problem/5819422> REGRESSION: Wrong line number passed to -willLeaveCallFrame

Patch by George Dicker and Michael Kahl. Reviewed by Darin.

When -[NSObject(WebScriptDebugDelegate) webView:willLeaveCallFrame:sourceId:line:forWebFrame:]
is invoked, the first line number of the function is returned instead of the last
line number. This regressed in r28458.

  • kjs/nodes.cpp: (KJS::FunctionBodyNodeWithDebuggerHooks::execute): Pass lastLine() instead of lineNo() when calling Debugger::returnEvent().
2:11 PM Changeset in webkit [32577] by andersca@apple.com
  • 2 edits in trunk/WebCore

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

Reviewed by Adam.

<rdar://problem/5629139>
PluginInfoStoreWin needs to implement pluginNameForMIMEType().


  • plugins/PluginInfoStore.cpp: (WebCore::PluginInfoStore::pluginNameForMIMEType):
1:09 PM Changeset in webkit [32576] by andersca@apple.com
  • 2 edits in trunk/WebKit/win

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

Reviewed by Adam.

Fix internal debug build.


  • WebKit.vcproj/WebKit.vcproj:
11:11 AM Changeset in webkit [32575] by ggaren@apple.com
  • 5 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam Weinig.


A tiny bit of cleanup to the regexp code.


Removed some static_cast.


Removed createRegExpImp because it's no longer used.

11:00 AM SquirrelFish edited by ggaren@apple.com
(diff)
10:02 AM Changeset in webkit [32574] by Darin Adler
  • 2 edits in trunk/JavaScriptCore

2008-04-25 Darin Adler <Darin Adler>

Done with Stephanie Lewis.

  • JavaScriptCore.xcodeproj/project.pbxproj: Prepare for compilation with gcc 4.2 by adding -fno-strict-aliasing to CollatorICU.cpp.
7:43 AM Changeset in webkit [32573] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Benjamin Meyer <bmeyer@trolltech.com>

Fixed focus handling when a node is focused while the corresponding QWebPage does not have the focus.

  • Correctly de- and reactivate the focused frame in focusOut/focusInEvent without telling the focus controller. We don't want to change the focused frame
    • the controller has to remember it in fact - but instead just deactivate the frame for correct painting as RenderTheme::isFocused() uses the activation state of the frame.
5:37 AM Changeset in webkit [32572] by Simon Hausmann
  • 2 edits in trunk/WebCore

Tor Arne Vestbø <tavestbo@trolltech.com>

Respect antialiasing hint when drawing focus rects.

5:37 AM Changeset in webkit [32571] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Kavindra Devi Palaraja <kdpalara@trolltech.com>

completed documentation for the Detailed Description section for QWebView

5:37 AM Changeset in webkit [32570] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Denis Dzyubenko <denis.dzyubenko@trolltech.com>

Fixed the way QWebHistory works - when you call back(), forward() or goToItem() functions it changes the current item in history *and* loads the corresponding page.

5:36 AM Changeset in webkit [32569] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Tor Arne Vestbø <tavestbo@trolltech.com>

Fix resubmit of HTML forms when initially denied by QWebPage::acceptNavigationRequest().

3:49 AM Changeset in webkit [32568] by Simon Hausmann
  • 4 edits in trunk/WebKit/qt

Simon Hausmann <Simon Hausmann>

When pressing backspace in a line edit in a webpage we should not go back to the previous page.

The shortcut for back on Windows is backspace. Implemented shortcut override
handling in QWebView/QWebPage to prevent this.

3:49 AM Changeset in webkit [32567] by Simon Hausmann
  • 3 edits in trunk/WebKit/qt

Ariya Hidayat <ariya.hidayat@trolltech.com>

Fix triple-clicking does not work in a web page

3:49 AM Changeset in webkit [32566] by Simon Hausmann
  • 2 edits in trunk/WebCore

Holger Hans Peter Freyther <zecke@selfish.org>

networking: Use Qt::QueuedConnection in QNetworkReplyHandler

Make sure we leave the networking backend before calling
into WebCore. Otheriwse we might return to the networking
backend when it is already deleted.

3:49 AM Changeset in webkit [32565] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Benjamin Meyer <bmeyer@trolltech.com>

When pressing Ctrl-Up the keyboard modifiers could include other modifiers

3:48 AM Changeset in webkit [32564] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Tor Arne Vestbø <tavestbo@trolltech.com>

Fix handling of Javascript's confirm() function in QtWebKit.

3:41 AM Changeset in webkit [32563] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Kavindra Devi Palaraja <kdpalara@trolltech.com>

Doc - added a screenshot, flowchart, and a snippet to the QWebView documentation to improve clarity

3:32 AM Changeset in webkit [32562] by Simon Hausmann
  • 4 edits in trunk/WebKit/qt

Benjamin Meyer <bmeyer@trolltech.com>

QWebPage: missing signal when window.print() is requested from javascript

3:32 AM Changeset in webkit [32561] by Simon Hausmann
  • 2 edits in trunk/WebCore

Tor Arne Vestbø <tavestbo@trolltech.com>

Fix propagation of mouse double click events.

Treat a mouse double click as a regular mouse press with just a different click count.

3:32 AM Changeset in webkit [32560] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Benjamin Meyer <bmeyer@trolltech.com>

Fixes: "Save Image" action wasn't doing anything.

3:31 AM Changeset in webkit [32559] by Simon Hausmann
  • 3 edits in trunk/WebCore

Tor Arne Vestbø <tavestbo@trolltech.com>

Fixes: Fix strange button sizes (push, radio, and check) in QtWebKit.

We now use pixel metrics instead of fixed sizes for the
button margins, or if the style supports layout rects we
use the delta between the content rect and the layout rect.

In adition we compensate for the difference between the size
for content and the actual layout rect (if supported) by
reporting back the layout rect to WebKit for page layout,
and then inflating the rect we actually paint to.

3:31 AM Changeset in webkit [32558] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Benjamin Meyer <bmeyer@trolltech.com>

Apply key event changes to the current frame, not the main frame.

Example: hitting space bar should scroll current frame, not the main frame
which doesn't even have a scrollbar.

3:00 AM Changeset in webkit [32557] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Benjamin Meyer <bmeyer@trolltech.com>

Fixes: QWebFrame crash when fetching the icon

Just call QWebSettings::iconForUrl to not duplicate code and obey the mutex lock.

2:59 AM Changeset in webkit [32556] by Simon Hausmann
  • 2 edits in trunk/WebCore

Benjamin Meyer <bmeyer@trolltech.com>

Fixes: Valgrind warnings about uninitilized variables used in jumps

2:59 AM Changeset in webkit [32555] by Simon Hausmann
  • 4 edits in trunk

Warwick Allison <warwick@trolltech.com>

Fixes: Scrollbars did not report correct maximum.

2:59 AM Changeset in webkit [32554] by Simon Hausmann
  • 3 edits in trunk/WebCore

Benjamin Meyer <bmeyer@trolltech.com>

Implement NoDrop, ZoomIn, and ZoomOut cursors

2:01 AM Changeset in webkit [32553] by Simon Hausmann
  • 2 edits in trunk/WebCore

Holger Hans Peter Freyther <zecke@selfish.org>

Handle the ListboxAppearance as 'TextField' as well. We are mainly interested in the background.

RenderBox will call us to paint the outline/background, it is handled the same as a
TextAreaAppearance in RenderTheme, handle it the same in the RenderThemeQt

2:01 AM Changeset in webkit [32552] by Simon Hausmann
  • 2 edits in trunk/WebCore

Holger Hans Peter Freyther <zecke@selfish.org>

No reason to exit the application when we can not paint something. Replace the Q_ASSERT
with a runtime check. Return true to indicate that we did not handle the painting
of this element.

2:01 AM Changeset in webkit [32551] by Simon Hausmann
  • 2 edits in trunk/WebCore

Holger Hans Peter Freyther <zecke@selfish.org>

Correct the comment. We are in painTextField and don't paint a button.

2:00 AM Changeset in webkit [32550] by Simon Hausmann
  • 2 edits in trunk/WebCore

Holger Hans Peter Freyther <zecke@selfish.org>

Allow ListboxAppearance to take focus as well. Stolen from Tor Arne

2:00 AM Changeset in webkit [32549] by Simon Hausmann
  • 2 edits in trunk/LayoutTests

Holger Hans Peter Freyther <zecke@selfish.org>

Do not execute most of the http tests as they hang or crash.

2:00 AM Changeset in webkit [32548] by Simon Hausmann
  • 2 edits in trunk/WebCore

Simon Hausmann <Simon Hausmann>

Remove debug output.

1:28 AM Changeset in webkit [32547] by oliver@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

Bug 18736: SQUIRRELFISH: switch statements with no default have incorrect codegen
<https://bugs.webkit.org/show_bug.cgi?id=18736>

Reviewed by Maciej

Ensure the "default" target is correct in the absence of an explicit default handler.

1:10 AM Changeset in webkit [32546] by Simon Hausmann
  • 5 edits in trunk/WebKit/qt

David Boddie <dboddie@trolltech.com>

Documentation updates for some of the QWeb classes

1:09 AM Changeset in webkit [32545] by oliver@apple.com
  • 1 edit in branches/squirrelfish/JavaScriptCore/ChangeLog

Fixing the ChangeLog

1:08 AM Changeset in webkit [32544] by oliver@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

Bug 18732: SQUIRRELFISH: exceptions thrown by native constructors are ignored
<https://bugs.webkit.org/show_bug.cgi?id=18732>

Reviewed by Maciej

More bounds checking.

12:53 AM Changeset in webkit [32543] by Simon Hausmann
  • 5 edits in trunk

Holger Hans Peter Freyther <zecke@selfish.org>

Implement dumping of resource load callbacks to pass http/tests/xmlhttprequest/abort-should-cancel-load.html

Similar to Editing and Frameloading we do the dumping within WebCore

12:52 AM Changeset in webkit [32542] by Simon Hausmann
  • 2 edits in trunk/WebCore

Holger Hans Peter Freyther <zecke@selfish.org>

Change the string to match the mac and pass http/tests/misc/isindex-formdata.html

12:52 AM Changeset in webkit [32541] by Simon Hausmann
  • 2 edits in trunk/WebCore

Simon Hausmann <Simon Hausmann>

When we encounter a new/unknown HTTP request type report it back to WebCore as loading error.

12:51 AM Changeset in webkit [32540] by mjs@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.


  • fix signal catching magic


The signal handlers are restored to _exit but are only set when
running under run-javascriptcore-tests. fprintf from a signal
handler is not safe.

  • kjs/testkjs.cpp: (main): (parseArguments):
  • tests/mozilla/jsDriver.pl:
12:44 AM Changeset in webkit [32539] by Simon Hausmann
  • 2 edits in trunk/WebCore

Benjamin Meyer <bmeyer@trolltech.com>

Fix crash in the networking layer.

Set the m_reply to null right after calling deleteLater().

12:27 AM Changeset in webkit [32538] by mjs@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej.

Bug 18732: SQUIRRELFISH: exceptions thrown by native constructors are ignored
<https://bugs.webkit.org/show_bug.cgi?id=18732>

Fixes another regression test.

  • VM/Machine.cpp: (KJS::Machine::privateExecute):
12:24 AM Changeset in webkit [32537] by mjs@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej.

Bug 18728: SQUIRRELFISH: invalid regular expression constants should throw exceptions
<https://bugs.webkit.org/show_bug.cgi?id=18728>

Fixes another regression test.

  • kjs/nodes.cpp: (KJS::RegExpNode::emitCode):

Apr 24, 2008:

11:45 PM Changeset in webkit [32536] by ggaren@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoffrey Garen.

Bug 18735: SQUIRRELFISH: closures are sometimes given an incorrect 'this' value when called
<https://bugs.webkit.org/show_bug.cgi?id=18735>

The overloaded toThisObject method was not copied over to JSActivation.

Fixes two regression tests.

  • kjs/JSActivation.cpp: (KJS::JSActivation::toThisObject):
  • kjs/JSActivation.h:
11:44 PM Changeset in webkit [32535] by ggaren@apple.com
  • 5 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.


Added support for arguments.callee.

11:42 PM Changeset in webkit [32534] by mrowe@apple.com
  • 2 edits in trunk/WebCore

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

Rubber-stamped by Oliver Hunt.

  • WebCore.base.exp: Remove two symbols from the export list that don't need to be exported.
10:00 PM Changeset in webkit [32533] by oliver@apple.com
  • 6 edits in branches/squirrelfish/JavaScriptCore

Bug 18628: SQUIRRELFISH: need to support recursion limit
<https://bugs.webkit.org/show_bug.cgi?id=18628>

Reviewed by Maciej

Partial fix -- this gets us some of the required bounds checking, but not
complete coverage. But it does manage to do them without regressing :D

9:04 PM Changeset in webkit [32532] by mitz@apple.com
  • 3 edits
    2 adds in trunk

WebCore:

Reviewed by Dave Hyatt.

Test: fast/dynamic/float-remove-above-line.html

  • rendering/bidi.cpp: (WebCore::RenderBlock::layoutInlineChildren): Avoid adding floats that do not intrude into the line to its floats vector. When such floats go away, they do not dirty the line (because they do not intersect with it) and having it keep them in its floats vector is what caused the crash.

LayoutTests:

Reviewed by Dave Hyatt.

  • fast/dynamic/float-remove-above-line-expected.txt: Added.
  • fast/dynamic/float-remove-above-line.html: Added.
7:04 PM Changeset in webkit [32531] by justin.garcia@apple.com
  • 2 edits in trunk/WebCore

2008-04-24 Justin Garcia <justin.garcia@apple.com>

Reviewed by John Sullivan.


It is possible, despite our safeguards, for createMarkup to iterate past the end of the Range
that is passed to it. Added a null check to prevent crashes in this situation (we won't crash but
we will create too much markup), and added an ASSERT to hopefully catch the scenario in a debugger
and help us understand what's going on.

  • editing/markup.cpp: (WebCore::createMarkup):
6:29 PM Changeset in webkit [32530] by mrowe@apple.com
  • 11 edits in trunk

Remove code for calculating the glyph cache size.

Reviewed by Sam Weinig.

WebCore:

  • WebCore.base.exp: Remove unused symbol.
  • platform/graphics/mac/FontCacheMac.mm: Remove code that is unused now that we do not compute the glyph cache size.
  • platform/mac/WebCoreSystemInterface.h: Remove unused symbol.
  • platform/mac/WebCoreSystemInterface.mm: Ditto.

WebKit:

  • WebCoreSupport/WebSystemInterface.m:

(InitWebCoreSystemInterface): Remove unused symbol.

WebKitSystemInterface:

  • WebKitSystemInterface.h: Remove unused symbol.
  • libWebKitSystemInterfaceLeopard.a:
  • libWebKitSystemInterfaceTiger.a:
6:29 PM Changeset in webkit [32529] by mrowe@apple.com
  • 4 edits in trunk

Add a definition of BUILDING_ON_LEOPARD to complement BUILDING_ON_TIGER.

Reviewed by Sam Weinig.

5:58 PM Changeset in webkit [32528] by mrowe@apple.com
  • 3 edits
    3 adds in trunk

2008-04-24 Cameron McCormack <cam@mcc.id.au>

Reviewed by Maciej Stachowiak.

Ensure that changes to rx="" and ry="" attributes on an SVG <rect>
element cause a relayout.

Test: svg/dom/SVGRectElement/rect-modify-rx.svg

  • svg/SVGRectElement.cpp: (WebCore::SVGRectElement::svgAttributeChanged): Call needsLayout() when the attribute is rx or ry. (WebCore::SVGRectElement::hasRelativeValues): Return true when the attribute is rx or ry, since they also can have relative values.

2008-04-24 Cameron McCormack <cam@mcc.id.au>

Reviewed by Maciej Stachowiak.

Test for:
http://bugs.webkit.org/show_bug.cgi?id=18328
Modifying rx="" or ry="" on a <rect> doesn't relayout

  • svg/dom/SVGRectElement: Added.
  • svg/dom/SVGRectElement/rect-modify-rx-expected.txt: Added.
  • svg/dom/SVGRectElement/rect-modify-rx.svg: Added.
5:50 PM Changeset in webkit [32527] by mrowe@apple.com
  • 2 edits in trunk/WebKitTools

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

Reviewed by Maciej Stachowiak.

http://bugs.webkit.org/show_bug.cgi?id=18485
Typo and documentation fix for build-webkit

  • Scripts/build-webkit:
5:47 PM Changeset in webkit [32526] by mrowe@apple.com
  • 5 edits in trunk

2008-04-24 Adam Barth <hk9565@gmail.com>

Reviewed by Sam Weinig.

Update the XMLHttpRequest header black list to match the spec.

  • xml/XMLHttpRequest.cpp: (WebCore::isSafeRequestHeader):

2008-04-24 Adam Barth <hk9565@gmail.com>

Reviewed by Sam Weinig.

Test that we block headers beginning with "Sec-" as per spec.

  • http/tests/xmlhttprequest/set-dangerous-headers-expected.txt:
  • http/tests/xmlhttprequest/set-dangerous-headers.html:
5:47 PM Changeset in webkit [32525] by mrowe@apple.com
  • 3 edits
    2 adds in trunk

2008-04-22 Feng Qian <ian.eng.webkit@gmail.com>

Reviewed by Geoff Garen.

Fix https://bugs.webkit.org/show_bug.cgi?id=18677
Bug 18677: Synchronous event dispatch confuses the popup blocker into incorrectly blocking chat popups in gmail.com.

Test: fast/events/nested-window-event.html

  • bindings/js/kjs_events.cpp: (WebCore::JSAbstractEventListener::handleEvent): Save and restore the current event around the event dispatch.

2008-04-22 Feng Qian <ian.eng.webkit@gmail.com>

Reviewed by Geoff Garen.

Test for nested event handlers.

  • fast/events/nested-window-event-expected.txt: Added.
  • fast/events/nested-window-event.html: Added.
5:26 PM Changeset in webkit [32524] by beidson@apple.com
  • 6 edits in trunk/WebCore

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

Reviewed by Teh Mitzpettel

Make it so PageGroups know what their own name is.

  • WebCore.base.exp:
  • page/Page.cpp: (WebCore::Page::setGroupName): (WebCore::Page::groupName):
  • page/Page.h:
  • page/PageGroup.cpp: Move the PageGroupMap into the PageGroup class. (WebCore::PageGroup::PageGroup): Added a c'tor that takes the group name as an argument instead of the initial Page. (WebCore::PageGroup::pageGroup): Handles creating and mapping names to groups
  • page/PageGroup.h: (WebCore::PageGroup::name):
4:20 PM Changeset in webkit [32523] by mitz@apple.com
  • 4 edits in trunk/WebKit

WebKit/gtk:

  • build fix
  • webkit/webkitwebview.cpp:

WebKit/win:

  • build fix
  • WebView.cpp: (WebView::handleContextMenuEvent):
4:18 PM Changeset in webkit [32522] by ggaren@apple.com
  • 1 edit in branches/squirrelfish/JavaScriptCore/ChangeLog

Fixed up ChangeLog

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

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

Reviewed by Oliver.

Bug 18717: SQUIRRELFISH: eval returns the wrong value for a variable declaration statement
<https://bugs.webkit.org/show_bug.cgi?id=18717>

Fixes a regression test, but exposes the failure of another due to the
lack of getters and setters.

  • kjs/nodes.cpp: (KJS::ConstDeclNode::emitCodeSingle): (KJS::ConstDeclNode::emitCode): (KJS::ConstStatementNode::emitCode): (KJS::VarStatementNode::emitCode):
  • kjs/nodes.h:
3:58 PM Changeset in webkit [32520] by oliver@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Oliver.

Bug 18717: SQUIRRELFISH: eval returns the wrong value for a variable declaration statement
<https://bugs.webkit.org/show_bug.cgi?id=18717>

Fixes a regression test, but exposes the failure of another due to the
lack of getters and setters.

3:56 PM Changeset in webkit [32519] by adele@apple.com
  • 5 edits in trunk/WebCore

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

Reviewed by Darin.

Consolidate two versions of pathGetFileName.

  • html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::formData): Call FileSystem.h version of pathGetFileName and removed the static helper function.
  • platform/posix/FileSystemPOSIX.cpp: (WebCore::pathGetFileName): Moved general case from HTMLFormElement version here. If other platforms relied on that default they should implement this function for their platform specific version of FileSystem.cpp
  • platform/win/FileSystemWin.cpp: (WebCore::pathGetFileName): Moved win implementation from HTMLFormElement here.
  • platform/wx/FileSystemWx.cpp: (WebCore::pathGetFileName): Moved wx implementation from HTMLFormElement here.
2:49 PM Changeset in webkit [32518] by beidson@apple.com
  • 2 edits in trunk/WebKit/mac

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

Reviewed by Darin

Fix layout test regressions from my earlier preferences/settings tweak.

  • WebView/WebView.mm: (-[WebView _commonInitializationWithFrameName:groupName:]): Even if we're not posting the notification to update the settings, each WebView still needs to register for the notification - restore that behavior.
2:45 PM Changeset in webkit [32517] by andersca@apple.com
  • 2 edits in trunk/WebCore

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

Windows build fix.


  • html/HTMLFormElement.cpp: (WebCore::pathGetFilename):
12:43 PM Changeset in webkit [32516] by hyatt@apple.com
  • 1 add in trunk/WebKitSite/blog-files/kate-circle.png

Add svg mask example.

12:42 PM Changeset in webkit [32515] by hyatt@apple.com
  • 1 add in trunk/WebKitSite/blog-files/circle.svg

Add svg file of a circle.

12:26 PM Changeset in webkit [32514] by hyatt@apple.com
  • 1 add in trunk/WebKitSite/blog-files/kate-gradient-rounded.png

Add more files.

12:21 PM Changeset in webkit [32513] by hyatt@apple.com
  • 1 add in trunk/WebKitSite/blog-files/kate-gradient.png

Add kate gradient pic.

12:16 PM Changeset in webkit [32512] by andersca@apple.com
  • 2 edits in trunk/WebKitTools

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

Reviewed by Sam.

Don't call fprintf from the signal handler.


  • DumpRenderTree/mac/DumpRenderTree.mm: (crashHandler):
12:16 PM Changeset in webkit [32511] by hyatt@apple.com
  • 1 edit in trunk/WebKitSite/blog-files/kate-vignette-mask.png

Adjust files.

12:15 PM Changeset in webkit [32510] by andersca@apple.com
  • 2 edits in trunk/WebCore

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

Don't crash when the string is empty.


  • html/HTMLMediaElement.cpp: (WebCore::parseTimeOffset):
12:12 PM Changeset in webkit [32509] by hyatt@apple.com
  • 1 add in trunk/WebKitSite/blog-files/kate-vignette-mask.png

Add more files.

12:09 PM Changeset in webkit [32508] by mitz@apple.com
  • 38 edits
    2 adds in trunk

WebCore:

Reviewed by Darin Adler.

The three main changes in this patch are:

1) Making all inline boxes know their bidi level, instead of just text

boxes knowing whether their bidi level is odd or even. This is
required for the next change.

2) Replacing RenderObject::inlineBox() with

Position::getInlineBoxAndOffset() in recognition of the fact that the
inline box containing the primary caret for a position in a given
node may belong to a different node's renderer.

3) Changing RenderObject::caretRect() to take an InlineBox parameter,

and changing callers to call VisiblePosition::caretRect(), which
locates the inline box, then calls caretRect() on the renderer for
that box. This, combined with the previous change, ensures that the
primary caret is rendered at the right place for positions that
lie on a directionality boundary.

Test: platform/mac/editing/input/caret-primary-bidi.html

  • WebCore.base.exp: Added the VisiblePosition(Node*, int, EAffinity) constructor and VisiblePosition::caretRect(), and sorted.
  • dom/Position.cpp: (WebCore::nextRenderedEditable): Adjusted for the removal of RenderObject::inlineBox(). (WebCore::previousRenderedEditable): Ditto. (WebCore::Position::rendersInDifferentPosition): Ditto. (WebCore::Position::getInlineBoxAndOffset): Added. Gets the inline box and the offset within that box at which the primary caret for this position should render.
  • dom/Position.h:
  • editing/DeleteSelectionCommand.cpp: (WebCore::DeleteSelectionCommand::mergeParagraphs): Changed to call VisiblePosition::caretRect() instead of calling the RenderObject method.
  • editing/SelectionController.cpp: (WebCore::caretY): Ditto. (WebCore::SelectionController::xPosForVerticalArrowNavigation): Ditto. (WebCore::SelectionController::layout): Ditto.
  • editing/VisiblePosition.cpp: (WebCore::VisiblePosition::caretRect): Changed to call getInlineBoxAndOffset() to get the correct inline box and call the renderer for that box.
  • editing/VisiblePosition.h: (WebCore::VisiblePosition::getInlineBoxAndOffset): Added convenience methods for getting the inline box and caret offset for a visible position, accounting for its affinity.
  • editing/visible_units.cpp: (WebCore::rootBoxForLine): Changed to use getInlineBoxAndOffset() instead of RenderObject::inlineBox(). (WebCore::startPositionForLine): (WebCore::endPositionForLine): (WebCore::previousLinePosition): Ditto. (WebCore::nextLinePosition): Ditto.
  • page/AccessibilityObject.cpp: (WebCore::updateAXLineStartForVisiblePosition): Ditto.
  • page/Frame.cpp: (WebCore::Frame::firstRectForRange): Ditto.
  • rendering/InlineBox.cpp: (WebCore::InlineBox::caretMinOffset): Changed to forward to the renderer. (WebCore::InlineBox::caretMaxOffset): Ditto.
  • rendering/InlineBox.h: Replaced the m_reversed bit, intended for use in InlineTextBox only, with six bits of the bidi level of the box, intended for use in all leaf inline boxes. (WebCore::InlineBox::InlineBox): Added missing initializer for m_dirOverride and initialized the bidi level. (WebCore::InlineBox::bidiLevel): Added this accessor. (WebCore::InlineBox::setBidiLevel): Ditto. (WebCore::InlineBox::direction): Ditto. (WebCore::InlineBox::caretLeftmostOffset): Added this convenience method. (WebCore::InlineBox::caretRightmostOffset): Ditto.
  • rendering/InlineTextBox.cpp: Replaced all references to m_reversed with checking of direction(). (WebCore::InlineTextBox::selectionRect): (WebCore::InlineTextBox::placeEllipsisBox): (WebCore::InlineTextBox::paint): (WebCore::InlineTextBox::paintSelection): (WebCore::InlineTextBox::paintCompositionBackground): (WebCore::InlineTextBox::paintSpellingOrGrammarMarker): (WebCore::InlineTextBox::paintTextMatchMarker): (WebCore::InlineTextBox::textPos): (WebCore::InlineTextBox::offsetForPosition): (WebCore::InlineTextBox::positionForOffset):
  • rendering/RenderBR.cpp: Removed inlineBox().
  • rendering/RenderBR.h: Ditto.
  • rendering/RenderBox.cpp: (WebCore::RenderBox::caretRect): Changed to take an inline box and account for the direction of the box (or the renderer) in positioning the caret: in right-to-left boxes, the "before" position is to the right while "after" is to the left.
  • rendering/RenderBox.h:
  • rendering/RenderFlow.cpp: (WebCore::RenderFlow::caretRect): Updated the signature.
  • rendering/RenderFlow.h:
  • rendering/RenderObject.cpp: (WebCore::RenderObject::caretRect): Updated the signature. (WebCore::RenderObject::caretMaxOffset): Changed to return the child node count (or 1 if there are no children) for replaced elements, such as <select>s.
  • rendering/RenderObject.h:
  • rendering/RenderReplaced.cpp: Removed caretMinOffset() and caretMaxOffset() because the base class implementation does the right thing for replaced objects now.
  • rendering/RenderReplaced.h:
  • rendering/RenderSVGInlineText.cpp: (WebCore::RenderSVGInlineText::caretRect): Updated the signature. (WebCore::RenderSVGInlineText::positionForCoordinates): Updated for the change from m_reversed to direction().
  • rendering/RenderSVGInlineText.h:
  • rendering/RenderText.cpp: (WebCore::RenderText::caretRect): Changed to take an inline box and removed the code that used to find the inline for the given position. Changed use of m_reversed to use direction(). (WebCore::RenderText::position): Changed use of m_reversed to use direction().
  • rendering/RenderText.h:
  • rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::textWithHardLineBreaks): Adjusted for the removal of RenderObject::inlineBox().
  • rendering/RenderTreeAsText.cpp: (WebCore::writeTextRun): Changed to use direction() instead of m_reversed.
  • rendering/SVGInlineTextBox.cpp: Ditto. (WebCore::SVGInlineTextBox::calculateGlyphBoundaries): (WebCore::SVGInlineTextBoxClosestCharacterToPositionWalker::chunkPortionCallback): (WebCore::SVGInlineTextBox::svgCharacterHitsPosition):
  • rendering/SVGRenderTreeAsText.cpp: Ditto. (WebCore::writeSVGInlineTextBox):
  • rendering/SVGRootInlineBox.cpp: Ditto. (WebCore::svgTextRunForInlineTextBox): (WebCore::cummulatedWidthOrHeightOfTextChunk): (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
  • rendering/bidi.cpp: (WebCore::RenderBlock::constructLine): Made this function set the bidi level on all leaf boxes.
  • svg/SVGTextContentElement.cpp: Changed to use direction() instead of m_reversed. (WebCore::cumulativeCharacterRangeLength): (WebCore::SVGInlineTextBoxQueryWalker::chunkPortionCallback):

WebKit/mac:

Reviewed by Darin Adler.

  • WebView/WebFrame.mm: (-[WebFrame _caretRectAtNode:offset:affinity:]): Changed to use VisiblePosition::caretRect() instead of the RenderObject method which was removed.

LayoutTests:

Reviewed by Darin Adler.

  • test the visual position of the primary caret in bidirectional text
  • platform/mac/editing/input/caret-primary-bidi-expected.txt: Added.
  • platform/mac/editing/input/caret-primary-bidi.html: Added.
12:09 PM Changeset in webkit [32507] by hyatt@apple.com
  • 1 add in trunk/WebKitSite/blog-files/kate.png

Check in kate image for blog post.

12:00 PM Changeset in webkit [32506] by hyatt@apple.com
  • 1 add in trunk/WebKitSite/blog-files/vignette-mask.png

Add blog files for mask post.

11:57 AM Changeset in webkit [32505] by beidson@apple.com
  • 4 edits in trunk/WebKit

../mac:

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

Reviewed by Darin

Rework the Settings population again.

  • WebView/WebView.mm: (-[WebView _updateSettingsFromPreferences:]): This method is called both from _preferencesChangedNotification and directly from WebView's common init function. (-[WebView _preferencesChangedNotification:]): (-[WebView _commonInitializationWithFrameName:groupName:]): Call _updateSettingsFromPreferences immediately after creating the new Page

../win:

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

Reviewed by Darin

Revert my previous change to WebKit/Win until I can make it act more like the new Mac code

  • WebView.cpp: (WebView::initWithFrame):
11:53 AM Changeset in webkit [32504] by weinig@apple.com
  • 2 edits in trunk/WebCore

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

Fix the world.

  • bindings/js/kjs_proxy.cpp: (WebCore::KJSProxy::clear):
11:51 AM Changeset in webkit [32503] by hyatt@apple.com
  • 1 add in trunk/WebKitSite/blog-files/maskspeedracer.png

Add blog images.

11:45 AM Changeset in webkit [32502] by weinig@apple.com
  • 2 edits in trunk/JavaScriptCore

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

Reviewed by Geoffrey Garen.

Add a #define to easily enable collecting on every allocation to aid
debugging GC bugs.

  • kjs/collector.cpp: (KJS::Collector::heapAllocate):
11:22 AM Changeset in webkit [32501] by ggaren@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam Weinig.


Print a CRASH statement when crashing, so test failures are not a
mystery.

  • kjs/testkjs.cpp: (handleCrash): (main):
10:54 AM Changeset in webkit [32500] by Darin Adler
  • 4 edits in trunk

WebCore:

2008-04-24 Darin Adler <Darin Adler>

Reviewed by Geoff.

  • fix crash in regression test where we'd ask a frame for a user agent string after the WebView was already closed
  • loader/FrameLoader.cpp: (WebCore::FrameLoader::scheduleHTTPRedirection): Quietly do nothing if this is called on a frame that's already detached from its page. (WebCore::FrameLoader::scheduleLocationChange): Ditto. (WebCore::FrameLoader::scheduleRefresh): Ditto. (WebCore::FrameLoader::scheduleHistoryNavigation): Ditto. (WebCore::FrameLoader::redirectionTimerFired): Assert that this is never called for a frame that's already detached from its page. (WebCore::FrameLoader::scheduleRedirection): Ditto. (WebCore::FrameLoader::startRedirectionTimer): Ditto.

WebKit/mac:

2008-04-24 Darin Adler <Darin Adler>

Reviewed by Geoff.

  • fix crash in regression test where we'd ask a frame for a user agent string after the WebView was already closed
  • WebCoreSupport/WebFrameLoaderClient.mm: (WebFrameLoaderClient::userAgent): Assert that the WebView is not nil. Also added some code to prevent the crash in release builds if this problem happens again.
10:50 AM Changeset in webkit [32499] by timothy@apple.com
  • 3 edits in trunk/WebCore

Add a new callFunction helper function to remove duplicate code
for calling JavaScript functions with arguments.

Reviewed by Darin Adler.

  • page/InspectorController.cpp:

(WebCore::InspectorController::callSimpleFunction): Call callFunction.
(WebCore::InspectorController::callFunction): Extended version of the original
callSimpleFunction, with script function arguments and an exception argument.
(WebCore::InspectorController::focusNode): Use callFunction.
(WebCore::InspectorController::addScriptResource): Ditto.
(WebCore::InspectorController::removeScriptResource): Ditto.
(WebCore::InspectorController::addDatabaseScriptResource): Ditto.
(WebCore::InspectorController::removeDatabaseScriptResource): Ditto.
(WebCore::InspectorController::addScriptConsoleMessage): Ditto.

  • page/InspectorController.h: Add callFunction.
10:45 AM Changeset in webkit [32498] by andersca@apple.com
  • 30 edits in trunk

WebCore:

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

Reviewed by Sam.

Change some String arguments to be const references instead.


  • css/CSSRule.cpp: (WebCore::CSSRule::setCssText):
  • css/CSSRule.h:
  • html/HTMLFormElement.cpp: (WebCore::pathGetFilename):
  • html/HTMLMediaElement.cpp: (WebCore::parseTimeOffset):
  • page/EditorClient.h:
  • platform/SecurityOrigin.cpp: (WebCore::isDefaultPortForProtocol):
  • platform/graphics/MediaPlayer.cpp: (WebCore::MediaPlayer::load):
  • platform/graphics/MediaPlayer.h:
  • rendering/MediaControlElements.cpp: (WebCore::MediaControlInputElement::MediaControlInputElement):
  • rendering/MediaControlElements.h:
  • svg/animation/SVGSMILElement.cpp: (WebCore::SVGSMILElement::Condition::Condition):
  • svg/animation/SVGSMILElement.h:
  • svg/graphics/SVGImageEmptyClients.h: (WebCore::SVGEmptyEditorClient::shouldInsertText):
  • xml/XSLTProcessor.cpp: (WebCore::createFragmentFromSource):

WebKit/gtk:

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

Reviewed by Sam.

Change some String arguments to be const references instead.

  • WebCoreSupport/EditorClientGtk.cpp: (WebKit::EditorClient::shouldInsertText):
  • WebCoreSupport/EditorClientGtk.h:

WebKit/mac:

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

Reviewed by Sam.

Change some String arguments to be const references instead.

  • WebCoreSupport/WebEditorClient.h:
  • WebCoreSupport/WebEditorClient.mm: (WebEditorClient::shouldInsertText):

WebKit/qt:

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

Reviewed by Sam.

Change some String arguments to be const references instead.

  • WebCoreSupport/EditorClientQt.cpp: (WebCore::EditorClientQt::shouldInsertText):
  • WebCoreSupport/EditorClientQt.h:

WebKit/win:

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

Reviewed by Sam.

Change some String arguments to be const references instead.

  • WebCoreSupport/WebEditorClient.cpp: (WebEditorClient::shouldInsertText):
  • WebCoreSupport/WebEditorClient.h:

WebKit/wx:

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

Reviewed by Sam.

Change some String arguments to be const references instead.

  • WebKitSupport/EditorClientWx.cpp: (WebCore::EditorClientWx::shouldInsertText):
  • WebKitSupport/EditorClientWx.h:
10:41 AM Changeset in webkit [32497] by justin.garcia@apple.com
  • 3 edits
    2 adds in trunk

WebCore:

2008-04-24 Justin Garcia <justin.garcia@apple.com>

Reviewed by Darin Adler.

<rdar://problem/5604313> FormatBlock to apply an h1 also inserts a style span around the first letter (16004)


  • editing/TextIterator.cpp: (WebCore::TextIterator::advance): We emit an extra newline when leaving a block element that has atypical margin/padding. When we emit the extra newline, it needs to be positioned after that block's contents, not after the block. This is how we position the first newline, too, since the range for emitted newlines should start where the line break begins visually.

LayoutTests:

2008-04-24 Justin Garcia <justin.garcia@apple.com>

Reviewed by Darin Adler.

<rdar://problem/5604313> FormatBlock leaves first letter incorrectly styled (16004)

  • editing/execCommand/5604313-expected.txt: Added.
  • editing/execCommand/5604313.html: Added.
10:25 AM Changeset in webkit [32496] by andersca@apple.com
  • 2 edits in trunk/WebCore

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

Reviewed by Adam.

Only avoid implicit entries when doing the initial caching.


  • loader/appcache/ApplicationCacheGroup.cpp: (WebCore::ApplicationCacheGroup::didReceiveResponse): (WebCore::ApplicationCacheGroup::startLoadingEntry):
10:20 AM Changeset in webkit [32495] by kmccullough@apple.com
  • 11 edits in trunk

JavaScriptCore:

2008-04-24 Kevin McCullough <kmccullough@apple.com>

Reviewed by Adam and Sam.

-<rdar://problem/5770054> JavaScript profiler (10928)
-Only profile the page group that starts profiling to avoid profiling
tools that shouldn't be profiled unless explicitly requested to.

  • JavaScriptCore.exp: Export new signature.
  • kjs/JSGlobalObject.cpp: Add unique identifiers to the JSGlobalObject. (KJS::JSGlobalObject::init):
  • kjs/JSGlobalObject.h: Ditto. (KJS::JSGlobalObject::setPageGroupIdentifier): (KJS::JSGlobalObject::pageGroupIdentifier):
  • profiler/Profiler.cpp: Check the identifier of the page group of the lexical global exec state and only profile if it matches the given page group identifier. (KJS::Profiler::startProfiling): (KJS::Profiler::willExecute): (KJS::Profiler::didExecute):
  • profiler/Profiler.h: Ditto. (KJS::Profiler::Profiler):

WebCore:

2008-04-24 Kevin McCullough <kmccullough@apple.com>

Reviewed by Adam and Sam.

-<rdar://problem/5770054> JavaScript profiler (10928)
-Only profile the page group that starts profiling to avoid profiling
tools that shouldn't be profiled unless explicitly requested to.

  • bindings/js/kjs_proxy.cpp: When a new global object is created set its page group identifier. (WebCore::KJSProxy::clear): (WebCore::KJSProxy::initScript):
  • page/Console.cpp: When calling console.profile set the identifier of the page group being profiled. (WebCore::Console::profile):
  • page/PageGroup.cpp: Implement unique identifiers. (WebCore::getUniqueIdentifier): (WebCore::PageGroup::PageGroup):
  • page/PageGroup.h: Ditto. (WebCore::PageGroup::identifier):
10:11 AM Changeset in webkit [32494] by ggaren@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoffrey Garen.

Bug 18716: SQUIRRELFISH: typeof should return undefined for an undefined variable reference
<https://bugs.webkit.org/show_bug.cgi?id=18716>

This fixes 2 more regression tests.

  • kjs/nodes.cpp: (KJS::TypeOfResolveNode::emitCode):
10:09 AM SquirrelFish edited by ggaren@apple.com
(diff)
10:05 AM Changeset in webkit [32493] by ggaren@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam Weinig.


Put the callee in the call frame.


Necessary in order to support "arguments" and "arguments.callee".

Also fixes a latent GC bug, where an executing function could be
subject to GC if the register holding it were overwritten. Here's
an example that would have caused problems:


function f()
{

Flood the machine stack to eliminate any old pointers to f.
g.call({});


Overwrite f in the register file.
f = 1;

Force a GC.
for (var i = 0; i < 5000; ++i) {

({});

}


Welcome to crash-ville.

}

function g()
{
}

f();

  • VM/Machine.h: Changed the order of arguments to execute(FunctionBodyNode*...) to match the other execute functions.
  • kjs/function.cpp: Updated to match new argument requirements from execute(FunctionBodyNode*...). Renamed newObj to thisObj to match the rest of JavaScriptCore.

SunSpider reports no change.

9:55 AM Changeset in webkit [32492] by sullivan@apple.com
  • 5 edits in trunk

WebCore:

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

Mac buid fix

  • page/mac/WebCoreViewFactory.h: add declarations of six new AX methods that were added to LocalizedStrings.h


  • platform/mac/LocalizedStringsMac.mm: (WebCore::AXButtonActionVerb): implement by calling through to WebCoreViewFactory as we do with the other functions here (WebCore::AXRadioButtonActionVerb): ditto (WebCore::AXTextFieldActionVerb): ditto (WebCore::AXCheckedCheckBoxActionVerb): ditto (WebCore::AXUncheckedCheckBoxActionVerb): ditto (WebCore::AXLinkActionVerb): ditto

WebKit/mac:

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

Mac build fix


  • WebCoreSupport/WebViewFactory.mm: (-[WebViewFactory AXButtonActionVerb]): implement this method using the text in WebCoreLocalizedStrings.cpp (-[WebViewFactory AXRadioButtonActionVerb]): ditto (-[WebViewFactory AXTextFieldActionVerb]): ditto (-[WebViewFactory AXCheckedCheckBoxActionVerb]): ditto (-[WebViewFactory AXUncheckedCheckBoxActionVerb]): ditto (-[WebViewFactory AXLinkActionVerb]): ditto
9:33 AM Changeset in webkit [32491] by beidson@apple.com
  • 4 edits in trunk/WebKit

../mac:

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

Reviewed by Sam Weinig

In some current work I noticed that when a new Page is created, it is possible that it requires info from its Settings
object before the Settings object is initialized. It seems quite prudent to post the preferences changed notification,
thereby populating the Settings object, immediately after the Page is created.

  • WebView/WebView.mm: (-[WebView _commonInitializationWithFrameName:groupName:]): Post the notification right after the Page is created

../win:

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

Reviewed by Sam Weinig

In some current work I noticed that when a new Page is created, it is possible that it requires info from its Settings
object before the Settings object is initialized. It seems quite prudent to post the preferences changed notification,
thereby populating the Settings object, immediately after the Page is created.

  • WebView.cpp: (WebView::initWithFrame): Post the notification right after the Page is created
8:23 AM Changeset in webkit [32490] by sullivan@apple.com
  • 2 edits in trunk/WebKit/mac

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

Reviewed by Jess


  • fixed <rdar://problem/5886655> JavaScript input panel automatic resizing doesn't work right with HiDPI
  • Misc/WebNSControlExtras.m: (-[NSControl sizeToFitAndAdjustWindowHeight]): deploy userSpaceScaleFactor when using view distances on the window
7:07 AM Changeset in webkit [32489] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Holger Hans Peter Freyther <zecke@selfish.org>

Cosmetic changes to make the code more readable.

-Early exit if we don't have a webview
-handle the empty tooltip and non-empty tooltip case separately

7:07 AM Changeset in webkit [32488] by Simon Hausmann
  • 2 edits in trunk/WebCore

Fix text rendering in -reverse mode on Qt/Mac.

For Font::width() don't use a plain QFontMetrics object but also the properly
setup QTextLayout that has the RTL/LTR force flags set.

7:06 AM Changeset in webkit [32487] by Simon Hausmann
  • 2 edits in trunk/WebCore

Tor Arne Vestbø <tavestbo@trolltech.com>

Don't do anti-aliasing for arcs, lines and rects, but continue to anti-alias
all drawing primitives in the HTML Canvas element.

This speeds up drawing of dashed outlines significantly.

Also preserve the anti-aliasing renderhint for transparency layers and
get rid of the mostly unused device pointer.

6:45 AM Changeset in webkit [32486] by Simon Hausmann
  • 4 edits in trunk/WebCore

Paul Olav Tvete <paul@trolltech.com>

Fix various compiler warnings related to QString(const char *)
construction by using QLatin1String.

6:44 AM Changeset in webkit [32485] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Paul Olav Tvete <paul@trolltech.com>

Automatically wrap tooltip text and hide a shown tooltip when it is empty.

QWidget::setTooltip("") will still show the old tooltip for up to 10 seconds.
Workaround as discussed with Matthias.

6:30 AM Changeset in webkit [32484] by Simon Hausmann
  • 2 edits in trunk/WebCore

Morten Johan Sørvig <msorvig@trolltech.com>

Work around QMacStyle bug in repainting the vertical scrollbar.

We draw the scrollbar using HITheme but somehow the translation and the
clipping we previously set using ClipCGContextToRegion is ignored. Drawing
without the translation fixes the clip.

4:20 AM Changeset in webkit [32483] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Holger Hans Peter Freyther <zecke@selfish.org>

Allow to disable caching completeley by calling setObjectCacheCapacities(0, 0, 0)

4:20 AM Changeset in webkit [32482] by Simon Hausmann
  • 3 edits in trunk/WebCore

Holger Hans Peter Freyther <zecke@selfish.org>

  • Set an expiration date for local files as we do not know what will happen to these files (in contrast to a http server with max-age and other headers)
  • Remember the time when we started the job and use that for the expiration date
  • QNetworkManager does not handle expiration at all, we might want to set the expiration for all downloads but this will be a performance nightmare.
4:16 AM Changeset in webkit [32481] by Simon Hausmann
  • 3 edits in trunk/WebCore

Fix the Gtk and Qt builds.

Added missing localization stubs for accessibility.

3:35 AM Changeset in webkit [32480] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Benjamin Meyer <bmeyer@trolltech.com>

Improve keyboard scrolling

Match Down/Up keys scroll distance with Safari (i.e. faster) and add Home and End shortcuts to scroll to the top/botom.

3:20 AM Changeset in webkit [32479] by Simon Hausmann
  • 9 edits in trunk

Olivier Goffart <ogoffart@trolltech.com>

Fix various compiler warnings in the Qt port.

3:20 AM Changeset in webkit [32478] by Simon Hausmann
  • 2 edits in trunk/WebCore

Andre Poenitz <andre.poenitz@trolltech.com>

Removed spurious QHideEvent forward declaration.

2:01 AM Changeset in webkit [32477] by jchaffraix@webkit.org
  • 2 edits
    1 add in trunk/JavaScriptCore

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

Reviewed by Simon.

Bug 15940: Implement threading API for Qt
https://bugs.webkit.org/show_bug.cgi?id=15940

Original patch by Justin Haygood, tweaked by me.

  • JavaScriptCore.pri:
  • wtf/ThreadingQt.cpp: Added. (WTF::threadMapMutex): (WTF::threadMap): (WTF::establishIdentifierForThread): (WTF::clearThreadForIdentifier): (WTF::threadForIdentifier): (WTF::initializeThreading): (WTF::ThreadPrivate::getReturnValue): (WTF::ThreadPrivate::ThreadPrivate): (WTF::ThreadPrivate::run): (WTF::createThread): (WTF::waitForThreadCompletion): return !res to return 0 on success (to match the pthreads implementation). (WTF::detachThread): (WTF::identifierByQthreadHandle): (WTF::currentThread): (WTF::Mutex::Mutex): (WTF::Mutex::~Mutex): (WTF::Mutex::lock): (WTF::Mutex::tryLock): (WTF::Mutex::unlock): (WTF::ThreadCondition::ThreadCondition): (WTF::ThreadCondition::~ThreadCondition): (WTF::ThreadCondition::wait): (WTF::ThreadCondition::timedWait): (WTF::ThreadCondition::signal):
1:53 AM Changeset in webkit [32476] by Simon Hausmann
  • 3 edits in trunk/WebCore

Tor Arne Vestbø <tavestbo@trolltech.com>

Render text areas using Qt (ensures proper style).

1:53 AM Changeset in webkit [32475] by Simon Hausmann
  • 2 edits in trunk/WebCore

Tor Arne Vestbø <tavestbo@trolltech.com>

Make mouse wheel events over scrollbars behave the same as in Qt, i.e. both
horizontal and vertical wheel events will scroll the view in the orientation
of the scrollbar underneath the cursor.

1:25 AM Changeset in webkit [32474] by jhoneycutt@apple.com
  • 5 edits in trunk

2008-04-23 Jon Honeycutt <jhoneycutt@apple.com>

Reviewed by Brady.

Implement accDoDefaultAction().

  • AccessibleBase.cpp: (AccessibleBase::accDoDefaultAction): Call the object's performDefaultAction() method. Return S_FALSE if the call returns false, indicating that the object has no default action associated with it.
1:24 AM Changeset in webkit [32473] by jhoneycutt@apple.com
  • 2 edits in trunk/WebCore

2008-04-23 Jon Honeycutt <jhoneycutt@apple.com>

Reviewed by Adam.

Don't allow a hit test to return an AccessibilityObject that should be
ignored.

  • page/AccessibilityObject.cpp: (WebCore::AccessibilityObject::doAccessibilityHitTest): If this result object's accessibility is ignored, return the parent unignored object.
1:24 AM Changeset in webkit [32472] by jhoneycutt@apple.com
  • 2 edits in trunk/WebCore

2008-04-23 Jon Honeycutt <jhoneycutt@apple.com>

Reviewed by Adam.

Fix a crash when performing a hit test on an AccessibilityObject with
no layer (e.g., an AccessibilityObject for a RenderText object).

  • page/AccessibilityObject.cpp: (WebCore::AccessibilityObject::doAccessibilityHitTest): Added a null check for layer. Removed a null check for m_renderer, which shouldn't occur.
1:23 AM Changeset in webkit [32471] by jhoneycutt@apple.com
  • 2 edits in trunk/WebKit/win

2008-04-23 Jon Honeycutt <jhoneycutt@apple.com>

Reviewed by Adam.

Implement accHitTest().

  • AccessibleBase.cpp: (AccessibleBase::accHitTest): Perform a hit test for a child object. If none is found, report whether the point was within our own bounding box.
1:23 AM Changeset in webkit [32470] by jhoneycutt@apple.com
  • 2 edits in trunk/WebKit/win

2008-04-23 Jon Honeycutt <jhoneycutt@apple.com>

Reviewed by Adam and Darin.

Implement accNavigate().

  • AccessibleBase.cpp: (AccessibleBase::accNavigate): This method navigates between elements, given a start point and a direction. The directions UP, DOWN, LEFT, RIGHT are not are not implemented, matching Mozilla and IE. The directions FIRSTCHILD and LASTCHILD are only allowed from self. NEXT and PREVIOUS are allowed from self or any of our children.
1:22 AM Changeset in webkit [32469] by jhoneycutt@apple.com
  • 4 edits in trunk

2008-04-23 Jon Honeycutt <jhoneycutt@apple.com>

Reviewed by Adam.

Implement accLocation().

  • AccessibleBase.cpp: (AccessibleBase::accLocation): Report the screen coordinates for the object's bounding box.
1:21 AM Changeset in webkit [32468] by jhoneycutt@apple.com
  • 3 edits in trunk/WebCore

2008-04-23 Jon Honeycutt <jhoneycutt@apple.com>

Reviewed by Adam.

Implement contentsToScreen() and screenToContents() on Windows.

  • platform/ScrollView.h: Make these declarations conditional on HAVE(ACCESSIBILITY) instead of PLATFORM(MAC).
  • platform/win/ScrollViewWin.cpp: (WebCore::ScrollView::contentsToScreen): Translate from coordinates relative to the ScrollView to coordinates relative to the screen. Do this by getting the offset of the ScrollView in screen coordinates and moving the rect by this amount. (WebCore::ScrollView::screenToContents): Translate from coordinates relative to the screen to coordinates relative to the ScrollView.
1:20 AM Changeset in webkit [32467] by jhoneycutt@apple.com
  • 8 edits in trunk

2008-04-23 Jon Honeycutt <jhoneycutt@apple.com>

Reviewed by Adam, Darin, Oliver.

Implement get_accDefaultAction().

  • AccessibleBase.cpp: (AccessibleBase::get_accDefaultAction): Report the result of calling the object's actionVerb method.
  • English.lproj/Localizable.strings: Updated with new strings.
  • WebCoreLocalizedStrings.cpp: (WebCore::AXButtonActionVerb): Return a localized string representing the object's default action. (WebCore::AXRadioButtonActionVerb): Same. (WebCore::AXTextFieldActionVerb): Same. (WebCore::AXCheckedCheckBoxActionVerb): Same (WebCore::AXUncheckedCheckBoxActionVerb): Same. (WebCore::AXLinkActionVerb): Same.
1:19 AM Changeset in webkit [32466] by jhoneycutt@apple.com
  • 2 edits in trunk/WebKit/win

2008-04-22 Jon Honeycutt <jhoneycutt@apple.com>

Reviewed by Adam.

Implement get_accFocus().

  • AccessibleBase.cpp: (AccessibleBase::get_accRole): Remove redundant initialize; VariantInit does this. (AccessibleBase::get_accState): Same. (AccessibleBase::get_accSelection): Relocated next to accSelect(). (AccessibleBase::get_accFocus): If the focused object is this object or a child of this object, report it. Otherwise, report VT_EMPTY.
1:15 AM Changeset in webkit [32465] by christian@webkit.org
  • 2 edits in trunk/WebKit/gtk

Reviewed by Alp Toker.

Emit a warning about an unknown setting only if it is
not a valid property. Otherwise applications can't
subclass WebKitWebSettings to add new properties.

  • webkit/webkitwebview.cpp:
12:55 AM Changeset in webkit [32464] by Simon Hausmann
  • 25 edits in trunk

Tor Arne Vestbø <tavestbo@trolltech.com>

Cleaned up copyright headers in the Qt port (removed misplaced class
descriptions and fixed inconsistent whitespace and indentation).

12:44 AM Changeset in webkit [32463] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Tor Arne Vestbø <tavestbo@trolltech.com>

Added basic URL guessing to QtLauncher (same as in the demo browser).

12:44 AM Changeset in webkit [32462] by Simon Hausmann
  • 2 edits in trunk/WebCore

Tor Arne Vestbø <tavestbo@trolltech.com>

Disable vanlilla focus rings since Qt provides this as part of the style.

12:38 AM Changeset in webkit [32461] by Simon Hausmann
  • 2 edits in trunk/WebCore

George Staikos <george@staikos.net>

This optimization in BitmapImage::drawPattern for the identity
transform is bogus and causes incorrect results on sites like youtube.

12:31 AM Changeset in webkit [32460] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Benjamin Meyer <bmeyer@trolltech.com>

Prevent double deletions of the default web interface.

Apr 23, 2008:

10:27 PM Changeset in webkit [32459] by mjs@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej.

Bug 18707: SQUIRRELFISH: eval always performs toString() on its argument
<https://bugs.webkit.org/show_bug.cgi?id=18707>

This fixes 4 more regression tests.

  • VM/Machine.cpp: (KJS::eval):
10:16 PM Changeset in webkit [32458] by mjs@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.


  • fix logic bug in SegmentedVector::grow which would sometimes fail to resize a segment when needed


Fixes 3 JSC tests.

  • VM/SegmentedVector.h: (KJS::SegmentedVector::grow):
9:39 PM Changeset in webkit [32457] by ggaren@apple.com
  • 6 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.


Degenerate handling of "arguments" as a property of the activation
object. Currently, we just return a vanilla object.


SunSpider reports no change.

Fixes:

ecma_3/Function/regress-94506.js.


Reveals to have been secretly broken:

ecma_3/Function/15.3.4.3-1.js
ecma_3/Function/15.3.4.4-1.js


These tests were passing incorrectly. testkjs creates a global array
named "arguments" to hold command-line arguments. That array was
tricking these tests into thinking that an arguments object with length
0 had been created. Since our new vanilla object shadows the global
property named arguments, that object no longer fools these tests into
passing.


Net change: +1 failing test.

  • kjs/AllInOneFile.cpp: Had to put JSActivation.cpp into AllInOneFile.cpp to solve a surprising 8.6% regression in bitops-3bit-bits-in-byte.
9:29 PM Changeset in webkit [32456] by mitz@apple.com
  • 4 edits in trunk/LayoutTests

Rubber-stamped by Dave Hyatt.

  • update computed style results for border-image and mask-image
  • fast/css/computed-style-expected.txt:
  • fast/css/computed-style-without-renderer-expected.txt:
  • svg/css/getComputedStyle-basic-expected.txt:
8:55 PM Changeset in webkit [32455] by kevino@webkit.org
  • 2 edits in trunk/WebKit/wx

Reviewed by Alp Toker.

Typo fix to restore text entry.

8:39 PM Changeset in webkit [32454] by beidson@apple.com
  • 3 edits in trunk/WebCore

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

Reviewed by Jon Honeycutt

Preparing for making LocalStorageAreas persistent.

Since LocalStorageAreas will need to do a lot of additional work for each of the basic
operations a Storage object supports, this patch makes the API entry points virtual so
LocalStorageArea can override them. The behavior for both Local and Session StorageAreas
is unchanged with this patch, but LocalStorageArea will override them in the future.

  • storage/StorageArea.cpp: Rename the implementations to internalFoo (WebCore::StorageArea::internalLength): (WebCore::StorageArea::internalKey): (WebCore::StorageArea::internalGetItem): (WebCore::StorageArea::internalSetItem): (WebCore::StorageArea::internalRemoveItem): (WebCore::StorageArea::internalContains):
  • storage/StorageArea.h: Call internalFoo variants (WebCore::StorageArea::length): (WebCore::StorageArea::key): (WebCore::StorageArea::getItem): (WebCore::StorageArea::setItem): (WebCore::StorageArea::removeItem): (WebCore::StorageArea::contains):
8:38 PM Changeset in webkit [32453] by mjs@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.


  • save and restore callFrame
  • VM/Machine.cpp: (KJS::slideRegisterWindowForCall): (KJS::Machine::execute): (KJS::Machine::privateExecute):
  • kjs/testkjs.cpp: (main):
8:12 PM Changeset in webkit [32452] by hyatt@apple.com
  • 3 edits
    2 adds in trunk

WebCore:

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

Implement getComputedStyle for border-image.

Reviewed by Dan Bernstein

Added fast/css/getComputedStyle-border-image.html

  • css/CSSComputedStyleDeclaration.cpp: (WebCore::): (WebCore::valueForRepeatRule): (WebCore::valueForNinePieceImage): (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):

LayoutTests:

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

Implement getComputedStyle for -webkit-border-image.

Reviewed by Dan Bernstein

  • fast/css/getComputedStyle-border-image-expected.txt: Added.
  • fast/css/getComputedStyle-border-image.html: Added.
3:55 PM Changeset in webkit [32451] by ggaren@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.


Fixed scopes for named function expressions.


Fixes one regression test.


Two changes here:


(1) The function's name is supposed to have attributes DontDelete,
ReadOnly, regardless of the type of code executing.


(2) Push the name object on the function's scope chain, rather than
the ExecState's scope chain because, well, that's where it belongs.

2:41 PM Changeset in webkit [32450] by Darin Adler
  • 5 edits in trunk/WebCore

2008-04-22 Darin Adler <Darin Adler>

Reviewed by Anders.

  • simplify use of HashTraits to prepare for some upcoming hash table changes
  • page/AXObjectCache.h: Removed uneeded AXIDHashTraits, which are no different from the default hash traits for unsigned.
  • page/mac/AXObjectCacheMac.mm: (WebCore::AXObjectCache::removeAXID): Remove assertion that's already done by HashTable that the value is not the deleted value.
  • platform/graphics/StringTruncator.cpp: Removed unneeded include.
  • svg/SVGFontFaceElement.cpp: Removed unneeded include.
2:41 PM Changeset in webkit [32449] by Darin Adler
  • 2 edits in trunk/JavaScriptCore

2008-04-22 Darin Adler <Darin Adler>

Reviewed by Anders.

  • simplify use of HashTraits to prepare for some upcoming hash table changes
  • kjs/SymbolTable.h: Made SymbolTableIndexHashTraits derive from HashTraits<size_t> and specialize only the empty value.
2:19 PM Changeset in webkit [32448] by kevino@webkit.org
  • 3 edits in trunk/WebCore

wx build fixes. Changing BackgroundLayer -> FillLayer and adding Frame::disconnectPlatformScriptObjects()

2:00 PM Changeset in webkit [32447] by ggaren@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.


Inlined JSObject::putDirect, for a .4% SunSpider speedup.


I did this as a first step toward removing nodes.cpp from
AllInOneFile.cpp, but I'm putting that larger project aside for now.

1:31 PM Changeset in webkit [32446] by hyatt@apple.com
  • 16 edits
    9 adds in trunk

WebCore:

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

Add support for mask-box-image (similar to border-image). This property enables a single image
to overlay the entire mask area (with nine-piece slicing rules similar to border image).

Reviewed by Dan Bernstein

Added inline-mask-overlay.html, block-mask-overlay.html

  • css/CSSComputedStyleDeclaration.cpp: (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
  • css/CSSParser.cpp: (WebCore::CSSParser::parseValue): (WebCore::CSSParser::parseBorderImage):
  • css/CSSPropertyNames.in:
  • css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty):
  • rendering/InlineFlowBox.cpp: (WebCore::InlineFlowBox::paintMask):
  • rendering/RenderBox.cpp: (WebCore::RenderBox::paintMask):
  • rendering/RenderFlow.cpp: (WebCore::RenderFlow::paintLines):
  • rendering/RenderObject.cpp: (WebCore::RenderObject::paintNinePieceImage): (WebCore::RenderObject::paintBorder):
  • rendering/RenderObject.h:
  • rendering/RenderStyle.cpp: (WebCore::NinePieceImage::operator==):
  • rendering/RenderStyle.h: (WebCore::): (WebCore::NinePieceImage::m_verticalRule): (WebCore::NinePieceImage::horizontalRule): (WebCore::NinePieceImage::verticalRule): (WebCore::RenderStyle::borderImage): (WebCore::RenderStyle::maskOverlayImage): (WebCore::RenderStyle::hasMask): (WebCore::RenderStyle::resetBorderImage): (WebCore::RenderStyle::setBorderImage): (WebCore::RenderStyle::setMaskOverlayImage): (WebCore::RenderStyle::initialNinePieceImage):
  • rendering/RenderTable.cpp: (WebCore::RenderTable::paintMask):
  • rendering/RenderTableCell.cpp: (WebCore::RenderTableCell::paintMask):

LayoutTests:

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

Add support for a new mask-box-image property that is analogous to border-image.

Reviewed by Dan Bernstein

  • fast/borders/block-mask-overlay-image.html: Added.
  • fast/borders/inline-mask-overlay-image.html: Added.
  • fast/borders/resources/mask.png: Added.
  • platform/mac/fast/borders/block-mask-overlay-image-expected.checksum: Added.
  • platform/mac/fast/borders/block-mask-overlay-image-expected.png: Added.
  • platform/mac/fast/borders/block-mask-overlay-image-expected.txt: Added.
  • platform/mac/fast/borders/inline-mask-overlay-image-expected.checksum: Added.
  • platform/mac/fast/borders/inline-mask-overlay-image-expected.png: Added.
  • platform/mac/fast/borders/inline-mask-overlay-image-expected.txt: Added.
12:49 PM Changeset in webkit [32445] by mjs@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Rubber stamped by Geoff.


  • add OldInterpreterExecState class and use it in dead code


This will allow removing things from the real ExecState class
without having to figure out how to remove all this code without
getting a perf regression.

  • kjs/nodes.cpp: (KJS::ExpressionNode::evaluateToNumber): (KJS::ExpressionNode::evaluateToBoolean): (KJS::ExpressionNode::evaluateToInt32): (KJS::ExpressionNode::evaluateToUInt32): (KJS::Node::setErrorCompletion): (KJS::Node::throwError): (KJS::Node::throwUndefinedVariableError): (KJS::Node::handleException): (KJS::Node::rethrowException): (KJS::BreakpointCheckStatement::execute): (KJS::BreakpointCheckStatement::optimizeVariableAccess): (KJS::NullNode::evaluate): (KJS::FalseNode::evaluate): (KJS::TrueNode::evaluate): (KJS::NumberNode::evaluate): (KJS::NumberNode::evaluateToNumber): (KJS::NumberNode::evaluateToBoolean): (KJS::NumberNode::evaluateToInt32): (KJS::NumberNode::evaluateToUInt32): (KJS::ImmediateNumberNode::evaluate): (KJS::ImmediateNumberNode::evaluateToInt32): (KJS::ImmediateNumberNode::evaluateToUInt32): (KJS::StringNode::evaluate): (KJS::StringNode::evaluateToNumber): (KJS::StringNode::evaluateToBoolean): (KJS::RegExpNode::evaluate): (KJS::ThisNode::evaluate): (KJS::ResolveNode::inlineEvaluate): (KJS::ResolveNode::evaluate): (KJS::ResolveNode::evaluateToNumber): (KJS::ResolveNode::evaluateToBoolean): (KJS::ResolveNode::evaluateToInt32): (KJS::ResolveNode::evaluateToUInt32): (KJS::getSymbolTableEntry): (KJS::ResolveNode::optimizeVariableAccess): (KJS::LocalVarAccessNode::inlineEvaluate): (KJS::LocalVarAccessNode::evaluate): (KJS::LocalVarAccessNode::evaluateToNumber): (KJS::LocalVarAccessNode::evaluateToBoolean): (KJS::LocalVarAccessNode::evaluateToInt32): (KJS::LocalVarAccessNode::evaluateToUInt32): (KJS::getNonLocalSymbol): (KJS::ScopedVarAccessNode::inlineEvaluate): (KJS::ScopedVarAccessNode::evaluate): (KJS::ScopedVarAccessNode::evaluateToNumber): (KJS::ScopedVarAccessNode::evaluateToBoolean): (KJS::ScopedVarAccessNode::evaluateToInt32): (KJS::ScopedVarAccessNode::evaluateToUInt32): (KJS::NonLocalVarAccessNode::inlineEvaluate): (KJS::NonLocalVarAccessNode::evaluate): (KJS::NonLocalVarAccessNode::evaluateToNumber): (KJS::NonLocalVarAccessNode::evaluateToBoolean): (KJS::NonLocalVarAccessNode::evaluateToInt32): (KJS::NonLocalVarAccessNode::evaluateToUInt32): (KJS::ElementNode::optimizeVariableAccess): (KJS::ElementNode::evaluate): (KJS::ArrayNode::optimizeVariableAccess): (KJS::ArrayNode::evaluate): (KJS::ObjectLiteralNode::optimizeVariableAccess): (KJS::ObjectLiteralNode::evaluate): (KJS::PropertyListNode::optimizeVariableAccess): (KJS::PropertyListNode::evaluate): (KJS::PropertyNode::optimizeVariableAccess): (KJS::PropertyNode::evaluate): (KJS::BracketAccessorNode::optimizeVariableAccess): (KJS::BracketAccessorNode::inlineEvaluate): (KJS::BracketAccessorNode::evaluate): (KJS::BracketAccessorNode::evaluateToNumber): (KJS::BracketAccessorNode::evaluateToBoolean): (KJS::BracketAccessorNode::evaluateToInt32): (KJS::BracketAccessorNode::evaluateToUInt32): (KJS::DotAccessorNode::optimizeVariableAccess): (KJS::DotAccessorNode::inlineEvaluate): (KJS::DotAccessorNode::evaluate): (KJS::DotAccessorNode::evaluateToNumber): (KJS::DotAccessorNode::evaluateToBoolean): (KJS::DotAccessorNode::evaluateToInt32): (KJS::DotAccessorNode::evaluateToUInt32): (KJS::ArgumentListNode::optimizeVariableAccess): (KJS::ArgumentListNode::evaluateList): (KJS::ArgumentsNode::optimizeVariableAccess): (KJS::NewExprNode::optimizeVariableAccess): (KJS::NewExprNode::inlineEvaluate): (KJS::NewExprNode::evaluate): (KJS::NewExprNode::evaluateToNumber): (KJS::NewExprNode::evaluateToBoolean): (KJS::NewExprNode::evaluateToInt32): (KJS::NewExprNode::evaluateToUInt32): (KJS::ExpressionNode::resolveAndCall): (KJS::EvalFunctionCallNode::optimizeVariableAccess): (KJS::EvalFunctionCallNode::evaluate): (KJS::FunctionCallValueNode::optimizeVariableAccess): (KJS::FunctionCallValueNode::evaluate): (KJS::FunctionCallResolveNode::optimizeVariableAccess): (KJS::FunctionCallResolveNode::inlineEvaluate): (KJS::FunctionCallResolveNode::evaluate): (KJS::FunctionCallResolveNode::evaluateToNumber): (KJS::FunctionCallResolveNode::evaluateToBoolean): (KJS::FunctionCallResolveNode::evaluateToInt32): (KJS::FunctionCallResolveNode::evaluateToUInt32): (KJS::LocalVarFunctionCallNode::inlineEvaluate): (KJS::LocalVarFunctionCallNode::evaluate): (KJS::LocalVarFunctionCallNode::evaluateToNumber): (KJS::LocalVarFunctionCallNode::evaluateToBoolean): (KJS::LocalVarFunctionCallNode::evaluateToInt32): (KJS::LocalVarFunctionCallNode::evaluateToUInt32): (KJS::ScopedVarFunctionCallNode::inlineEvaluate): (KJS::ScopedVarFunctionCallNode::evaluate): (KJS::ScopedVarFunctionCallNode::evaluateToNumber): (KJS::ScopedVarFunctionCallNode::evaluateToBoolean): (KJS::ScopedVarFunctionCallNode::evaluateToInt32): (KJS::ScopedVarFunctionCallNode::evaluateToUInt32): (KJS::NonLocalVarFunctionCallNode::inlineEvaluate): (KJS::NonLocalVarFunctionCallNode::evaluate): (KJS::NonLocalVarFunctionCallNode::evaluateToNumber): (KJS::NonLocalVarFunctionCallNode::evaluateToBoolean): (KJS::NonLocalVarFunctionCallNode::evaluateToInt32): (KJS::NonLocalVarFunctionCallNode::evaluateToUInt32): (KJS::FunctionCallBracketNode::optimizeVariableAccess): (KJS::FunctionCallBracketNode::evaluate): (KJS::FunctionCallDotNode::optimizeVariableAccess): (KJS::FunctionCallDotNode::inlineEvaluate): (KJS::FunctionCallDotNode::evaluate): (KJS::FunctionCallDotNode::evaluateToNumber): (KJS::FunctionCallDotNode::evaluateToBoolean): (KJS::FunctionCallDotNode::evaluateToInt32): (KJS::FunctionCallDotNode::evaluateToUInt32): (KJS::PostIncResolveNode::optimizeVariableAccess): (KJS::PostIncResolveNode::evaluate): (KJS::PostIncLocalVarNode::evaluate): (KJS::PostDecResolveNode::optimizeVariableAccess): (KJS::PostDecResolveNode::evaluate): (KJS::PostDecLocalVarNode::evaluate): (KJS::PostDecLocalVarNode::inlineEvaluateToNumber): (KJS::PostDecLocalVarNode::evaluateToNumber): (KJS::PostDecLocalVarNode::evaluateToBoolean): (KJS::PostDecLocalVarNode::evaluateToInt32): (KJS::PostDecLocalVarNode::evaluateToUInt32): (KJS::PostfixBracketNode::optimizeVariableAccess): (KJS::PostIncBracketNode::evaluate): (KJS::PostDecBracketNode::evaluate): (KJS::PostfixDotNode::optimizeVariableAccess): (KJS::PostIncDotNode::evaluate): (KJS::PostDecDotNode::evaluate): (KJS::PostfixErrorNode::evaluate): (KJS::DeleteResolveNode::optimizeVariableAccess): (KJS::DeleteResolveNode::evaluate): (KJS::LocalVarDeleteNode::evaluate): (KJS::DeleteBracketNode::optimizeVariableAccess): (KJS::DeleteBracketNode::evaluate): (KJS::DeleteDotNode::optimizeVariableAccess): (KJS::DeleteDotNode::evaluate): (KJS::DeleteValueNode::optimizeVariableAccess): (KJS::DeleteValueNode::evaluate): (KJS::VoidNode::optimizeVariableAccess): (KJS::VoidNode::evaluate): (KJS::TypeOfValueNode::optimizeVariableAccess): (KJS::TypeOfResolveNode::optimizeVariableAccess): (KJS::LocalVarTypeOfNode::evaluate): (KJS::TypeOfResolveNode::evaluate): (KJS::TypeOfValueNode::evaluate): (KJS::PreIncResolveNode::optimizeVariableAccess): (KJS::PreIncLocalVarNode::evaluate): (KJS::PreIncResolveNode::evaluate): (KJS::PreDecResolveNode::optimizeVariableAccess): (KJS::PreDecLocalVarNode::evaluate): (KJS::PreDecResolveNode::evaluate): (KJS::PreIncConstNode::evaluate): (KJS::PreDecConstNode::evaluate): (KJS::PostIncConstNode::evaluate): (KJS::PostDecConstNode::evaluate): (KJS::PrefixBracketNode::optimizeVariableAccess): (KJS::PreIncBracketNode::evaluate): (KJS::PreDecBracketNode::evaluate): (KJS::PrefixDotNode::optimizeVariableAccess): (KJS::PreIncDotNode::evaluate): (KJS::PreDecDotNode::evaluate): (KJS::PrefixErrorNode::evaluate): (KJS::UnaryPlusNode::optimizeVariableAccess): (KJS::UnaryPlusNode::evaluate): (KJS::UnaryPlusNode::evaluateToBoolean): (KJS::UnaryPlusNode::evaluateToNumber): (KJS::UnaryPlusNode::evaluateToInt32): (KJS::UnaryPlusNode::evaluateToUInt32): (KJS::NegateNode::optimizeVariableAccess): (KJS::NegateNode::evaluate): (KJS::NegateNode::evaluateToNumber): (KJS::BitwiseNotNode::optimizeVariableAccess): (KJS::BitwiseNotNode::inlineEvaluateToInt32): (KJS::BitwiseNotNode::evaluate): (KJS::BitwiseNotNode::evaluateToNumber): (KJS::BitwiseNotNode::evaluateToBoolean): (KJS::BitwiseNotNode::evaluateToInt32): (KJS::BitwiseNotNode::evaluateToUInt32): (KJS::LogicalNotNode::optimizeVariableAccess): (KJS::LogicalNotNode::evaluate): (KJS::LogicalNotNode::evaluateToBoolean): (KJS::MultNode::optimizeVariableAccess): (KJS::MultNode::inlineEvaluateToNumber): (KJS::MultNode::evaluate): (KJS::MultNode::evaluateToNumber): (KJS::MultNode::evaluateToBoolean): (KJS::MultNode::evaluateToInt32): (KJS::MultNode::evaluateToUInt32): (KJS::DivNode::optimizeVariableAccess): (KJS::DivNode::inlineEvaluateToNumber): (KJS::DivNode::evaluate): (KJS::DivNode::evaluateToNumber): (KJS::DivNode::evaluateToInt32): (KJS::DivNode::evaluateToUInt32): (KJS::ModNode::optimizeVariableAccess): (KJS::ModNode::inlineEvaluateToNumber): (KJS::ModNode::evaluate): (KJS::ModNode::evaluateToNumber): (KJS::ModNode::evaluateToBoolean): (KJS::ModNode::evaluateToInt32): (KJS::ModNode::evaluateToUInt32): (KJS::throwOutOfMemoryErrorToNumber): (KJS::addSlowCase): (KJS::addSlowCaseToNumber): (KJS::add): (KJS::addToNumber): (KJS::AddNode::optimizeVariableAccess): (KJS::AddNode::evaluate): (KJS::AddNode::inlineEvaluateToNumber): (KJS::AddNode::evaluateToNumber): (KJS::AddNode::evaluateToInt32): (KJS::AddNode::evaluateToUInt32): (KJS::AddNumbersNode::inlineEvaluateToNumber): (KJS::AddNumbersNode::evaluate): (KJS::AddNumbersNode::evaluateToNumber): (KJS::AddNumbersNode::evaluateToInt32): (KJS::AddNumbersNode::evaluateToUInt32): (KJS::AddStringsNode::evaluate): (KJS::AddStringLeftNode::evaluate): (KJS::AddStringRightNode::evaluate): (KJS::SubNode::optimizeVariableAccess): (KJS::SubNode::inlineEvaluateToNumber): (KJS::SubNode::evaluate): (KJS::SubNode::evaluateToNumber): (KJS::SubNode::evaluateToInt32): (KJS::SubNode::evaluateToUInt32): (KJS::LeftShiftNode::optimizeVariableAccess): (KJS::LeftShiftNode::inlineEvaluateToInt32): (KJS::LeftShiftNode::evaluate): (KJS::LeftShiftNode::evaluateToNumber): (KJS::LeftShiftNode::evaluateToInt32): (KJS::LeftShiftNode::evaluateToUInt32): (KJS::RightShiftNode::optimizeVariableAccess): (KJS::RightShiftNode::inlineEvaluateToInt32): (KJS::RightShiftNode::evaluate): (KJS::RightShiftNode::evaluateToNumber): (KJS::RightShiftNode::evaluateToInt32): (KJS::RightShiftNode::evaluateToUInt32): (KJS::UnsignedRightShiftNode::optimizeVariableAccess): (KJS::UnsignedRightShiftNode::inlineEvaluateToUInt32): (KJS::UnsignedRightShiftNode::evaluate): (KJS::UnsignedRightShiftNode::evaluateToNumber): (KJS::UnsignedRightShiftNode::evaluateToInt32): (KJS::UnsignedRightShiftNode::evaluateToUInt32): (KJS::lessThan): (KJS::lessThanEq): (KJS::LessNode::optimizeVariableAccess): (KJS::LessNode::inlineEvaluateToBoolean): (KJS::LessNode::evaluate): (KJS::LessNode::evaluateToBoolean): (KJS::LessNumbersNode::inlineEvaluateToBoolean): (KJS::LessNumbersNode::evaluate): (KJS::LessNumbersNode::evaluateToBoolean): (KJS::LessStringsNode::inlineEvaluateToBoolean): (KJS::LessStringsNode::evaluate): (KJS::LessStringsNode::evaluateToBoolean): (KJS::GreaterNode::optimizeVariableAccess): (KJS::GreaterNode::inlineEvaluateToBoolean): (KJS::GreaterNode::evaluate): (KJS::GreaterNode::evaluateToBoolean): (KJS::LessEqNode::optimizeVariableAccess): (KJS::LessEqNode::inlineEvaluateToBoolean): (KJS::LessEqNode::evaluate): (KJS::LessEqNode::evaluateToBoolean): (KJS::GreaterEqNode::optimizeVariableAccess): (KJS::GreaterEqNode::inlineEvaluateToBoolean): (KJS::GreaterEqNode::evaluate): (KJS::GreaterEqNode::evaluateToBoolean): (KJS::InstanceOfNode::optimizeVariableAccess): (KJS::InstanceOfNode::evaluate): (KJS::InstanceOfNode::evaluateToBoolean): (KJS::InNode::optimizeVariableAccess): (KJS::InNode::evaluate): (KJS::InNode::evaluateToBoolean): (KJS::EqualNode::optimizeVariableAccess): (KJS::EqualNode::inlineEvaluateToBoolean): (KJS::EqualNode::evaluate): (KJS::EqualNode::evaluateToBoolean): (KJS::NotEqualNode::optimizeVariableAccess): (KJS::NotEqualNode::inlineEvaluateToBoolean): (KJS::NotEqualNode::evaluate): (KJS::NotEqualNode::evaluateToBoolean): (KJS::StrictEqualNode::optimizeVariableAccess): (KJS::StrictEqualNode::inlineEvaluateToBoolean): (KJS::StrictEqualNode::evaluate): (KJS::StrictEqualNode::evaluateToBoolean): (KJS::NotStrictEqualNode::optimizeVariableAccess): (KJS::NotStrictEqualNode::inlineEvaluateToBoolean): (KJS::NotStrictEqualNode::evaluate): (KJS::NotStrictEqualNode::evaluateToBoolean): (KJS::BitAndNode::optimizeVariableAccess): (KJS::BitAndNode::evaluate): (KJS::BitAndNode::inlineEvaluateToInt32): (KJS::BitAndNode::evaluateToNumber): (KJS::BitAndNode::evaluateToBoolean): (KJS::BitAndNode::evaluateToInt32): (KJS::BitAndNode::evaluateToUInt32): (KJS::BitXOrNode::optimizeVariableAccess): (KJS::BitXOrNode::inlineEvaluateToInt32): (KJS::BitXOrNode::evaluate): (KJS::BitXOrNode::evaluateToNumber): (KJS::BitXOrNode::evaluateToBoolean): (KJS::BitXOrNode::evaluateToInt32): (KJS::BitXOrNode::evaluateToUInt32): (KJS::BitOrNode::optimizeVariableAccess): (KJS::BitOrNode::inlineEvaluateToInt32): (KJS::BitOrNode::evaluate): (KJS::BitOrNode::evaluateToNumber): (KJS::BitOrNode::evaluateToBoolean): (KJS::BitOrNode::evaluateToInt32): (KJS::BitOrNode::evaluateToUInt32): (KJS::LogicalAndNode::optimizeVariableAccess): (KJS::LogicalAndNode::evaluate): (KJS::LogicalAndNode::evaluateToBoolean): (KJS::LogicalOrNode::optimizeVariableAccess): (KJS::LogicalOrNode::evaluate): (KJS::LogicalOrNode::evaluateToBoolean): (KJS::ConditionalNode::optimizeVariableAccess): (KJS::ConditionalNode::evaluate): (KJS::ConditionalNode::evaluateToBoolean): (KJS::ConditionalNode::evaluateToNumber): (KJS::ConditionalNode::evaluateToInt32): (KJS::ConditionalNode::evaluateToUInt32): (KJS::valueForReadModifyAssignment): (KJS::ReadModifyResolveNode::optimizeVariableAccess): (KJS::AssignResolveNode::optimizeVariableAccess): (KJS::ReadModifyLocalVarNode::evaluate): (KJS::AssignLocalVarNode::evaluate): (KJS::ReadModifyConstNode::evaluate): (KJS::AssignConstNode::evaluate): (KJS::ReadModifyResolveNode::evaluate): (KJS::AssignResolveNode::evaluate): (KJS::AssignDotNode::optimizeVariableAccess): (KJS::AssignDotNode::evaluate): (KJS::ReadModifyDotNode::optimizeVariableAccess): (KJS::ReadModifyDotNode::evaluate): (KJS::AssignErrorNode::evaluate): (KJS::AssignBracketNode::optimizeVariableAccess): (KJS::AssignBracketNode::evaluate): (KJS::ReadModifyBracketNode::optimizeVariableAccess): (KJS::ReadModifyBracketNode::evaluate): (KJS::CommaNode::optimizeVariableAccess): (KJS::CommaNode::evaluate): (KJS::ConstDeclNode::optimizeVariableAccess): (KJS::ConstDeclNode::handleSlowCase): (KJS::ConstDeclNode::evaluateSingle): (KJS::ConstDeclNode::evaluate): (KJS::ConstStatementNode::optimizeVariableAccess): (KJS::ConstStatementNode::execute): (KJS::statementListExecute): (KJS::BlockNode::optimizeVariableAccess): (KJS::BlockNode::execute): (KJS::EmptyStatementNode::execute): (KJS::ExprStatementNode::optimizeVariableAccess): (KJS::ExprStatementNode::execute): (KJS::VarStatementNode::optimizeVariableAccess): (KJS::VarStatementNode::execute): (KJS::IfNode::optimizeVariableAccess): (KJS::IfNode::execute): (KJS::IfElseNode::optimizeVariableAccess): (KJS::IfElseNode::execute): (KJS::DoWhileNode::optimizeVariableAccess): (KJS::DoWhileNode::execute): (KJS::WhileNode::optimizeVariableAccess): (KJS::WhileNode::execute): (KJS::ForNode::optimizeVariableAccess): (KJS::ForNode::execute): (KJS::ForInNode::optimizeVariableAccess): (KJS::ForInNode::execute): (KJS::ContinueNode::execute): (KJS::BreakNode::execute): (KJS::ReturnNode::optimizeVariableAccess): (KJS::ReturnNode::execute): (KJS::WithNode::optimizeVariableAccess): (KJS::WithNode::execute): (KJS::CaseClauseNode::optimizeVariableAccess): (KJS::CaseClauseNode::evaluate): (KJS::CaseClauseNode::executeStatements): (KJS::ClauseListNode::optimizeVariableAccess): (KJS::CaseBlockNode::optimizeVariableAccess): (KJS::CaseBlockNode::executeBlock): (KJS::SwitchNode::optimizeVariableAccess): (KJS::SwitchNode::execute): (KJS::LabelNode::optimizeVariableAccess): (KJS::LabelNode::execute): (KJS::ThrowNode::optimizeVariableAccess): (KJS::ThrowNode::execute): (KJS::TryNode::optimizeVariableAccess): (KJS::TryNode::execute): (KJS::ProgramNode::initializeSymbolTable): (KJS::ScopeNode::optimizeVariableAccess): (KJS::ProgramNode::processDeclarations): (KJS::EvalNode::processDeclarations): (KJS::ProgramNode::execute): (KJS::EvalNode::execute): (KJS::FunctionBodyNodeWithDebuggerHooks::execute): (KJS::FuncDeclNode::execute): (KJS::FuncExprNode::evaluate):
  • kjs/nodes.h: (KJS::Node::): (KJS::FalseNode::): (KJS::TrueNode::): (KJS::ArgumentsNode::):
12:36 PM Changeset in webkit [32444] by oliver@apple.com
  • 4 edits
    1 add in branches/squirrelfish/JavaScriptCore

Bug 18672: SQUIRRELFISH: codegen fails with a large number of temporaries
<https://bugs.webkit.org/show_bug.cgi?id=18672>

Reviewed by Geoff

Add a SegmentedVector type, which provides a Vector<T> which maintains
existing memory locations during resize. This allows dynamically sizing
local, temporary and label "vectors" in CodeGenerator.

11:25 AM Changeset in webkit [32443] by justin.garcia@apple.com
  • 3 edits
    4 adds in trunk

WebCore:

2008-04-23 Justin Garcia <justin.garcia@apple.com>

Reviewed by Darin Adler.

<rdar://problem/5825350> OWA: Caret disappears when navigating with arrows keys in contenteditable div

  • editing/htmlediting.cpp: (WebCore::firstEditablePositionAfterPositionInRoot): Return a null VisiblePosition if this function moves out of highestRoot. Re-wrote so as to not duplicate code inside and outside of the while loop. (WebCore::lastEditablePositionBeforePositionInRoot): Ditto.

LayoutTests:

2008-04-23 Justin Garcia <justin.garcia@apple.com>

Reviewed by Darin Adler.

<rdar://problem/5825350> OWA: Caret disappears when navigating with arrows keys in contenteditable div

  • editing/selection/5825350-1-expected.txt: Added.
  • editing/selection/5825350-1.html: Added.
  • editing/selection/5825350-2-expected.txt: Added.
  • editing/selection/5825350-2.html: Added.
10:49 AM Changeset in webkit [32442] by pewtermoose@webkit.org
  • 5 edits in trunk

WebCore:

2008-04-23 Daniel Zucker <zucker@wake3.com>

Reviewed by Adam Roben.

Fix build errors needed to compile Curl in Cairo build. Add stubs for
didReceiveAuthenticationChallenge, receivedCredential,
receivedRequestToContinueWithoutCredential, and receivedCancellation.
<https://bugs.webkit.org/show_bug.cgi?id=18468>

  • platform/network/ResourceHandle.h:
  • platform/network/curl/ResourceHandleCurl.cpp: (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): (WebCore::ResourceHandle::receivedCredential): (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential): (WebCore::ResourceHandle::receivedCancellation):

WebKit/win:

2008-04-23 Daniel Zucker <zucker@wake3.com>

Reviewed by Adam Roben.

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

  • WebError.h: include RetainPtr.h to fix build errors in Cairo build
10:43 AM Changeset in webkit [32441] by pewtermoose@webkit.org
  • 2 edits in trunk/WebKit/win

2008-04-23 Daniel Zucker <zucker@wake3.com>

Reviewed by Adam Roben.

Move the location of #if USE(CFNETWORK) to fix a cairo/curl build error.
<https://bugs.webkit.org/show_bug.cgi?id=18470>

  • WebError.cpp: (WebError::sslPeerCertificate):
10:35 AM Changeset in webkit [32440] by Adam Roben
  • 2 edits in trunk/WebKitTools

Make crashes be reported as crashes, not hangs

Reviewed by David Kilzer.

  • Scripts/run-webkit-tests: (top level): Use the new status field of the output from readFromDumpToolWithTimer to determine if the test crashed or hung. (sub readFromDumpToolWithTimer):
    • If we fail to read a line and $! is not EAGAIN, then we've crashed and should not try to read any more.
    • Changed the timedout field to a more general status field.
9:08 AM Changeset in webkit [32439] by Darin Adler
  • 2 edits in trunk/LayoutTests

2008-04-23 Darin Adler <Darin Adler>

  • updated a test affected by the addition of mask-composite
  • svg/css/getComputedStyle-basic-expected.txt: Updated.
7:50 AM Changeset in webkit [32438] by mitz@apple.com
  • 3 edits
    4 adds in trunk

WebCore:

Reviewed by Darin Adler.

  • fix a bug where moving forward in bidirectional text skips over the position after the end of the line

Test: editing/selection/move-past-trailing-space.html

  • dom/Position.cpp: (WebCore::Position::upstream): Changed the logic for identifying when a position is after the last character of a text box of a text node that continues on the next line, to make it work correctly when boxes are not laid out in logical order. (WebCore::Position::downstream): Ditto.

LayoutTests:

Reviewed by Darin Adler.

  • test that moving forward through bidirectional text does not skip the position after the last character on the line
  • editing/selection/move-past-trailing-space.html: Added.
  • platform/mac/editing/selection/move-past-trailing-space-expected.checksum: Added.
  • platform/mac/editing/selection/move-past-trailing-space-expected.png: Added.
  • platform/mac/editing/selection/move-past-trailing-space-expected.txt: Added.
7:45 AM Changeset in webkit [32437] by Simon Hausmann
  • 3 edits in trunk/WebKit/qt

Fix compilation against Qt 4.3

7:44 AM Changeset in webkit [32436] by ggaren@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.


A little refactoring in preparation for supporting 'arguments'.


Fixes 2 regression tests.

SunSpider reports no change.

We now check the activation register, instead of the codeBlock, to
determine whether we need to tear off the activation. This is to support
"f.arguments", which will create an activation/arguments pair for f,
even though the needsFullScopeChain flag is false for f's codeBlock.


The test fixes resulted from calling initializeCallFrame for re-entrant
function code, instead of initializing (not enough) parts of the call
frame by hand.

7:36 AM Changeset in webkit [32435] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Holger Hans Peter Freyther <zecke@selfish.org>

  • Make sure the "Inspect Element" item gets added to the ContextMenu, a call to ContextMenu::populate() is not adding it, the ContextMenuController does add it after the call to populate(). Do that as well.
7:36 AM Changeset in webkit [32434] by Simon Hausmann
  • 2 edits in trunk/WebCore

Brad Hughes <bhughes@trolltech.com>

Fix release build with the intel compiler

Intel compiler can't compile qtwebkit with -O2 or -O1, so we're left with -O0

7:36 AM Changeset in webkit [32433] by Simon Hausmann
  • 5 edits in trunk/WebKit/qt

Simon Hausmann <Simon Hausmann>

Fix crashes on window.close().

We should not delete the QWebPage object in the ChromeClient but leave it up to
the application when and whether to delete a browser window. For this we now
emit the windowCloseRequested() signal.

Done with Tor Arne.

7:21 AM Changeset in webkit [32432] by Simon Hausmann
  • 3 edits in trunk/WebKit/qt

Fix parsing of external scripts/stylesheets when using setHtml(const QString &html).

We used to pass the html string to the frameloader in utf-16, which also meant that the default
encoding of external scripts/stylesheets became utf-16. That doesn't make sense, so assume utf-8
by default. This is now also documented.

6:58 AM Changeset in webkit [32431] by Simon Hausmann
  • 2 edits in trunk/JavaScriptCore

Holger Hans Peter Freyther <zecke@selfish.org>

Removed the #define for USE_SYSTEM_MALLOC that we set in WebKit.pri
already.

1:31 AM Changeset in webkit [32430] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Benjamin Meyer <bmeyer@trolltech.com>

Fixes background color propagation when using a custom QWebPage

Set the palette in setPage(), not during the creation on-demand.

1:26 AM Changeset in webkit [32429] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Benjamin Meyer <bmeyer@trolltech.com>

Fix the user agent on the mac to be BSD4

Put Q_OS_DARWIN before Q_OS_BSD4 sense they are both defined on the mac

1:07 AM Changeset in webkit [32428] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Added missing copyright notice.
Small fixes to the documentation.

12:49 AM Changeset in webkit [32427] by Simon Hausmann
  • 3 edits in trunk/WebKit/qt

Zack Rusin <zack@tungstengraphics.com>

Added a contentsSize() property.

Apr 22, 2008:

9:22 PM Changeset in webkit [32426] by mitz@apple.com
  • 2 edits in trunk/WebCore

Reviewed by Anders Carlsson.

  • remove unused calls to Position::upstream()
  • editing/InsertLineBreakCommand.cpp: (WebCore::InsertLineBreakCommand::insertNodeAfterPosition): (WebCore::InsertLineBreakCommand::insertNodeBeforePosition):
9:19 PM Changeset in webkit [32425] by jhoneycutt@apple.com
  • 2 edits in trunk/WebKit/win

2008-04-22 Jon Honeycutt <jhoneycutt@apple.com>

Reviewed by Sam.

Implement get_accKeyboardShortcut().

  • AccessibleBase.cpp: (AccessibleBase::get_accKeyboardShortcut): Report the key combination that will perform the object's access key action, represented as a string.
9:18 PM Changeset in webkit [32424] by jhoneycutt@apple.com
  • 9 edits in trunk/WebCore

2008-04-22 Jon Honeycutt <jhoneycutt@apple.com>

Reviewed by Sam.

Add a method to query which modifier keys the platform uses for access
key actions.

  • page/EventHandler.cpp: (WebCore::EventHandler::handleAccessKey): Bitwise and the event's modifier keys with the platform's access key modifier mask to determine whether this event can perform an access key action.
  • page/EventHandler.h: Added s_accessKeyModifiers, a platform-defined mask of modifier keys used for access key actions, and a getter.
  • page/mac/EventHandlerMac.mm: Use PlatformKeyboardEvent::CtrlKey for access key actions.
  • page/qt/EventHandlerQt.cpp: Same.
  • page/gtk/EventHandlerGtk.cpp: Use AltKey.
  • page/win/EventHandlerWin.cpp: Same.
  • page/wx/EventHandlerWx.cpp: Same.
  • platform/PlatformKeyboardEvent.h: Added an enum, ModifierKey. (WebCore::PlatformKeyboardEvent::): (WebCore::PlatformKeyboardEvent::modifiers): Return which modifier keys were active, a combination of ModifierKey values.
8:58 PM Changeset in webkit [32423] by mjs@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam.


  • propagate the "this" value properly to local eval


(fixes a measly one regression test)

  • VM/CodeBlock.h: (KJS::CodeBlock::CodeBlock): (KJS::ProgramCodeBlock::ProgramCodeBlock): (KJS::EvalCodeBlock::EvalCodeBlock):
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
8:52 PM Changeset in webkit [32422] by weinig@apple.com
  • 3 edits in trunk/WebCore

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

Reviewed by Maciej Stachowiak.

Make the KJSProxy and FrameLoader member variables instead of pointers
in FramePrivate in a bid to do a little clean up before the last of the
split window patches. Also, make the KJSProxy not lazily created, as the
real benefit comes from lazily creating the JSDOMWindowWrapper, which we
still do.

  • page/Frame.cpp: (WebCore::Frame::~Frame): (WebCore::Frame::init): (WebCore::Frame::loader): (WebCore::Frame::scriptProxy): (WebCore::Frame::document): (WebCore::Frame::setDocument): (WebCore::Frame::clearScriptProxy): (WebCore::Frame::pageDestroyed): (WebCore::FramePrivate::FramePrivate): (WebCore::FramePrivate::~FramePrivate):
  • page/FramePrivate.h:
8:42 PM Changeset in webkit [32421] by mitz@apple.com
  • 3 edits
    4 adds in trunk

WebCore:

2008-04-22 Anatoli Papirovski <apapirovski@mac.com>

Reviewed by Dan Bernstein.

  • fix https://bugs.webkit.org/show_bug.cgi?id=18584 border-color, outline-color, column-color, -webkit-text-stroke-color, and -webkit-text-fill-color inheritance to correctly use parent's color if the parent's corresponding (border, outline, etc.)-color property wasn't set.

Test: fast/borders/border-color-inherit.html

  • css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty):

LayoutTests:

2008-04-22 Anatoli Papirovski <apapirovski@mac.com>

Reviewed by Dan Bernstein.

https://bugs.webkit.org/show_bug.cgi?id=18584
Add a test case for border-color inheritance.

  • fast/borders/border-color-inherit.html: Added.
  • platform/mac/fast/borders/border-color-inherit-expected.checksum: Added.
  • platform/mac/fast/borders/border-color-inherit-expected.png: Added.
  • platform/mac/fast/borders/border-color-inherit-expected.txt: Added.
8:14 PM Changeset in webkit [32420] by alp@webkit.org
  • 2 edits in trunk

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

GTK+ debug build fix for changes in r32257.

  • GNUmakefile.am:
8:13 PM Changeset in webkit [32419] by mjs@apple.com
  • 6 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej.

Add support for function declarations in eval code.

(this fixes 12 more regression tests)


  • VM/CodeBlock.h:
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::CodeGenerator):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::execute):
  • kjs/nodes.cpp: (KJS::EvalNode::generateCode):
7:15 PM Changeset in webkit [32418] by alp@webkit.org
  • 3 edits in trunk/WebCore

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

Rubber-stamped by Dave Hyatt.

Move GraphicsContext::clipToImageBuffer() notImplemented() stub to
GraphicsContextCairo.

  • platform/graphics/GraphicsContext.cpp:
  • platform/graphics/cairo/GraphicsContextCairo.cpp: (WebCore::GraphicsContext::clipToImageBuffer):
7:13 PM Changeset in webkit [32417] by hyatt@apple.com
  • 11 edits
    13 adds in trunk

WebCore:

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

Add support for mask-composite to match background-composite.

Reviewed by Sam Weinig

Added fast/backgrounds/mask-composite.html

  • css/CSSComputedStyleDeclaration.cpp: (WebCore::): (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
  • css/CSSParser.cpp: (WebCore::CSSParser::parseValue): (WebCore::CSSParser::parseFillProperty):
  • css/CSSPropertyNames.in:
  • css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty):
  • rendering/InlineFlowBox.cpp: (WebCore::InlineFlowBox::paintMask):

LayoutTests:

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

Add support for mask-composite.

Reviewed by Sam Weinig

  • fast/backgrounds/mask-composite.html: Added.
  • fast/backgrounds/resources/mask-bottom-left.png: Added.
  • fast/backgrounds/resources/mask-bottom-right.png: Added.
  • fast/backgrounds/resources/mask-bottom.png: Added.
  • fast/backgrounds/resources/mask-center.png: Added.
  • fast/backgrounds/resources/mask-left.png: Added.
  • fast/backgrounds/resources/mask-right.png: Added.
  • fast/backgrounds/resources/mask-top-left.png: Added.
  • fast/backgrounds/resources/mask-top-right.png: Added.
  • fast/backgrounds/resources/mask-top.png: Added.
  • platform/mac/fast/backgrounds/mask-composite-expected.checksum: Added.
  • platform/mac/fast/backgrounds/mask-composite-expected.png: Added.
  • platform/mac/fast/backgrounds/mask-composite-expected.txt: Added.
5:45 PM Changeset in webkit [32416] by hyatt@apple.com
  • 3 edits in trunk/WebCore

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

Fix for bug 18688, background-color stopped painting on inlines. Fix a virtual function
misnaming that led to the derived class not getting called properly.

Reviewed by Mark Rowe

  • ChangeLog:
  • rendering/InlineFlowBox.cpp: (WebCore::InlineFlowBox::paintFillLayer):
  • rendering/RenderObject.h: (WebCore::RenderObject::paintFillLayerExtended):
5:21 PM Changeset in webkit [32415] by mjs@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.

Implement LabelNode.

  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::pushJumpContext): (KJS::CodeGenerator::jumpContextForContinue): (KJS::CodeGenerator::jumpContextForBreak):
  • VM/CodeGenerator.h:
  • kjs/nodes.cpp: (KJS::DoWhileNode::emitCode): (KJS::WhileNode::emitCode): (KJS::ForNode::emitCode): (KJS::ForInNode::emitCode): (KJS::ContinueNode::emitCode): (KJS::BreakNode::emitCode): (KJS::SwitchNode::emitCode): (KJS::LabelNode::emitCode):
5:16 PM Changeset in webkit [32414] by hyatt@apple.com
  • 6 adds in trunk/LayoutTests/platform/mac/fast/backgrounds

Add new layout test results.

5:13 PM Changeset in webkit [32413] by beidson@apple.com
  • 4 edits in trunk/WebCore

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

Reviewed by Sam Weinig

<rdar://problem/5733282> and https://bugs.webkit.org/show_bug.cgi?id=18680
Always loads default shortcut icon URL when an external <script> is referenced before the icon URL is set.

  • dom/Document.cpp: (WebCore::Document::implicitClose): Call FrameLoader->startIconLoader() here, when the document is finished parsing.
  • loader/FrameLoader.cpp: (WebCore::FrameLoader::endIfNotLoadingMainResource): Don't start the icon load here, when the document is finished parsing. This was often too early, as document parsing may be blocked on an external script and therefore the correct iconURL is not set yet. The isLoadingFromCachedPage() check was when we started the icon load based on *loading* instead parsing, and is now irrelevant.
  • loader/FrameLoader.h: Make startIconLoader() public
4:52 PM Changeset in webkit [32412] by Antti Koivisto
  • 2 edits in trunk/LayoutTests

2008-04-22 Antti Koivisto <Antti Koivisto>

Update SVG animation test results.

  • platform/mac/svg/W3C-SVG-1.1/animate-elem-33-t-expected.txt:
4:51 PM Changeset in webkit [32411] by Antti Koivisto
  • 4 edits in trunk/WebCore

2008-04-22 Antti Koivisto <Antti Koivisto>

Reviewed by Oliver.

Support keyPoints attribute of <animateMotion>.


Tested by SVG test suite test
animate-elem-33-t.svg

  • svg/SVGAnimateMotionElement.cpp: (WebCore::SVGAnimateMotionElement::parseMappedAttribute):
  • svg/SVGAnimationElement.cpp: (WebCore::parseKeyTimes): (WebCore::SVGAnimationElement::parseMappedAttribute): (WebCore::SVGAnimationElement::calculatePercentForSpline): (WebCore::SVGAnimationElement::calculatePercentFromKeyPoints): (WebCore::SVGAnimationElement::currentValuesFromKeyPoints): (WebCore::SVGAnimationElement::currentValuesForValuesAnimation): (WebCore::SVGAnimationElement::startedActiveInterval): (WebCore::SVGAnimationElement::updateAnimation):
  • svg/SVGAnimationElement.h:
3:37 PM Changeset in webkit [32410] by ggaren@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.


Fixed crash when unwinding from exceptions inside eval.

  • VM/Machine.cpp: (KJS::Machine::unwindCallFrame): Don't assume that the top of the current call frame's scope chain is an activation: it can be the global object, instead.
3:34 PM Changeset in webkit [32409] by mjs@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoff.

  • kjs/testkjs.cpp: (main): Convert signals to exit codes, so that crashing tests are detected as regression test failures.
2:49 PM Changeset in webkit [32408] by zecke@webkit.org
  • 2 edits in trunk/WebCore

2008-04-22 Holger Hans Peter Freyther <zecke@selfish.org>

Unreviewed build fix.

Update WebKit.qrc to catch up with the addition and removal of images
from page/inspector/Images in recent commits.

  • page/inspector/WebKit.qrc:
2:44 PM Changeset in webkit [32407] by ddkilzer@apple.com
  • 2 edits in trunk/WebKitTools

Bug 18683: update-webkit returns 0 even if it fails

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

Reviewed by Mitz Pettel.

  • Scripts/update-webkit: (runSvnUpdate): Die if close() fails.
2:40 PM Changeset in webkit [32406] by hyatt@apple.com
  • 25 edits
    3 adds in trunk

WebCore:

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

Fix for <rdar://5589634>.

Implement CSS alpha masks. The syntax is very similar to that used for backgrounds. Multiple mask images
can be specified, and each one can be tiled, positioned, etc. The following new properties have been
added (all of which are analogous to their background-* counterparts).

mask, mask-image, mask-clip, mask-origin, mask-repeat, mask-attachment, mask-position

The alpha values in the final composite image are used to determine how the mask applies (alpha of 1 = show,
alpha of 0 = don't show).

SVG images and CSS gradients can also be used as masks.

Reviewed by Dan

Added fast/backgrounds/repeat/mask-negative-offset-repeat.html, fast/backgrounds/svg-as-mask.html

  • css/CSSMutableStyleDeclaration.cpp: (WebCore::CSSMutableStyleDeclaration::getPropertyValue): (WebCore::initShorthandMap):
  • css/CSSParser.cpp: (WebCore::CSSParser::parseFillProperty): (WebCore::CSSParser::parseTransformOrigin):
  • css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::adjustRenderStyle): (WebCore::CSSStyleSelector::applyProperty):
  • rendering/InlineFlowBox.cpp: (WebCore::InlineFlowBox::paint): (WebCore::InlineFlowBox::paintFillLayers): (WebCore::InlineFlowBox::paintFillLayer): (WebCore::InlineFlowBox::paintBoxDecorations): (WebCore::InlineFlowBox::paintMask):
  • rendering/InlineFlowBox.h:
  • rendering/RenderBlock.cpp: (WebCore::RenderBlock::paint): (WebCore::RenderBlock::paintObject):
  • rendering/RenderBox.cpp: (WebCore::RenderBox::paintRootBoxDecorations): (WebCore::RenderBox::paintBoxDecorations): (WebCore::RenderBox::paintMask): (WebCore::RenderBox::paintFillLayers): (WebCore::RenderBox::paintFillLayer): (WebCore::RenderBox::paintFillLayerExtended):
  • rendering/RenderBox.h:
  • rendering/RenderFieldset.cpp: (WebCore::RenderFieldset::paintBoxDecorations): (WebCore::RenderFieldset::paintMask):
  • rendering/RenderFieldset.h:
  • rendering/RenderInline.cpp: (WebCore::RenderInline::requiresLayer):
  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::isTransparent): (WebCore::RenderLayer::paintLayer):
  • rendering/RenderObject.cpp: (WebCore::RenderObject::requiresLayer): (WebCore::mustRepaintFillLayers): (WebCore::RenderObject::mustRepaintBackgroundOrBorder): (WebCore::RenderObject::setStyle): (WebCore::RenderObject::updateFillImages):
  • rendering/RenderObject.h: (WebCore::): (WebCore::RenderObject::hasMask): (WebCore::RenderObject::paintMask): (WebCore::RenderObject::paintFillExtended):
  • rendering/RenderReplaced.cpp: (WebCore::RenderReplaced::paint):
  • rendering/RenderStyle.cpp: (WebCore::FillLayer::FillLayer): (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
  • rendering/RenderStyle.h: (WebCore::FillLayer::initialFillComposite): (WebCore::FillLayer::initialFillSize): (WebCore::FillLayer::FillLayer): (WebCore::RenderStyle::hasMask):
  • rendering/RenderTable.cpp: (WebCore::RenderTable::paint): (WebCore::RenderTable::paintBoxDecorations): (WebCore::RenderTable::paintMask):
  • rendering/RenderTable.h:
  • rendering/RenderTableCell.cpp: (WebCore::RenderTableCell::requiresLayer): (WebCore::RenderTableCell::paintBackgroundsBehindCell): (WebCore::RenderTableCell::paintMask):
  • rendering/RenderTableCell.h:
  • rendering/RenderWidget.cpp: (WebCore::RenderWidget::paint):
  • svg/graphics/SVGImage.cpp: (WebCore::SVGImage::draw): (WebCore::SVGImage::dataChanged):

LayoutTests:

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

Add support for CSS alpha masks. Test cases.

Reviewed by Dan

  • fast/backgrounds/repeat/mask-negative-offset-repeat.html: Added.
  • fast/backgrounds/repeat/resources/white.gif: Added.
  • fast/backgrounds/svg-as-mask.html: Added.
2:38 PM Changeset in webkit [32405] by weinig@apple.com
  • 13 edits
    2 adds in trunk/WebCore

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

Reviewed by Geoffrey Garen.

Make DOMAbstractView have a weak reference to the Frame instead of ref'ing
the DOMWindow.

To ensure that the WindowScriptObject (which is a DOMAbstractView) stays valid
after a navigation once the split window is completed, the DOMAbstractView must
wrap the Frame instead of a DOMWindow since the DOMWindow will change.

  • WebCore.xcodeproj/project.pbxproj:
  • bindings/objc/DOMAbstractView.mm: Added. (-[DOMAbstractView dealloc]): (-[DOMAbstractView finalize]): (-[DOMAbstractView document]): (-[DOMAbstractView _disconnectFrame]): (-[DOMAbstractView WebCore::]): (-[DOMAbstractView _initWithFrame:WebCore::]): (+[DOMAbstractView _wrapAbstractView:WebCore::]): Add custom implementation to implement weak reference semantics.
  • bindings/objc/DOMAbstractViewFrame.h: Added. Declare the [DOMAbstractView _disconectFrame] selector.
  • bindings/objc/DOMInternal.h: Remove DOMRGBColor Internal category since it is now generated.
  • bindings/objc/DOMUtility.mm: (KJS::createDOMWrapper): Don't ever create a DOMAbstractView from a JSDOMWindow, only from JSDOMWindowWrapper.
  • bindings/scripts/CodeGeneratorObjC.pm: Generate internal header for IDLs that want custom implementations.
  • css/RGBColor.idl: Make this a PODType as it really is in the implementation.
  • page/AbstractView.idl: This now needs a custom objective-c binding implementation.
  • page/Frame.cpp: (WebCore::Frame::~Frame): disconnect the weak frame reference in the WindowScriptObject.
  • page/Frame.h:
  • page/gtk/FrameGtk.cpp: (WebCore::Frame::disconnectPlatformScriptObjects): Dummy implementation.
  • page/mac/FrameMac.mm: (WebCore::Frame::windowScriptObject): ASSERT that the windowScriptObject is a DOMAbstractView. (WebCore::Frame::disconnectPlatformScriptObjects): Disconnect the frame pointer from the windowScriptObject.
  • page/qt/FrameQt.cpp: (WebCore::Frame::disconnectPlatformScriptObjects): Dummy implementation.
  • page/win/FrameWin.cpp: (WebCore::Frame::disconnectPlatformScriptObjects): Ditto.
2:21 PM Changeset in webkit [32404] by ggaren@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt and Maciej Stachowiak.


Renamed "needsActivation" to "needsFullScopeChain" because lying will
make hair grow on the backs of your hands.

1:45 PM Changeset in webkit [32403] by mitz@apple.com
  • 1 edit in trunk/WebCore/ChangeLog

Fix typo in ChangeLog.

1:42 PM Changeset in webkit [32402] by mitz@apple.com
  • 4 edits in trunk

WebCore:

Reviewed by Sam Weinig.

  • rendering/bidi.cpp: (WebCore::RenderBlock::layoutInlineChildren): Make sure to give the trailing white space a bidi level consistent with its position.

LayoutTests:

Reviewed by Sam Weinig.

  • updated results with the trailing space having the right directionality
  • platform/mac/fast/text/trailing-white-space-2-expected.txt:
11:52 AM Changeset in webkit [32401] by timothy@apple.com
  • 1 edit
    75 deletes in trunk/WebCore

Remove many unused Web Inspector images.

Rubber-stamped by Adam Roben and Sam Weinig.

  • page/inspector/Images/attachedShadow.png: Removed.
  • page/inspector/Images/backNormal.png: Removed.
  • page/inspector/Images/bottomShadow.png: Removed.
  • page/inspector/Images/breadcrumbBackground.png: Removed.
  • page/inspector/Images/console.png: Removed.
  • page/inspector/Images/databaseBrowserViewNormal.png: Removed.
  • page/inspector/Images/databaseBrowserViewNormalSelected.png: Removed.
  • page/inspector/Images/databaseBrowserViewSmall.png: Removed.
  • page/inspector/Images/databaseBrowserViewSmallSelected.png: Removed.
  • page/inspector/Images/databaseQueryViewNormal.png: Removed.
  • page/inspector/Images/databaseQueryViewNormalSelected.png: Removed.
  • page/inspector/Images/databaseQueryViewSmall.png: Removed.
  • page/inspector/Images/databaseQueryViewSmallSelected.png: Removed.
  • page/inspector/Images/disclosureDownPressed.png: Removed.
  • page/inspector/Images/disclosureRightDown.png: Removed.
  • page/inspector/Images/disclosureRightPressed.png: Removed.
  • page/inspector/Images/document.png: Removed.
  • page/inspector/Images/domViewNormal.png: Removed.
  • page/inspector/Images/domViewNormalSelected.png: Removed.
  • page/inspector/Images/domViewSmall.png: Removed.
  • page/inspector/Images/domViewSmallSelected.png: Removed.
  • page/inspector/Images/downTriangle.png: Removed.
  • page/inspector/Images/folder.png: Removed.
  • page/inspector/Images/forwardNormal.png: Removed.
  • page/inspector/Images/gradient.png: Removed.
  • page/inspector/Images/gradientHighlight.png: Removed.
  • page/inspector/Images/gradientHighlightBottom.png: Removed.
  • page/inspector/Images/hideStatusWidget.png: Removed.
  • page/inspector/Images/hideStatusWidgetPressed.png: Removed.
  • page/inspector/Images/network.png: Removed.
  • page/inspector/Images/plainDocument.png: Removed.
  • page/inspector/Images/popupArrows.png: Removed.
  • page/inspector/Images/popupArrowsBlack.png: Removed.
  • page/inspector/Images/reload.png: Removed.
  • page/inspector/Images/rightTriangle.png: Removed.
  • page/inspector/Images/showStatusWidget.png: Removed.
  • page/inspector/Images/showStatusWidgetPressed.png: Removed.
  • page/inspector/Images/sidbarItemBackground.png: Removed.
  • page/inspector/Images/sidebarActionWidget.png: Removed.
  • page/inspector/Images/sidebarActionWidgetPressed.png: Removed.
  • page/inspector/Images/sidebarAttachWidget.png: Removed.
  • page/inspector/Images/sidebarAttachWidgetPressed.png: Removed.
  • page/inspector/Images/sidebarDetachWidget.png: Removed.
  • page/inspector/Images/sidebarDetachWidgetPressed.png: Removed.
  • page/inspector/Images/sidebarResizeWidget.png: Removed.
  • page/inspector/Images/sidebarStatusAreaBackground.png: Removed.
  • page/inspector/Images/sourceViewNormal.png: Removed.
  • page/inspector/Images/sourceViewNormalSelected.png: Removed.
  • page/inspector/Images/sourceViewSmall.png: Removed.
  • page/inspector/Images/sourceViewSmallSelected.png: Removed.
  • page/inspector/Images/tab.png: Removed.
  • page/inspector/Images/tabSelected.png: Removed.
  • page/inspector/Images/toggleDown.png: Removed.
  • page/inspector/Images/toggleUp.png: Removed.
  • page/inspector/Images/toolbarButtonNormal.png: Removed.
  • page/inspector/Images/toolbarButtonNormalInactive.png: Removed.
  • page/inspector/Images/toolbarButtonNormalPressed.png: Removed.
  • page/inspector/Images/toolbarButtonNormalSelected.png: Removed.
  • page/inspector/Images/toolbarButtonNormalSelectedInactive.png: Removed.
  • page/inspector/Images/toolbarButtonSmall.png: Removed.
  • page/inspector/Images/toolbarButtonSmallInactive.png: Removed.
  • page/inspector/Images/toolbarButtonSmallPressed.png: Removed.
  • page/inspector/Images/toolbarButtonSmallSelected.png: Removed.
  • page/inspector/Images/toolbarButtonSmallSelectedInactive.png: Removed.
  • page/inspector/Images/toolbarPopupButtonNormal.png: Removed.
  • page/inspector/Images/toolbarPopupButtonNormalInactive.png: Removed.
  • page/inspector/Images/toolbarPopupButtonNormalPressed.png: Removed.
  • page/inspector/Images/toolbarPopupButtonSmall.png: Removed.
  • page/inspector/Images/toolbarPopupButtonSmallInactive.png: Removed.
  • page/inspector/Images/toolbarPopupButtonSmallPressed.png: Removed.
  • page/inspector/Images/toolbarSplitButtonDividerNormal.png: Removed.
  • page/inspector/Images/toolbarSplitButtonDividerNormalInactive.png: Removed.
  • page/inspector/Images/toolbarSplitButtonDividerSmall.png: Removed.
  • page/inspector/Images/toolbarSplitButtonDividerSmallInactive.png: Removed.
  • page/inspector/Images/treeLeftTriangleBlack.png: Removed.
11:29 AM Changeset in webkit [32400] by andersca@apple.com
  • 6 edits in trunk

WebCore:

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

Reviewed by Darin.

Add NPN_Construct and NPN_PluginThreadAsyncCall declarations.

  • bridge/npapi.h:
  • bridge/npruntime.h:
  • plugins/npfunctions.h:

WebKit/mac:

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

Reviewed by Darin.

Add NPN_Construct and NPN_PluginThreadAsyncCall declarations.


  • Plugins/npfunctions.h:
11:19 AM Changeset in webkit [32399] by ggaren@apple.com
  • 1 edit in branches/squirrelfish/JavaScriptCore/ChangeLog

Fixed ChangeLog

10:55 AM Changeset in webkit [32398] by ggaren@apple.com
  • 8 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.


Fixed ScopeChainNode lifetime problems:


(1) In "with" and "catch" scopes, we would construct a ScopeChain
object and then jump across its destructor, leaking the ScopeChainNode
we had pushed.

(2) In global and eval scopes, we would fail to initially ref
"scopeChain", causing us to overrelease it later. Now that we ref
"scopeChain" properly, we also need to deref it when the script
terminates.

SunSpider reports no change.

10:55 AM Changeset in webkit [32397] by alice.liu@apple.com
  • 3 edits
    2 adds in trunk

WebCore:

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

Reviewed by John Sullivan and Adam Roben.

Test: fast/events/tabindex-focus-chain.html

  • dom/Document.cpp: (WebCore::Document::nextFocusableNode): (WebCore::Document::previousFocusableNode): If the focused node has been removed from the normal tabbing order, advancing focus from this node should advance to the next focusable node in tree order, and not start over at the beginning of the focus chain.

LayoutTests:

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

Reviewed by John Sullivan and Adam Roben.

Test for new behavior when advancing focus from a focusable-by-script node, which now
matches Firefox 2 and 3

  • fast/events/tabindex-focus-chain-expected.txt: Added.
  • fast/events/tabindex-focus-chain.html: Added.
9:54 AM Changeset in webkit [32396] by timothy@apple.com
  • 6 edits
    1 add in trunk/WebCore

Adds a debugger toggle button to the scripts status bar that will start
and stop debugging of the inspected page.

Reviewed by Adam Roben.

  • English.lproj/InspectorLocalizedStrings.js: Adds the two new tooltip strings.
  • page/InspectorController.cpp:

(WebCore::debuggerAttached): Call InspectorController::debuggerAttached.
(WebCore::InspectorController::InspectorController): Initialize
m_debuggerAttached to false.
(WebCore::InspectorController::windowScriptObjectAvailable): Add the debuggerAttached
property to the InspectorController class.
(WebCore::InspectorController::startDebuggingAndReloadInspectedPage):
Set m_debuggerAttached to true.
(WebCore::InspectorController::stopDebugging): Set m_debuggerAttached to false.

  • page/InspectorController.h:
  • page/inspector/Images/debuggingButtons.png: Added.
  • page/inspector/ScriptsPanel.js:

(WebInspector.ScriptsPanel): Disable the pause button. Create the debugging
button and setup the id, className and event listener. Call reset.
(WebInspector.ScriptsPanel.prototype.get statusBarItems): Return an array
(WebInspector.ScriptsPanel.prototype.reset): Call _updateDebuggerButtons.
(WebInspector.ScriptsPanel.prototype._updateDebuggerButtons): Adjust the title of
the debugging button to match what will happen when clicked. Change the style class,
and toggle the disabled state of the pause button.
(WebInspector.ScriptsPanel.prototype._toggleDebugging): Start or stop debugging
depending on InspectorController.debuggerAttached().

  • page/inspector/inspector.css: Added style rules for the debugger button.
8:19 AM Changeset in webkit [32395] by Adam Roben
  • 2 edits in trunk/WebCore

Change PlatformWheelEvent to use GET_WHEEL_DELTA_WPARAM

Reviewed by Dan Bernstein.

  • platform/win/WheelEventWin.cpp: (WebCore::PlatformWheelEvent::PlatformWheelEvent): Use GET_WHEEL_DELTA_WPARAM, which is documented way of getting the wheel delta (it is equivalent to what we were previously doing, however).
8:05 AM Changeset in webkit [32394] by Simon Hausmann
  • 2 edits in trunk/WebCore

Qt build fix.

Adjust the Qt resource file to removed image files.

6:56 AM Changeset in webkit [32393] by timothy@apple.com
  • 2 edits
    18 deletes in trunk/WebCore

Use CSS gradients to replace many image files in the Web Inspector.

Rubber-stamped by Adam Roben.

  • page/inspector/Images/alternateTableRows.png: Removed.
  • page/inspector/Images/darkShadow.png: Removed.
  • page/inspector/Images/paneHeader.png: Removed.
  • page/inspector/Images/paneHeaderActive.png: Removed.
  • page/inspector/Images/sidebarSelection.png: Removed.
  • page/inspector/Images/sidebarSelectionBackground.png: Removed.
  • page/inspector/Images/sidebarSelectionBackgroundFocused.png: Removed.
  • page/inspector/Images/sidebarSelectionBackgroundInactive.png: Removed.
  • page/inspector/Images/sidebarSelectionBlurred.png: Removed.
  • page/inspector/Images/sidebarSelectionBlurredTall.png: Removed.
  • page/inspector/Images/sidebarSelectionGray.png: Removed.
  • page/inspector/Images/sidebarSelectionGrayTall.png: Removed.
  • page/inspector/Images/sidebarSelectionTall.png: Removed.
  • page/inspector/Images/sidebarSmallSelectionBackground.png: Removed.
  • page/inspector/Images/sidebarSmallSelectionBackgroundFocused.png: Removed.
  • page/inspector/Images/sidebarSmallSelectionBackgroundInactive.png: Removed.
  • page/inspector/Images/toolbarBackground.png: Removed.
  • page/inspector/Images/toolbarBackgroundInactive.png: Removed.
  • page/inspector/inspector.css:
5:46 AM Changeset in webkit [32392] by Simon Hausmann
  • 3 edits in trunk/WebCore

Andre Poenitz <andre.poenitz@trolltech.com>

Remove compiler warnings on string literals used to construct QStrings
in webkit.

4:33 AM Changeset in webkit [32391] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Benjamin Meyer <bmeyer@trolltech.com>

Fixes: QWebPage's QNetworkManager's can be shared among webpages.

Don't force the deletion of the object, but let QObject take care of it.

4:27 AM Changeset in webkit [32390] by Simon Hausmann
  • 3 edits in trunk/WebKit/qt

Documentation for QWebPluginFactory and documentation updates for QWebPage.

4:27 AM Changeset in webkit [32389] by Simon Hausmann
  • 5 edits in trunk/WebKit/qt

Simon Hausmann <Simon Hausmann>

Added QWebPage::swallowContextMenuEvent and QWebPage::updatePositionDependentActions.

3:56 AM Changeset in webkit [32388] by Simon Hausmann
  • 4 edits in trunk/WebKit/qt

Added Extension APIs for QWebPage.

3:46 AM Changeset in webkit [32387] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Tor Arne Vestbø <tavestbo@trolltech.com>

Emit loadProgress() signal on loadStarted().

3:33 AM Changeset in webkit [32386] by Simon Hausmann
  • 9 edits in trunk/WebKit/qt

Zack Rusin <zack@kde.org>

Fix background propagation from the QWebView's palette.

The background brush of the palette needs to be propagated to the WebCore::FrameView.

3:30 AM Changeset in webkit [32385] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Benjamin Meyer <bmeyer@trolltech.com>

Fix maps.google.com

We have to include a version in the Safari tag in the user-agent.

3:30 AM Changeset in webkit [32384] by Simon Hausmann
  • 2 edits in trunk/WebCore

Tor Arne Vestbø <tavestbo@trolltech.com>

Fall back to last path component for suggested filename if the HTTP content disposition is not set.

3:14 AM Changeset in webkit [32383] by mjs@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Alexey.


  • use global object instead of null for "this" on unqualified calls


This fixes 10 more JSC test regressions.

  • VM/Machine.cpp: (KJS::Machine::privateExecute):
2:36 AM Changeset in webkit [32382] by Simon Hausmann
  • 2 edits in trunk/WebCore

Tor Arne Vestbø <tavestbo@trolltech.com>

Implemented the generation of the title string for images.

2:31 AM Changeset in webkit [32381] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Tor Arne Vestbø <tavestbo@trolltech.com>

Add visual focusing hint for clear button and
Change focus to web page after user enters new URL.

1:31 AM Changeset in webkit [32380] by Simon Hausmann
  • 7 edits in trunk/WebKit/qt

Added QWebFrame::hitTestContent() and QWebHitTestResult.

1:31 AM Changeset in webkit [32379] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Simon Hausmann <Simon Hausmann>

Don't crash if an input method query is done without a page.

1:30 AM Changeset in webkit [32378] by Simon Hausmann
  • 5 edits in trunk/WebKit/qt

Simon Hausmann <Simon Hausmann>

Added re-implementations of QObject::event for future safety.

This makes it easier to fix bugs with the event handling even in patch releases
and is a general style we follow in Qt.

1:19 AM Changeset in webkit [32377] by mjs@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.


  • throw proper exceptions for objects that don't implement call or construct


This fixes 21 more JSC test regressions. It is also seemingly an
0.5% progression.

  • VM/ExceptionHelpers.cpp: (KJS::createNotAnObjectError): (KJS::createNotAConstructorError): (KJS::createNotAFunctionError):
  • VM/ExceptionHelpers.h:
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
12:56 AM Changeset in webkit [32376] by Simon Hausmann
  • 3 edits in trunk/WebKit/qt

Benjamin Meyer <bmeyer@trolltech.com>

Fix construction of the user agent.

The user-agent is now composed of

  • the platform and subplatform
  • the Qt version or application name and version (if set)
  • the locale
  • the SSL settings
12:45 AM Changeset in webkit [32375] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Thiago Macieira <tjmaciei@trolltech.com>

Fixes: Pedantic compilation fix

Don't put semi-colons after braces closing namespaces.

12:43 AM Changeset in webkit [32374] by Simon Hausmann
  • 3 edits in trunk/WebCore

Qt build fix.

Apr 21, 2008:

11:47 PM Changeset in webkit [32373] by jhoneycutt@apple.com
  • 3 edits in trunk/WebCore

2008-04-19 Jon Honeycutt <jhoneycutt@apple.com>

Reviewed by Darin.

Add a method to get the AccessibilityObject's access key,

  • page/AccessibilityObject.cpp: (WebCore::AccessibilityObject::accessKey): Added; returns the object's access key attribute.
  • page/AccessibilityObject.h: Added declaration for accessKey().
11:47 PM Changeset in webkit [32372] by jhoneycutt@apple.com
  • 2 edits in trunk/WebKit/win

2008-04-19 Jon Honeycutt <jhoneycutt@apple.com>

Reviewed by Darin.

Implement get_accHelp().

  • AccessibleBase.cpp: (AccessibleBase::get_accHelp): Report the result of calling the object's helpText() method.
11:46 PM Changeset in webkit [32371] by jhoneycutt@apple.com
  • 2 edits in trunk/WebKit/win

2008-04-19 Jon Honeycutt <jhoneycutt@apple.com>

Reviewed by Darin.

Implement get_accState().

  • AccessibleBase.cpp: (AccessibleBase::get_accState):
11:46 PM Changeset in webkit [32370] by jhoneycutt@apple.com
  • 3 edits in trunk/WebKit/win

2008-04-18 Jon Honeycutt <jhoneycutt@apple.com>

Reviewed by Darin.

Implement get_accRole().

  • AccessibleBase.cpp: (AccessibleBase::get_accRole): Report the result of role(). (MSAARole): Added; returns the MSAA role for a WebCore role. (AccessibleBase::role): Return the MSAA role for the object's roleValue.
  • AccessibleBase.h: Add declaration for role().
11:45 PM Changeset in webkit [32369] by jhoneycutt@apple.com
  • 3 edits in trunk/WebKit/win

2008-04-18 Jon Honeycutt <jhoneycutt@apple.com>

Reviewed by Darin.

Implement get_accName(), get_accValue(), get_accDescription(). Added
virtual methods that accessible objects can override to customize the
result.

  • AccessibleBase.cpp: (AccessibleBase::get_accName): Report result of name(). (AccessibleBase::get_accValue): Report result of value(). (AccessibleBase::get_accDescription): Report result of description(). (AccessibleBase::name): Added; returns AccessibilityObject::title(). (AccessibleBase::value): Added; returns AccessibilityObject::stringValue(). (AccessibleBase::description): Added; returns AccessibilityObject::accessibilityDescription().
  • AccessibleBase.h: Added declarations for name(), value(), and description().
  • ChangeLog: Fix my misuse of "definition."
10:47 PM Changeset in webkit [32368] by hyatt@apple.com
  • 1 edit in trunk/LayoutTests/svg/css/getComputedStyle-basic-expected.txt

Fix layout test results for new props.

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

Implement emitCode for ConstDeclNode.

Reviewed by Geoff

This fixes the crash (assertion) in js1_5/Scope/scope-001.js

10:20 PM Changeset in webkit [32366] by mjs@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam.


  • add some support for the split window object

This fixes many layout tests.


  • VM/Machine.cpp: (KJS::resolveBaseAndFunc): Use toThisObject() to ensure we get the wrapper global, if one exists, as the "this" object.
  • kjs/function.cpp: (KJS::globalFuncEval): Use toGlobalObject() to handle the wrapper case properly.
10:17 PM Changeset in webkit [32365] by mjs@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.


  • restore ScopeChain::operator= to avoid crash on many layout tests


Otherwise, FunctionImp::setScope would cause a reference
underflow. I implemented using the copy construct and swap idiom.

  • kjs/scope_chain.h: (KJS::ScopeChain::swap): (KJS::ScopeChain::operator=):
9:44 PM Changeset in webkit [32364] by weinig@apple.com
  • 2 edits in trunk/WebCore

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

Reviewed by Anders Carlsson.

Fix numerous crashing tests.

  • html/HTMLHtmlElement.cpp: (WebCore::HTMLHtmlElement::insertedIntoDocument): Null check document->frame().
9:06 PM Changeset in webkit [32363] by mrowe@apple.com
  • 1 edit
    2 moves
    1 delete in trunk/LayoutTests

Fix the case on the file names of test results for svg/custom/altglyph.svg, and remove an extra -expected.txt that was checked in with incorrect
case.

  • platform/mac/svg/custom/altGlyph-expected.checksum: Removed.
  • platform/mac/svg/custom/altGlyph-expected.png: Removed.
  • platform/mac/svg/custom/altGlyph-expected.txt: Removed.
  • platform/mac/svg/custom/altglyph-expected.checksum: Copied from LayoutTests/platform/mac/svg/custom/altGlyph-expected.checksum.
  • platform/mac/svg/custom/altglyph-expected.png: Copied from LayoutTests/platform/mac/svg/custom/altGlyph-expected.png.
8:33 PM Changeset in webkit [32362] by weinig@apple.com
  • 7 edits
    9 adds in trunk

WebCore:

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

Reviewed by Darin Adler.

Tests: fast/media/implicit-media-all.html

fast/media/monochrome.html

  • allow implicit "all" media in media queries
  • use a value of 0 for the monochrome media feature on color displays
  • css/CSSGrammar.y:
  • css/CSSParser.cpp: (WebCore::CSSParser::createFloatingMediaQuery):
  • css/CSSParser.h:
  • css/MediaQueryEvaluator.cpp: (WebCore::monochromeMediaFeatureEval):

LayoutTests:

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

Reviewed by Darin Adler.

  • update acid3.html to reflect the updated test.
  • test for implicit "all" media in media queries
  • test that the value of the monochrome media feature is 0 on color displays
  • http/tests/misc/acid3.html:
  • fast/media/implicit-media-all.html: Added.
  • fast/media/monochrome.html: Added.
  • platform/mac/fast/media/implicit-media-all-expected.checksum: Added.
  • platform/mac/fast/media/implicit-media-all-expected.png: Added.
  • platform/mac/fast/media/implicit-media-all-expected.txt: Added.
  • platform/mac/fast/media/monochrome-expected.checksum: Added.
  • platform/mac/fast/media/monochrome-expected.png: Added.
  • platform/mac/fast/media/monochrome-expected.txt: Added.
5:42 PM Changeset in webkit [32361] by oliver@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

Bug 18649: SQUIRRELFISH: correctly handle exceptions in eval code
<https://bugs.webkit.org/show_bug.cgi?id=18649>

Reviewed by Geoff

Allocate a callframe for eval() and initialise with a null codeBlock to
indicate native code. This prevents the unwinder from clobbering the
register stack.

5:32 PM Changeset in webkit [32360] by ggaren@apple.com
  • 2 edits in branches/squirrelfish/WebKit/mac

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

Build fix.

  • ChangeLog:
  • WebView/WebScriptDebugDelegate.mm: (-[WebScriptCallFrame scopeChain]):
5:11 PM Changeset in webkit [32359] by ggaren@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam Weinig.


Removed ScopeChain::push(ScopeChain&) because it was unused. Moved
ScopeChain::print to ScopeChainNode.


ScopeChain is now nothing more than a resource-handling wrapper around
ScopeChainNode.

5:08 PM SquirrelFish edited by ggaren@apple.com
(diff)
5:07 PM SquirrelFish edited by ggaren@apple.com
(diff)
5:04 PM Changeset in webkit [32358] by beidson@apple.com
  • 5 edits in trunk/WebCore

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

Rockingly reviewed by Adele

Small StorageArea cleanups

  • storage/SessionStorageArea.cpp: (WebCore::SessionStorageArea::copy): Pass "this" instead of the StorageMap belonging to this (WebCore::SessionStorageArea::SessionStorageArea):
  • storage/SessionStorageArea.h:
  • storage/StorageArea.cpp: Changed to not expose the StorageMap at all - it's dangerous to expose it since we rely explicitly on its ref-count (WebCore::StorageArea::StorageArea): Take another StorageArea as the c'tor argument and get the StorageMap from that. (WebCore::StorageArea::setItem): The previous comment/code here was bogus. All JS objects passed in to this API are stringified, so there's no such thing as "null" for setItem()
  • storage/StorageArea.h:
4:53 PM Changeset in webkit [32357] by mjs@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej.

Bug 18671: SquirrelFish: continue inside switch fails
<https://bugs.webkit.org/show_bug.cgi?id=18671>

  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::jumpContextForLabel):
  • VM/CodeGenerator.h:
  • kjs/nodes.cpp: (KJS::ContinueNode::emitCode):
4:51 PM Changeset in webkit [32356] by dino@apple.com
  • 4 edits
    1 add in trunk/WebKitSite

Updated CSS Visual Effects proposals.

CSS Animations

  • described simplified sandwich model (that animations have no effect outside their duration and last specified animation wins)
  • diagram showing the above
  • specified animations to start at style resolution or document load, whichever is later.
  • animation start events always have elapsedTime == 0

CSS Transforms

  • removed text saying that elements cannot be drawn as intersecting.
  • described that preserve-3d trees often need a flattening parent, otherwise elements can be hidden behind their ancestor's background.
  • describe that preserve-3d is not always possible, such as when overflow is 'hidden'.

CSS Transitions

  • no change
  • specs/CSSVisualEffects/CSSAnimation.html:
  • specs/CSSVisualEffects/CSSTransforms.html:
  • specs/CSSVisualEffects/CSSTransitions.html:
  • specs/CSSVisualEffects/sandwich.png: Added.
4:22 PM Changeset in webkit [32355] by hyatt@apple.com
  • 1 edit in trunk/WebCore/css/CSSParser.cpp

Fix Windows bustage.

4:13 PM Changeset in webkit [32354] by kmccullough@apple.com
  • 4 edits in trunk/JavaScriptCore

2008-04-21 Kevin McCullough <kmccullough@apple.com>

Reviewed by Adam.

<rdar://problem/5770054> JavaScript profiler (10928)

  • When stop profiling is called we need to stop the timers on all the functions that are still running.
  • profiler/FunctionCallProfile.cpp: (KJS::FunctionCallProfile::didExecute): (KJS::FunctionCallProfile::stopProfiling):
  • profiler/FunctionCallProfile.h:
  • profiler/Profiler.cpp: (KJS::Profiler::stopProfiling):
3:48 PM Changeset in webkit [32353] by justin.garcia@apple.com
  • 4 edits
    4 adds in trunk

WebCore:

2008-04-21 Justin Garcia <justin.garcia@apple.com>

Reviewed by John Sullivan.

<rdar://problem/5803706> Pressing return at the end of a header doesn't break out of header (17460)


If we're doing InsertParagraphSeparator at the end of a header element, do not clone it.
Renamed m_useDefaultParagraphElement to m_mustUseDefaultParagraphElement, since now,
when it is false, that does not necessarily mean that a default paragraph element
will not be used. Callers that passed false for this argument are OK with this.

  • editing/InsertParagraphSeparatorCommand.cpp: (WebCore::InsertParagraphSeparatorCommand::InsertParagraphSeparatorCommand): (WebCore::InsertParagraphSeparatorCommand::shouldUseDefaultParagraphElement): (WebCore::InsertParagraphSeparatorCommand::doApply):
  • editing/InsertParagraphSeparatorCommand.h:

LayoutTests:

2008-04-21 Justin Garcia <justin.garcia@apple.com>

Reviewed by John Sullivan.

<rdar://problem/5803706> Pressing return at the end of a header doesn't break out of header (17460)

  • editing/inserting/5803706-1-expected.txt: Added.
  • editing/inserting/5803706-1.html: Added.
  • editing/inserting/5803706-2-expected.txt: Added.
  • editing/inserting/5803706-2.html: Added.
3:22 PM Changeset in webkit [32352] by mrowe@apple.com
  • 5 edits in trunk/LayoutTests

Land updated results for three tests and disable three more on Tiger.

  • http/tests/xmlhttprequest/infoOnProgressEvent-expected.txt:
  • platform/mac-tiger/Skipped: Disable three tests using font-face that fail intermittently on Tiger bots.
  • platform/mac-tiger/svg/W3C-SVG-1.1/animate-elem-06-t-expected.txt: Update Tiger results following r32247.
  • platform/mac-tiger/svg/W3C-SVG-1.1/animate-elem-07-t-expected.txt: Ditto.
3:21 PM Changeset in webkit [32351] by andersca@apple.com
  • 8 edits in trunk/WebCore

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

Reviewed by Adam.

Perform cache selection. If a main resource has a URL that exists in a cache, load it from there.


  • html/HTMLAttributeNames.in: Add manifest attribute.


  • html/HTMLHtmlElement.cpp: (WebCore::HTMLHtmlElement::insertedIntoDocument):
  • html/HTMLHtmlElement.h: Perform cache selection.


  • loader/MainResourceLoader.cpp: (WebCore::MainResourceLoader::load):
  • loader/appcache/ApplicationCacheGroup.cpp: (WebCore::cacheHostSet): (WebCore::urlHostHash): (WebCore::ApplicationCacheGroup::cacheForRequest): (WebCore::ApplicationCacheGroup::selectCache):
  • loader/appcache/ApplicationCacheGroup.h:
  • platform/KURL.h: (WebCore::KURL::hostStart): (WebCore::KURL::hostEnd):
3:14 PM Changeset in webkit [32350] by eric@webkit.org
  • 2 edits in trunk/WebCore

Reviewed by eseidel and darin. Landed by eseidel.

Fix broken optimization in createStrippingNullCharacters.

  • platform/text/StringImpl.cpp: (WebCore::StringImpl::createStrippingNullCharacters):
3:03 PM Changeset in webkit [32349] by ggaren@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam Weinig.


Moved push(JSObject*) and pop() from ScopeChain to ScopeChainNode,
rearranging scope_chain.h a bit.

SunSpider reports no change.

2:59 PM Changeset in webkit [32348] by hyatt@apple.com
  • 10 edits in trunk

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

Make the back end parsing of background properties generic. Rename all the parsing functions from
background -> fill.

Add a new set of properties for doing masks. The code is now refactored so that the mask properties
and the background properties share parsing routines.

Reviewed by Dan

  • css/CSSComputedStyleDeclaration.cpp: (WebCore::): (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
  • css/CSSParser.cpp: (WebCore::CSSParser::parseValue): (WebCore::CSSParser::addFillValue): (WebCore::CSSParser::parseFillShorthand): (WebCore::CSSParser::parseFillImage): (WebCore::CSSParser::parseFillPositionXY): (WebCore::CSSParser::parseFillPosition): (WebCore::CSSParser::parseFillSize): (WebCore::CSSParser::parseFillProperty): (WebCore::CSSParser::parseTransformOrigin):
  • css/CSSParser.h:
  • css/CSSPropertyNames.in:
  • css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::CSSStyleSelector): (WebCore::CSSStyleSelector::mapFillAttachment): (WebCore::CSSStyleSelector::mapFillClip): (WebCore::CSSStyleSelector::mapFillComposite): (WebCore::CSSStyleSelector::mapFillOrigin): (WebCore::CSSStyleSelector::mapFillImage): (WebCore::CSSStyleSelector::mapFillRepeat): (WebCore::CSSStyleSelector::mapFillSize): (WebCore::CSSStyleSelector::mapFillXPosition): (WebCore::CSSStyleSelector::mapFillYPosition):
  • rendering/RenderStyle.cpp: (WebCore::FillLayer::FillLayer): (WebCore::FillLayer::operator=): (WebCore::FillLayer::operator==): (WebCore::StyleBackgroundData::StyleBackgroundData): (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData): (WebCore::StyleRareNonInheritedData::operator==): (WebCore::RenderStyle::diff):
  • rendering/RenderStyle.h: (WebCore::LengthSize::LengthSize): (WebCore::): (WebCore::FillLayer::type): (WebCore::FillLayer::initialFillAttachment): (WebCore::FillLayer::initialFillClip): (WebCore::FillLayer::initialFillOrigin): (WebCore::FillLayer::initialFillRepeat): (WebCore::FillLayer::initialFillComposite): (WebCore::FillLayer::initialFillSize): (WebCore::FillLayer::initialFillXPosition): (WebCore::FillLayer::initialFillYPosition): (WebCore::FillLayer::initialFillImage): (WebCore::RenderStyle::maskImage): (WebCore::RenderStyle::maskRepeat): (WebCore::RenderStyle::maskComposite): (WebCore::RenderStyle::maskAttachment): (WebCore::RenderStyle::maskClip): (WebCore::RenderStyle::maskOrigin): (WebCore::RenderStyle::maskXPosition): (WebCore::RenderStyle::maskYPosition): (WebCore::RenderStyle::maskSize): (WebCore::RenderStyle::accessMaskLayers): (WebCore::RenderStyle::maskLayers): (WebCore::RenderStyle::clearBackgroundLayers): (WebCore::RenderStyle::clearMaskLayers): (WebCore::RenderStyle::inheritMaskLayers):
1:55 PM Changeset in webkit [32347] by timothy@apple.com
  • 2 edits in trunk/WebCore

Fixes the issue were a Database view could still be visible after navigating to a new page.

Reviewed by Darin Adler.

  • page/inspector/DatabasesPanel.js:

(WebInspector.DatabasesPanel.prototype.reset): Delete the _tableViews and _queryView properties
from all databases. Remove all the children from databaseViews.

1:54 PM Changeset in webkit [32346] by timothy@apple.com
  • 3 edits in trunk/WebCore

Adds the ability to enter multi-line commands in the console by holding the
alt/option key when pressing enter/return.

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

Reviewed by Darin Adler.

  • page/inspector/Console.js:

(WebInspector.Console.prototype._enterKeyPressed): Return early if the
alt/option key is held when enter is pressed.

  • page/inspector/inspector.css:

(.console-message-text): Added. Set white-space: pre-wrap.

1:54 PM Changeset in webkit [32345] by timothy@apple.com
  • 2 edits in trunk/WebCore

Fixes the bug where the Database table names do not update when
running the CREATE TABLE or DROP TABLE queries. Also makes the
table names update every time the database is collapsed and expanded.

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

Reviewed by Darin Adler.

  • page/inspector/DatabasesPanel.js:

(WebInspector.DatabasesPanel.prototype.updateDatabaseTables):
Set shouldRefreshChildren to true on the Database's tree element.
The refreshChildren property was renamed to shouldRefreshChildren.
(WebInspector.DatabaseSidebarTreeElement.prototype.oncollapse):
Request a refresh after every collapse so the next expand will
have an updated table list.

1:54 PM Changeset in webkit [32344] by timothy@apple.com
  • 2 edits in trunk/WebCore

Adds INDEX to the list of completion words for the Databases query view.

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

Reviewed by Darin Adler.

  • page/inspector/DatabaseQueryView.js:

(WebInspector.DatabaseQueryView.prototype.completions): Split up "CREATE TABLE "
and "DROP TABLE " into "CREATE ", "DROP ", "TABLE ". And added "INDEX ".

1:53 PM Changeset in webkit [32343] by timothy@apple.com
  • 7 edits
    11 adds in trunk/WebCore

Adds the UI portions of the Scripts panel to the Web Inspector.
The Scripts panel has not been added to the toolbar yet.

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

Reviewed by Adam Roben.

  • English.lproj/InspectorLocalizedStrings.js: Changed "Show inherited properties"

to "Show inherited". Adds new strings for the Scripts' panel tooltips.

  • page/inspector/BreakpointsSidebarPane.js: Added.
  • page/inspector/CallStackSidebarPane.js: Added.
  • page/inspector/Images/back.png: Added.
  • page/inspector/Images/debuggerContinue.png: Added.
  • page/inspector/Images/debuggerPause.png: Added.
  • page/inspector/Images/debuggerStepInto.png: Added.
  • page/inspector/Images/debuggerStepOut.png: Added.
  • page/inspector/Images/debuggerStepOver.png: Added.
  • page/inspector/Images/forward.png: Added.
  • page/inspector/Images/statusbarResizerHorizontal.png: Added.
  • page/inspector/PropertiesSection.js:

(WebInspector.PropertiesSection): Flip the order the subtile is appended
so it can float right in the CSS.

  • page/inspector/ScriptsPanel.js: Added.
  • page/inspector/StylesSidebarPane.js:

(WebInspector.StylePropertiesSection): Changed "Show inherited properties"
to "Show inherited".

  • page/inspector/inspector.css: Added new CSS rules for the Scripts panel.

Also changes the look of the section to match the mockup, this affects
Styles and Properties in Elements.

  • page/inspector/inspector.html: Import new files.
  • page/inspector/inspector.js:

(Preferences.minScriptsSidebarWidth): Added.

1:25 PM Changeset in webkit [32342] by kmccullough@apple.com
  • 2 edits in trunk/WebCore

2008-04-21 Kevin McCullough <kmccullough@apple.com>

Reviewed by Adam.

<rdar://problem/5770054> JavaScript profiler (10928)
Took out debugging printing since we really want to hook into the
inspector and not to print to the terminal.

  • page/Console.cpp: (WebCore::Console::profileEnd):
1:23 PM Changeset in webkit [32341] by weinig@apple.com
  • 4 edits in trunk/WebCore

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

Reviewed by Alexey Proskuryakov.

Fix up XMLHttpRequestProgressEvent.

  • bindings/js/JSEventCustom.cpp: (WebCore::toJS):
  • xml/XMLHttpRequestProgressEvent.cpp:
  • xml/XMLHttpRequestProgressEvent.h:
1:15 PM Changeset in webkit [32340] by Adam Roben
  • 2 edits in trunk/WebCore

Fix Bug 18615: Crash in PluginPackage::hash

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

Reviewed by Anders Carlsson.

  • plugins/PluginDatabase.cpp: (WebCore::PluginDatabase::refresh): Don't pass a null PluginPackage* to add().
1:00 PM Changeset in webkit [32339] by andersca@apple.com
  • 6 edits in trunk/WebCore

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

Reviewed by Adam.

Add cache group implementation.

  • loader/DocumentLoader.cpp: (WebCore::DocumentLoader::scheduleApplicationCacheLoad):
  • loader/appcache/ApplicationCache.cpp: (WebCore::ApplicationCache::requestIsHTTPOrHTTPSGet): (WebCore::ApplicationCache::resourceForRequest):
  • loader/appcache/ApplicationCache.h:
  • loader/appcache/ApplicationCacheGroup.cpp: (WebCore::cacheGroupMap): (WebCore::ApplicationCacheGroup::ApplicationCacheGroup): (WebCore::ApplicationCacheGroup::selectCache): (WebCore::ApplicationCacheGroup::selectCacheWithoutManifestURL): (WebCore::ApplicationCacheGroup::finishedLoadingMainResource): (WebCore::ApplicationCacheGroup::documentLoaderDestroyed): (WebCore::ApplicationCacheGroup::cacheDestroyed): (WebCore::ApplicationCacheGroup::update): (WebCore::ApplicationCacheGroup::didReceiveResponse): (WebCore::ApplicationCacheGroup::didReceiveData): (WebCore::ApplicationCacheGroup::didFinishLoading): (WebCore::ApplicationCacheGroup::didFail): (WebCore::ApplicationCacheGroup::didReceiveManifestResponse): (WebCore::ApplicationCacheGroup::didReceiveManifestData): (WebCore::ApplicationCacheGroup::didFinishLoadingManifest): (WebCore::ApplicationCacheGroup::cacheUpdateFailed): (WebCore::ApplicationCacheGroup::didFailToLoadManifest): (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete): (WebCore::ApplicationCacheGroup::startLoadingEntry): (WebCore::ApplicationCacheGroup::addEntry): (WebCore::ApplicationCacheGroup::associateDocumentLoaderWithCache): (WebCore::ApplicationCacheGroup::callListenersOnAssociatedDocuments): (WebCore::ApplicationCacheGroup::callListeners):
  • loader/appcache/ApplicationCacheGroup.h: (WebCore::ApplicationCacheGroup::status): (WebCore::ApplicationCacheGroup::newestCache):
  • platform/KURL.h: (WebCore::KURL::hostStart): (WebCore::KURL::hostEnd):
12:59 PM Changeset in webkit [32338] by ggaren@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam Weinig.


Moved bottom() from ScopeChain to ScopeChainNode, simplifying it based
on the knowledge that the ScopeChain is never empty.

SunSpider reports no change.

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

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

Reviewed by Oliver Hunt.


Moved begin() and end() from ScopeChain to ScopeChainNode.


Also marked a few methods "const".

SunSpider reports no change.

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

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

Reviewed by Maciej Stachowiak.


Turned ScopeChain::depth into a stand-alone function, and simplified it
a bit.


I also moved ScopeChain::depth to Machine.cpp because it doesn't report
the true depth of the ScopeChain -- just the Machine's perspective of
its depth within a given call frame.

SunSpider reports no change.

12:19 PM Changeset in webkit [32335] by ggaren@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.


Removed indirection in ScopeChain::ref / ScopeChain::deref.


SunSpider reports no change.


  • kjs/scope_chain.h: (KJS::ScopeChain::ScopeChain): (KJS::ScopeChain::~ScopeChain): (KJS::ScopeChain::clear):
12:14 PM Changeset in webkit [32334] by hyatt@apple.com
  • 22 edits in trunk/WebCore

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

Rename BackgroundLayer -> FillLayer in preparation for it being used for other types of fills.

Reviewed by Dan

  • css/CSSComputedStyleDeclaration.cpp: (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
  • css/CSSPrimitiveValueMappings.h: (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): (WebCore::CSSPrimitiveValue::operator EFillBox): (WebCore::CSSPrimitiveValue::operator EFillRepeat):
  • css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty): (WebCore::CSSStyleSelector::mapFillAttachment): (WebCore::CSSStyleSelector::mapFillClip): (WebCore::CSSStyleSelector::mapFillComposite): (WebCore::CSSStyleSelector::mapFillOrigin): (WebCore::CSSStyleSelector::mapFillImage): (WebCore::CSSStyleSelector::mapFillRepeat): (WebCore::CSSStyleSelector::mapFillSize): (WebCore::CSSStyleSelector::mapFillXPosition): (WebCore::CSSStyleSelector::mapFillYPosition): (WebCore::CSSStyleSelector::mapTransitionDuration): (WebCore::CSSStyleSelector::mapTransitionRepeatCount): (WebCore::CSSStyleSelector::mapTransitionTimingFunction): (WebCore::CSSStyleSelector::mapTransitionProperty):
  • css/CSSStyleSelector.h:
  • page/AnimationController.cpp: (WebCore::ImplicitAnimation::ImplicitAnimation): (WebCore::CompositeImplicitAnimation::animate):
  • rendering/InlineFlowBox.cpp: (WebCore::InlineFlowBox::paintBackgrounds): (WebCore::InlineFlowBox::paintBackground):
  • rendering/InlineFlowBox.h:
  • rendering/RenderBox.cpp: (WebCore::RenderBox::paintRootBoxDecorations): (WebCore::RenderBox::paintBackgrounds): (WebCore::RenderBox::paintBackground): (WebCore::RenderBox::calculateBackgroundSize): (WebCore::RenderBox::imageChanged): (WebCore::RenderBox::calculateBackgroundImageGeometry): (WebCore::RenderBox::paintBackgroundExtended):
  • rendering/RenderBox.h:
  • rendering/RenderObject.cpp: (WebCore::RenderObject::mustRepaintBackgroundOrBorder): (WebCore::RenderObject::updateBackgroundImages): (WebCore::RenderObject::arenaDelete):
  • rendering/RenderObject.h: (WebCore::RenderObject::paintBackgroundExtended):
  • rendering/RenderStyle.cpp: (WebCore::FillLayer::FillLayer): (WebCore::FillLayer::~FillLayer): (WebCore::FillLayer::operator=): (WebCore::FillLayer::operator==): (WebCore::FillLayer::fillUnsetProperties): (WebCore::FillLayer::cullEmptyLayers): (WebCore::Transition::fillUnsetProperties):
  • rendering/RenderStyle.h: (WebCore::): (WebCore::FillLayer::image): (WebCore::FillLayer::xPosition): (WebCore::FillLayer::yPosition): (WebCore::FillLayer::attachment): (WebCore::FillLayer::clip): (WebCore::FillLayer::origin): (WebCore::FillLayer::repeat): (WebCore::FillLayer::composite): (WebCore::FillLayer::size): (WebCore::FillLayer::next): (WebCore::FillLayer::isImageSet): (WebCore::FillLayer::isXPositionSet): (WebCore::FillLayer::isYPositionSet): (WebCore::FillLayer::isAttachmentSet): (WebCore::FillLayer::isClipSet): (WebCore::FillLayer::isOriginSet): (WebCore::FillLayer::isRepeatSet): (WebCore::FillLayer::isCompositeSet): (WebCore::FillLayer::isSizeSet): (WebCore::FillLayer::setImage): (WebCore::FillLayer::setXPosition): (WebCore::FillLayer::setYPosition): (WebCore::FillLayer::setAttachment): (WebCore::FillLayer::setClip): (WebCore::FillLayer::setOrigin): (WebCore::FillLayer::setRepeat): (WebCore::FillLayer::setComposite): (WebCore::FillLayer::setSize): (WebCore::FillLayer::clearImage): (WebCore::FillLayer::clearXPosition): (WebCore::FillLayer::clearYPosition): (WebCore::FillLayer::clearAttachment): (WebCore::FillLayer::clearClip): (WebCore::FillLayer::clearOrigin): (WebCore::FillLayer::clearRepeat): (WebCore::FillLayer::clearComposite): (WebCore::FillLayer::clearSize): (WebCore::FillLayer::setNext): (WebCore::FillLayer::operator!=): (WebCore::FillLayer::hasFixedImage): (WebCore::Transition::isDurationSet): (WebCore::Transition::isRepeatCountSet): (WebCore::Transition::isTimingFunctionSet): (WebCore::Transition::isPropertySet): (WebCore::Transition::clearDuration): (WebCore::Transition::clearRepeatCount): (WebCore::Transition::clearTimingFunction): (WebCore::Transition::clearProperty): (WebCore::Transition::duration): (WebCore::Transition::repeatCount): (WebCore::Transition::timingFunction): (WebCore::Transition::property): (WebCore::Transition::setDuration): (WebCore::Transition::setRepeatCount): (WebCore::Transition::setTimingFunction): (WebCore::Transition::setProperty): (WebCore::RenderStyle::NonInheritedFlags::operator==): (WebCore::RenderStyle::setBitDefaults): (WebCore::RenderStyle::backgroundRepeat): (WebCore::RenderStyle::backgroundComposite): (WebCore::RenderStyle::backgroundAttachment): (WebCore::RenderStyle::backgroundClip): (WebCore::RenderStyle::backgroundOrigin): (WebCore::RenderStyle::backgroundSize): (WebCore::RenderStyle::accessBackgroundLayers): (WebCore::RenderStyle::backgroundLayers): (WebCore::RenderStyle::clearBackgroundLayers): (WebCore::RenderStyle::inheritBackgroundLayers): (WebCore::RenderStyle::initialFillAttachment): (WebCore::RenderStyle::initialFillClip): (WebCore::RenderStyle::initialFillOrigin): (WebCore::RenderStyle::initialFillRepeat): (WebCore::RenderStyle::initialFillComposite): (WebCore::RenderStyle::initialFillSize): (WebCore::RenderStyle::initialFillXPosition): (WebCore::RenderStyle::initialFillYPosition): (WebCore::RenderStyle::initialFillImage): (WebCore::RenderStyle::initialWhiteSpace): (WebCore::RenderStyle::initialColor):
  • rendering/RenderTableCell.cpp: (WebCore::RenderTableCell::paintBackgroundsBehindCell):
  • rendering/RenderTheme.cpp: (WebCore::RenderTheme::adjustStyle): (WebCore::RenderTheme::isControlStyled):
  • rendering/RenderTheme.h:
  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::isControlStyled):
12:06 PM Changeset in webkit [32333] by oliver@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

Fix debug build

11:57 AM Changeset in webkit [32332] by oliver@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

Bug 18664: SQUIRRELFISH: correctly throw a SyntaxError when parsing of eval code fails
<https://bugs.webkit.org/show_bug.cgi?id=18664>

Patch from Cameron Zwarich <cwzwarich@uwaterloo.ca>
Reviewed by Oliver

Correctly throw a SyntaxError when parsing of eval code fails.

11:52 AM Changeset in webkit [32331] by oliver@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

Partial fix for Bug 18649: SQUIRRELFISH: correctly handle exceptions in eval code

Reviewed by Geoff

Make sure we correct the register state before jumping to vm_throw.

11:51 AM Changeset in webkit [32330] by ggaren@apple.com
  • 1 edit in branches/squirrelfish/JavaScriptCore/ChangeLog

Fixed reviewer named in old commit message

11:51 AM Changeset in webkit [32329] by ggaren@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.


Simplified ScopeChain ref/deref.


SunSpider reports a .4% speedup.


  • kjs/scope_chain.h: (KJS::ScopeChainNode::ref): Removed this function because it was nonsense. ScopeChainNodes are initialized with a refCount of 1, so the loop was guaranteed to iterate exactly once.
11:39 AM Changeset in webkit [32328] by ggaren@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.


Removed support for empty ScopeChains.

SunSpider reports no change.

11:35 AM Changeset in webkit [32327] by jchaffraix@webkit.org
  • 2 edits in trunk/WebCore

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

Rubber-stamped by Ap.

Add 2 explicit casts.
Fixes built on 64-bit machines (64-bit to 32-bit conversion warning).

  • xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::dispatchProgressEvent):
11:24 AM Changeset in webkit [32326] by ggaren@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.


Removed some completely unused ScopeChain member functions.

SunSpider reports no change.

11:21 AM Changeset in webkit [32325] by Adam Roben
  • 2 edits in trunk/WebKitTools

Flush stdout/stderr after printing every #EOF separator

This fixes a hang when running the pixel tests on Windows

Reviewed by Mitz Pettel.

  • DumpRenderTree/win/DumpRenderTree.cpp: (dump): (main): We don't have to flush stdout/stderr in the arguments loop anymore, as runTest flushes for us.
11:21 AM Changeset in webkit [32324] by andersca@apple.com
  • 8 edits in trunk/WebCore

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

Reviewed by Adam.

Make it possible to load resources from the cache.
(Currently no documents are ever associated with a cache though.)


  • loader/DocumentLoader.cpp: (WebCore::DocumentLoader::setPrimaryLoadComplete): (WebCore::DocumentLoader::mainResourceApplicationCache): (WebCore::DocumentLoader::scheduleApplicationCacheLoad):
  • loader/DocumentLoader.h:
  • loader/MainResourceLoader.cpp: (WebCore::MainResourceLoader::didFinishLoading): (WebCore::MainResourceLoader::load):
  • loader/MainResourceLoader.h: (WebCore::MainResourceLoader::applicationCache):
  • loader/ResourceLoader.cpp: (WebCore::ResourceLoader::ResourceLoader): (WebCore::ResourceLoader::load):
  • loader/ResourceLoader.h:
  • loader/appcache/ApplicationCacheGroup.h: (WebCore::ApplicationCacheGroup::finishedLoadingMainResource):
11:19 AM Changeset in webkit [32323] by Adam Roben
  • 2 edits in trunk/WebKitTools

Fix pixel tests

  • Scripts/run-webkit-tests: (sub readFromDumpToolWithTimer): Use readline instead of read to ensure that we don't read past the #EOF marker.
11:11 AM Changeset in webkit [32322] by ap@webkit.org
  • 4 edits in trunk

Reviewed by Darin.

Move collector main thread initialization from WebKit/win to KJS::initializeThreading.

11:10 AM Changeset in webkit [32321] by ggaren@apple.com
  • 5 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.


Avoid creating unnecessary ScopeChain objects, to reduce refcount churn.

SunSpider reports no change.

10:50 AM Changeset in webkit [32320] by eric@webkit.org
  • 5 edits in trunk/WebCore

Reviewed by eseidel. Landed by eseidel.

Add FrameLoader::policyDocumentLoader, and change
provisionalDocumentLoader to have a const signature to be
consistent with documentLoader and activeDocumentLoader.

  • WebCore.base.exp:
  • WebCore.order:
  • loader/FrameLoader.cpp: (WebCore::FrameLoader::policyDocumentLoader): (WebCore::FrameLoader::provisionalDocumentLoader):
  • loader/FrameLoader.h:
10:46 AM SquirrelFish edited by ggaren@apple.com
(diff)
10:23 AM SquirrelFish edited by ggaren@apple.com
(diff)
9:09 AM Changeset in webkit [32319] by Adam Roben
  • 2 edits in trunk/JavaScriptCore

MSVC build fix

Reviewed by Alexey Proskuryakov.

  • kjs/ustring.h: (KJS::UString::cost): Disable a warning about assigning a 32-bit size_t into a 31-bit size_t.
8:39 AM Changeset in webkit [32318] by jchaffraix@webkit.org
  • 2 edits
    5 adds in trunk

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

Not reviewed, add missing files in my previous commit.

8:34 AM Changeset in webkit [32317] by eric@webkit.org
  • 2 edits in trunk/LayoutTests

Stamped by Anders.

Make test work in Opera. Fix bug in results serialization.

  • fast/js/resources/function-toString-parentheses.js:
7:43 AM Changeset in webkit [32316] by jchaffraix@webkit.org
  • 16 edits in trunk

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

Reviewed by Ap.

Bug 13596: Implement .onprogress handler on XMLHttpRequest objects to support
progressive download content length information.

  • Add the onprogress attribute to XMLHttpRequest and the necessary bindings.
  • We use a custom event XMLHttpRequestProgressEvent that is derived from ProgressEvent (as specified by the XHR2 specification) but also implement LSProgressEvent interface (to be compliant with Firefox event).

Test: http/tests/xmlhttprequest/infoOnProgressEvent.html

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

Reviewed by Ap.

Bug 13596: Implement .onprogress handler on XMLHttpRequest objects to support progressive download content length information.

  • http/tests/xmlhttprequest/infoOnProgressEvent-expected.txt: Added.
  • http/tests/xmlhttprequest/infoOnProgressEvent.html: Added.
7:29 AM Changeset in webkit [32315] by Simon Hausmann
  • 4 edits in trunk/WebCore

Michael Goddard <michael.goddard@trolltech.com>

Better handle Qt binding object lifetime in JS.
Add explicit marking of JS objects created for Qt
bindings, and remove the gcProtect calls.

7:24 AM Changeset in webkit [32314] by Simon Hausmann
  • 2 edits in trunk/WebCore

Add better support for RuntimeArray type conversions.
It seems that RuntimeArray claims to inherit ArrayInstance
(in the JS sense), but the C++ class doesn't, so properly
access RuntimeArrays. Also, properly support turning
a JS object into a QVariantMap, since we support the
reverse.

6:57 AM Changeset in webkit [32313] by Simon Hausmann
  • 5 edits in trunk

Changed the return type of QWebFrame::evaluateJavaScript from a QString to a QVariant.

6:47 AM Changeset in webkit [32312] by Simon Hausmann
  • 3 edits in trunk/WebCore

Simon Hausmann <Simon Hausmann>

Fix painting of text fields in the CleanLooks style.

The CleanLooks style calls painter->drawRect() and expects a painter
that has no brush set. This is a fairly common assumption and therefore
we now always set the brush to NoBrush before calling a style. This
is done by centralizing the painter setup code into StylePainter
and restore the old brush in the StylePainter destructor.

In addition for textfields it is not necessary anymore to draw
PE_FrameLineEdit as we set the lineWidth in the style option correctly
and it's the style responsibility (QCommonStyle usually) to draw
PE_FrameLineEdit.

6:47 AM Changeset in webkit [32311] by Simon Hausmann
  • 2 edits in trunk/WebCore

Olivier Goffart <ogoffart@trolltech.com>

Fixes copy and paste of international characters.

When exporting HTML to the clipboard we need meta tags for now that confirm the
conversion to utf-8 done inside QClipboard.

6:47 AM Changeset in webkit [32310] by Simon Hausmann
  • 2 edits in trunk/WebCore

Olivier Goffart <ogoffart@trolltech.com>

Fixes: Copying on X11 doesn't always work in webkit

Calling QClipboard::clear right before QClipboard::setData create a race condition with klipper. So don't call QClipboard::clear since it's not required.

6:40 AM Changeset in webkit [32309] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Simon Hausmann <Simon Hausmann>

Fixes redundant "Fonts" submenu in default lineedits that has only disabled items.

Don't show sub-menus that have only actions that are disabled.

6:40 AM Changeset in webkit [32308] by Simon Hausmann
  • 8 edits in trunk/WebKit/qt

Kavindra Devi Palaraja <kdpalara@trolltech.com>.

Lots of documentation fixes, fixed all qdoc warnings.

5:24 AM Changeset in webkit [32307] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Marius Bugge Monsen <mmonsen@trolltech.com>

Fix compile failure on solaris-cc

5:11 AM Changeset in webkit [32306] by Simon Hausmann
  • 6 edits in trunk

Holger Hans Peter Freyther <holger.freyther@trolltech.com>

Build fix for Qt 4.3

  • When building WebCore/internal make sure the QT_[BEGIN,END]_NAMESPACE is always defined. Do this by adding defines to the compiler line
  • For users of our API this is not feasible. Every public header file should include qwebkitglobal.h. Define the QT_BEGIN_NAMESPACE and QT_END_NAMESPACE when we are building everything < 4.4.0 and don't have them defined.
4:16 AM Changeset in webkit [32305] by Simon Hausmann
  • 2 edits in trunk/WebCore

Holger Hans Peter Freyther <holger.freyther@trolltech.com>

  • Assume that our lineedit has a frame. This is needed for the motif style
4:15 AM Changeset in webkit [32304] by Simon Hausmann
  • 2 edits in trunk/WebCore

Holger Hans Peter Freyther <holger.freyther@trolltech.com>

  • Follow the windows render theme when determining whether to style

listboxes or not.

4:15 AM Changeset in webkit [32303] by Simon Hausmann
  • 2 edits in trunk/WebCore

Holger Hans Peter Freyther <holger.freyther@trolltech.com>

  • Try to bring the notImplemented implementations closer together. This will print each unimplemted method name only once.
  • We might want to change wtf/Assertions.cpp to use qDebug
3:46 AM Changeset in webkit [32302] by Simon Hausmann
  • 3 edits in trunk/WebCore

2008-04-21 Holger Hans Peter Freyther <holger.freyther@trolltech.com>

Reviewed by Simon.

  • Remove the special Qt ctor of BitmapImage as it did not work. The Bitmap returned 0 as width and after intialising drawing would fail. BitmapImage relies on a proper ImageSource.
  • Instead of adding more special cases to BitmapImage create a new class called StillImage which is getting one QPixmap and is implementing Image::draw and Image::size. This is working well for the images created using Image::loadPlatformResource.
3:38 AM Changeset in webkit [32301] by Simon Hausmann
  • 1 edit in trunk/WebCore/Resources/urlIcon.png

Whoops, fixed file permissions to not be executable.

3:28 AM Changeset in webkit [32300] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Holger Hans Peter Freyther <holger.freyther@trolltech.com>

  • Initialize the WebGraphics with the one found in WebCore
3:28 AM Changeset in webkit [32299] by Simon Hausmann
  • 2 edits
    1 add in trunk/WebCore

Holger Hans Peter Freyther <holger.freyther@trolltech.com>

  • Package the Resources into a qrc
3:28 AM Changeset in webkit [32298] by Simon Hausmann
  • 1 edit
    6 adds in trunk/WebCore

Holger Hans Peter Freyther <holger.freyther@trolltech.com>

  • Make sure every resource is available als png as well.
3:27 AM Changeset in webkit [32297] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Holger Hans Peter Freyther <holger.freyther@trolltech.com>

  • Allow TextAreas to be resized.
  • No QWebSettings for this is introduced.
3:08 AM Changeset in webkit [32296] by Simon Hausmann
  • 5 edits in trunk/WebKit/qt

Simon Hausmann <shausman@trolltech.com>

Fixes: QWebView::url property behaviour strange in designer

Added QWebView/QWebFrame::setUrl, which unlike load() clears the view immediately, schedules a load of the url but also makes sure url() returns the set url. This setter is now also used for the url property.

3:06 AM Changeset in webkit [32295] by mjs@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Rubber stamped by Alexey.


Add some braces.x

  • kjs/testkjs.cpp: (runWithScripts):
2:55 AM Changeset in webkit [32294] by Simon Hausmann
  • 3 edits in trunk/WebKit/qt

Andre Poenitz <andre.poenitz@trolltech.com>

Fixe compilation with Qt namespaces

2:36 AM Changeset in webkit [32293] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

When printing on high resolution printers we need to scale the painter accordingly (for now).

2:35 AM Changeset in webkit [32292] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Provide a print preview in the QtLauncher

1:34 AM Changeset in webkit [32291] by mjs@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.


  • only print "End:" output when -d flag is passed.


This fixes half of our failing JSC regression tests.

  • kjs/testkjs.cpp: (runWithScripts):
12:39 AM Changeset in webkit [32290] by mjs@apple.com
  • 9 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej.

Add support for variable declarations in eval code.

  • VM/CodeBlock.h: (KJS::EvalCodeBlock::EvalCodeBlock):
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::CodeGenerator):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::execute):
  • VM/Machine.h:
  • kjs/function.cpp: (KJS::globalFuncEval):
  • kjs/nodes.cpp: (KJS::EvalNode::generateCode):
  • kjs/nodes.h: (KJS::EvalNode::):

Apr 20, 2008:

11:56 PM Changeset in webkit [32289] by oliver@apple.com
  • 7 edits in branches/squirrelfish/JavaScriptCore

Throw exceptions for invalid continue, break, and return statements.

Reviewed by Maciej

Simple refactoring and extension of Cameron's AssignErrorNode, etc patch

11:35 PM Changeset in webkit [32288] by alp@webkit.org
  • 2 edits in trunk/WebCore

2008-04-20 Sriram Neelakandan <sriram.neelakandan@gmail.com>

Reviewed by Alp Toker.

Implement FileSystemGtk's getFileModificationTime() with GLib.

  • platform/gtk/FileSystemGtk.cpp: (WebCore::getFileModificationTime):
11:02 PM Changeset in webkit [32287] by alp@webkit.org
  • 1 edit
    2 adds in trunk/WebCore

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

Reviewed by Alp Toker.

Bundle GTK+ Xt compatibility code from Mozilla. These files are used
by all currently proposed GTK+ plugin patches and will make the
proposed patches smaller and easier to review.

These files should be kept as close to the upstream versions as
possible so fixes can be shared between projects and to ensure
compatibility with the reference implementation.

  • plugins/gtk/gtk2xtbin.c: Added. (xt_event_prepare): (xt_event_check): (xt_event_dispatch): (xt_event_polling_timer_callback): (gtk_xtbin_get_type): (gtk_xtbin_class_init): (gtk_xtbin_init): (gtk_xtbin_realize): (gtk_xtbin_new): (gtk_xtbin_set_position): (gtk_xtbin_resize): (gtk_xtbin_unrealize): (gtk_xtbin_destroy): (xt_client_init): (xt_client_create): (xt_client_unrealize): (xt_client_destroy): (xt_client_set_info): (xt_client_handle_xembed_message): (xt_client_event_handler): (send_xembed_message): (error_handler): (trap_errors): (untrap_error): (xt_client_focus_listener): (xt_add_focus_listener): (xt_remove_focus_listener): (xt_add_focus_listener_tree):
  • plugins/gtk/gtk2xtbin.h: Added.
10:43 PM SquirrelFishPerfIdeas edited by mjs@apple.com
(diff)
10:17 PM SquirrelFishPerfIdeas edited by mjs@apple.com
(diff)
10:16 PM Changeset in webkit [32286] by ggaren@apple.com
  • 15 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.


Removed Machine.cpp from AllInOneFile.cpp, and manually inlined a few
things that used to be inlined automatically.


1.9% speedup on SunSpider.


My hope is that we'll face fewer surprises in Machine.cpp codegen, now
that GCC is making fewer decisions. The speedup seems to confirm that.

8:22 PM SquirrelFishPerfIdeas edited by mjs@apple.com
(diff)
7:55 PM Changeset in webkit [32285] by oliver@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

Bug 18642: Iterator context may get placed into the return register, leading to much badness
<https://bugs.webkit.org/show_bug.cgi?id=18642>

Reviewed by Maciej

To prevent incorrectly reusing what will become the result register for
eval and global code execution, we need to request and ref the destination
in advance of codegen. Unfortunately this may lead to unnecessary copying,
although in future we can probably limit this. Curiously SunSpider shows
a progression in a number of tests, although it comes out as a wash overall.

This also fixes one of the regressions in run-javascriptcore-tests.

6:56 PM SquirrelFishPerfIdeas edited by mjs@apple.com
(diff)
5:34 PM SquirrelFishPerfIdeas edited by mjs@apple.com
(diff)
5:30 PM SquirrelFishPerfIdeas edited by mjs@apple.com
(diff)
5:30 PM SquirrelFishPerfIdeas edited by mjs@apple.com
(diff)
5:29 PM SquirrelFishPerfIdeas created by mjs@apple.com
5:22 PM Changeset in webkit [32284] by alp@webkit.org
  • 2 edits in trunk/WebCore

2008-04-20 Dirk Schulze <vbs85@gmx.de>

Reviewed by Alp Toker.

http://bugs.webkit.org/show_bug.cgi?id=15449
[CAIRO] SVG gradients do not work properly

Fixed SVG-gradients in Cairo.

  • svg/graphics/cairo/SVGPaintServerGradientCairo.cpp: (WebCore::SVGPaintServerGradient::setup):
5:16 PM SquirrelFish edited by mjs@apple.com
(diff)
5:05 PM ApplicationsGtk edited by alp@atoker.com
Add Skipstone and tinymail UI library (diff)
4:46 PM SquirrelFish edited by mjs@apple.com
(diff)
4:29 PM Changeset in webkit [32283] by mjs@apple.com
  • 8 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej.

Add support for AssignErrorNode, PrefixErrorNode, and PostfixErrorNode.

  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitCreateError):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • VM/Opcode.h:
  • kjs/nodes.cpp: (KJS::PostfixErrorNode::emitCode): (KJS::PrefixErrorNode::emitCode): (KJS::AssignErrorNode::emitCode):
  • kjs/nodes.h:
4:09 PM SquirrelFishBlockers edited by mjs@apple.com
(diff)
4:08 PM SquirrelFishBlockers edited by mjs@apple.com
(diff)
4:08 PM SquirrelFishBlockers edited by mjs@apple.com
(diff)
4:03 PM SquirrelFishBlockers edited by mjs@apple.com
(diff)
4:01 PM SquirrelFishBlockers created by mjs@apple.com
3:59 PM SquirrelFish edited by mjs@apple.com
(diff)
3:57 PM squirrelfish edited by mjs@apple.com
(diff)
3:56 PM WikiStart edited by mjs@apple.com
(diff)
3:55 PM SquirrelFish created by mjs@apple.com
1:48 PM Changeset in webkit [32282] by pewtermoose@webkit.org
  • 2 edits in trunk/WebKit/mac

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

Mysteriously reviewed by mitz|away.

Bug 18111: Closing a tab while dragging crashes Safari
https://bugs.webkit.org/show_bug.cgi?id=18111

Null check the page before handling drag events.

  • WebView/WebView.mm: (-[WebView draggingUpdated:]): (-[WebView draggingExited:]):
1:47 AM Changeset in webkit [32281] by oliver@apple.com
  • 5 edits in branches/squirrelfish/JavaScriptCore

Provide line number information in exceptions

Reviewed by Geoff and Mark

Simple patch, adds line number information metadata to CodeBlock
and a simple method to get the line number responsible for a given
Instruction*.

12:28 AM Changeset in webkit [32280] by alp@webkit.org
  • 10 edits
    2 adds in trunk

2008-04-20 Simon Hausmann <Simon Hausmann>

Reviewed by Alp Toker.

http://bugs.webkit.org/show_bug.cgi?id=18578
Share the printing code between the Gtk and the Qt port

12:09 AM Changeset in webkit [32279] by oliver@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

Provide "sourceURL" in exceptions

Reviewed by Maciej

Apr 19, 2008:

11:59 PM Changeset in webkit [32278] by alp@webkit.org
  • 3 edits in trunk/WebCore

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

Reviewed by Mark Rowe.

Complete the Cairo (CSS) gradient implementation.

  • platform/graphics/Gradient.h:
  • platform/graphics/cairo/GradientCairo.cpp: (WebCore::Gradient::platformDestroy): (WebCore::Gradient::fill):
11:13 PM Changeset in webkit [32277] by oliver@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

Don't call emitCode directly on subnodes, instead use CodeGenerator::emitNode

Reviewed by Maciej

This patch just a preparation for tracking line numbers.

10:34 PM Changeset in webkit [32276] by alp@webkit.org
  • 6 edits in trunk/WebCore

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

Reviewed by Dave Hyatt.

Restore Cairo canvas support following the recent changes in
BitmapImage and ImageBuffer integrating canvas with CSS. Some
drawing regressions remain unfixed.

  • platform/graphics/BitmapImage.h:
  • platform/graphics/ImageBuffer.h:
  • platform/graphics/cairo/ImageBufferCairo.cpp: (WebCore::ImageBuffer::image):
  • platform/graphics/cairo/ImageCairo.cpp: (WebCore::BitmapImage::BitmapImage): (WebCore::BitmapImage::draw):
  • platform/graphics/cairo/ImageSourceCairo.cpp: (WebCore::ImageSource::createFrameAtIndex):
9:26 PM Changeset in webkit [32275] by mitz@apple.com
  • 4 edits
    1 copy
    3 adds in trunk

WebCore:

Reviewed by Dave Hyatt.

Test: fast/text/trailing-white-space-2.html

  • platform/text/BidiResolver.h: (WebCore::::moveRunToEnd): (WebCore::::moveRunToBeginning):
  • rendering/bidi.cpp: (WebCore::RenderBlock::layoutInlineChildren):

LayoutTests:

Reviewed by Dave Hyatt.

  • fast/text/trailing-white-space-2.html: Copied from LayoutTests/fast/text/trailing-white-space.html.
  • platform/mac/fast/text/trailing-white-space-2-expected.checksum: Added.
  • platform/mac/fast/text/trailing-white-space-2-expected.png: Added.
  • platform/mac/fast/text/trailing-white-space-2-expected.txt: Added.
7:27 PM Changeset in webkit [32274] by pewtermoose@webkit.org
  • 2 edits in trunk/JavaScriptCore

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

Not reviewed, Windows build fix - copy the profiler headers in all
configurations, not just Debug_Internal.

7:10 PM Changeset in webkit [32273] by mrowe@apple.com
  • 6 edits
    4 adds in tags/Safari-6526.1

Merge r31964.

7:10 PM Changeset in webkit [32272] by mrowe@apple.com
  • 2 edits in tags/Safari-6526.1/WebKit/mac

Merge r32023.

7:06 PM Changeset in webkit [32271] by mrowe@apple.com
  • 4 edits in trunk

Versioning.

6:58 PM Changeset in webkit [32270] by mrowe@apple.com
  • 1 copy in tags/Safari-6526.1

New tag.

3:34 PM Changeset in webkit [32269] by oliver@apple.com
  • 7 edits in branches/squirrelfish/JavaScriptCore

Bug 18619: Support continue, break, and return in try .. finally blocks
<https://bugs.webkit.org/show_bug.cgi?id=18619>

Reviewed by Maciej

This patch replaces the current partial finally support (which uses code
duplication to achieve what it does) with a subroutine based approach.
This has a number of advantages over code duplication:

  • Reduced code size
  • Simplified exception handling as the finaliser code only exists in one place, so no "magic" is needed to get the correct handler for a finaliser.
  • When we support instruction to line number mapping we won't need to worry about the dramatic code movement caused by duplication

On the downside it is necessary to add two new opcodes, op_jsr and op_sret
to enter and exit the finaliser subroutines, happily SunSpider reports
a performance progression (gcc amazes me) and ubench reports a wash.

While jsr and sret provide a mechanism that allows us to enter and exit
any arbitrary finaliser we need to, it was still necessary to increase
the amount of information tracked when entering and exiting both finaliser
scopes and dynamic scopes ("with"). This means "scopeDepth" is now
the combination of "finaliserDepth" and "dynamicScopeDepth". We also
now use a scopeContextStack to ensure that we pop scopes and execute
finalisers in the correct order. This increases the cost of "with" nodes
during codegen, but it should not be significant enough to effect real
world performance and greatly simplifies codegen for return, break and
continue when interacting with finalisers.

2:11 PM Changeset in webkit [32268] by alp@webkit.org
  • 2 edits in trunk/WebKit/gtk

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

Reviewed by Maciej.

Enable visited link tracking by default at startup.

With this patch, the GTK+ port rendering of Acid3 now matches the
reference page.

  • webkit/webkitprivate.cpp: (WebKit::core): (webkit_init):
1:34 PM Changeset in webkit [32267] by jchaffraix@webkit.org
  • 2 edits in trunk/WebKit/qt

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

Qt build fix (renderer() -> contentRenderer()).

  • Api/qwebframe.cpp: (QWebFrame::renderTreeDump): (QWebFrame::render):
9:00 AM Changeset in webkit [32266] by beidson@apple.com
  • 2 edits in trunk/LayoutTests

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

Update window-properties to add the profiler and fix a layout test

  • fast/dom/Window/window-properties-expected.txt:
9:00 AM Changeset in webkit [32265] by kevino@webkit.org
  • 2 edits in trunk/WebKit/wx

wx build fix. renderer() -> contentRenderer()

2:39 AM Changeset in webkit [32264] by alp@webkit.org
  • 2 edits in trunk/WebCore

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

Reviewed by Nikolas.

Add text shadow support for simple text in FontCairo.

  • platform/graphics/cairo/FontCairo.cpp: (WebCore::Font::drawGlyphs):
2:21 AM Changeset in webkit [32263] by hyatt@apple.com
  • 2 edits in trunk/WebCore

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

Fix a minor typo in CSSGradientValue's cssText() method.

Reviewed by olliej

  • css/CSSGradientValue.cpp: (WebCore::CSSGradientValue::cssText):
12:56 AM Changeset in webkit [32262] by alp@webkit.org
  • 4 edits in trunk

2008-04-19 Mike Hommey <glandium@debian.org>

Reviewed by Alp Toker.

Don't build GtkLauncher and DumpRenderTree with rpath.

Don't build testkjs with rpath.

12:26 AM Changeset in webkit [32261] by beidson@apple.com
  • 9 edits in trunk

WebCore:

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

Reviewed by Tim Hatcher

Add LocalStorageDatabasePath to the settings for the location of persistent local storage.

  • WebCore.base.exp:
  • page/Settings.cpp: (WebCore::Settings::setLocalStorageDatabasePath):
  • page/Settings.h: (WebCore::Settings::localStorageDatabasePath):

WebKit/mac:

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

Reviewed by Tim Hatcher

Add a WebPreference for the path of the local storage persistent store.

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.m: (-[WebPreferences _localStorageDatabasePath]): (-[WebPreferences _setLocalStorageDatabasePath:]):
  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm: (-[WebView _preferencesChangedNotification:]):

Apr 18, 2008:

10:46 PM Changeset in webkit [32260] by jhoneycutt@apple.com
  • 2 edits in trunk/WebKit/win

2008-04-18 Jon Honeycutt <jhoneycutt@apple.com>

Fix build after r32231.

  • WebFrame.cpp: (WebFrame::renderTreeAsExternalRepresentation): renderer() -> contentRenderer()
10:39 PM Changeset in webkit [32259] by kevino@webkit.org
  • 7 edits
    1 move in trunk/JavaScriptCore

wx build fixes. Rename LocalStorage.h to LocalStorageEntry.h to avoid header detection issues between WebCore/storage/LocalStorage.h and it, and add $(PROFILER_SOURCES) to the wx JSCore build.

10:19 PM Changeset in webkit [32258] by alp@webkit.org
  • 4 edits in trunk

Fix changelog entries for r32257 (reference to wrong bug).
This commit was unrelated to plugin support.

10:16 PM Changeset in webkit [32257] by alp@webkit.org
  • 8 edits in trunk

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

Reviewed by Alp Toker.

http://bugs.webkit.org/show_bug.cgi?id=14750
[gtk] Implement plugin support in GTK backend

Cleanups.

10:08 PM Changeset in webkit [32256] by jhoneycutt@apple.com
  • 2 edits in trunk/WebKit/win

2008-04-18 Jon Honeycutt <jhoneycutt@apple.com>

Fix build after r32231.

  • WebView.cpp: (WebView::paintIntoBackingStore): renderer() -> contentRenderer() (WebView::elementAtPoint): Same.
10:02 PM Changeset in webkit [32255] by jhoneycutt@apple.com
  • 2 edits in trunk/JavaScriptCore

2008-04-18 Jon Honeycutt <jhoneycutt@apple.com>

  • JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Windows build fix.
9:01 PM Changeset in webkit [32254] by jhoneycutt@apple.com
  • 2 edits in trunk/WebKit/win

2008-04-18 Jon Honeycutt <jhoneycutt@apple.com>

  • AccessibleBase.cpp: Build fix for copy/paste error.
8:54 PM Changeset in webkit [32253] by jhoneycutt@apple.com
  • 3 edits in trunk/WebKit/win

2008-04-18 Jon Honeycutt <jhoneycutt@apple.com>

Reviewed by Darin.

Implement IAccessible::get_accChild().

  • AccessibleBase.cpp: (AccessibleBase::get_accChild): Call getAccessibilityObjectForChild to find the AccessibilityObject for the VARIANT vChild. Get the AccessibilityObjectWrapper for the child, add a ref, and pass it back. (AccessibleBase::getAccessibilityObjectForChild): Added; finds the AccessibilityObject referred to by a VARIANT, or returns a COM error on failure. (AccessibleBase::wrapper): Added; returns the wrapper for the AccessibilityObject. Creates one if necessary.
  • AccessibleBase.h: Added definitions for wrapper() and getAccessibilityObjectForChild().
8:53 PM Changeset in webkit [32252] by jhoneycutt@apple.com
  • 6 edits in trunk

2008-04-18 Jon Honeycutt <jhoneycutt@apple.com>

Reviewed by Darin, Ollie.

  • AccessibleBase.cpp: (AccessibleBase::get_accChildCount): Implement get_accChildCount.
8:53 PM Changeset in webkit [32251] by jhoneycutt@apple.com
  • 4 edits in trunk/WebKit/win

2008-04-17 Jon Honeycutt <jhoneycutt@apple.com>

Reviewed by Darin.

Implement IAccessible::get_accParent().

  • AccessibleBase.cpp: (AccessibleBase::get_accParent): Call AccessibleObjectFromWindow with OBJID_WINDOW. This will be handled by Windows to return the default accessible object for the WebView, because we only handle OBJID_CLIENT.
  • WebView.cpp: (WebView::AccessibleObjectFromWindow): Added; calls through to the AccessibleObjectFromWindow in the MSAA DLL.
  • WebView.h: Added definition for AccessibleObjectFromWindow.
8:52 PM Changeset in webkit [32250] by jhoneycutt@apple.com
  • 4 edits
    2 adds in trunk/WebKit/win

2008-04-17 Jon Honeycutt <jhoneycutt@apple.com>

Reviewed by Darin.

Return an AccessibleDocument when our root accessible object is queried
for.

  • AccessibleDocument.cpp: Added; represents an AccessibilityObject that itself represents a Document. (AccessibleDocument::AccessibleDocument): Initialize AccessibleBase with the AccessibilityObject for this Document.
  • AccessibleDocument.h: Added.
  • WebFrame.cpp: (WebFrame::accessible): If m_accessible is 0, or if Document in this frame does not match the Document in the cached m_accessible object, create a new AccessibleDocument for this frame's Document.
  • WebFrame.h: Swap AccessibleBase.h for AccessibleDocument.h
  • WebKit.vcproj/WebKit.vcproj: Add AccessibleDocument.{h,cpp}
8:52 PM Changeset in webkit [32249] by jhoneycutt@apple.com
  • 2 edits in trunk/WebCore

2008-04-17 Jon Honeycutt <jhoneycutt@apple.com>

Reviewed by Darin, Alice.

Implement AXObjectCache::detachWrapper() on Windows.

  • page/win/AXObjectCacheWin.cpp: (WebCore::AXObjectCache::detachWrapper): If this object has a wrapper, call its detach() method.
8:51 PM Changeset in webkit [32248] by jhoneycutt@apple.com
  • 5 edits in trunk/WebKit/win

2008-04-17 Jon Honeycutt <jhoneycutt@apple.com>

Reviewed by Darin.

Respond to WM_GETOBJECT messages. Currently returns NULL.

  • WebFrame.cpp: (WebFrame::accessible): Added; will return the root accessible object for this frame.
  • WebFrame.h: Added definition for accessible().
  • WebView.cpp: (WebViewWndProc): Handle WM_GETOBJECT messages by calling onGetObject(). (WebView::onGetObject): Added; enables the AXObjectCache in WebCore, queries the top-level frame for its root accessible object, and loads the MSAA DLL and locates its LresultFromObject function. If calling LresultFromObject succeeds, it returns a reference to the accessible object to pass back to Windows. If not, we return false and let Windows handle the request through DefWindowProc.
  • WebView.h: Added definition for onGetObject().
8:37 PM Changeset in webkit [32247] by Antti Koivisto
  • 5 edits in trunk/LayoutTests

2008-04-18 Antti Koivisto <Antti Koivisto>

Update test results.

  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-06-t-expected.txt:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-07-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-08-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-33-t-expected.txt:
8:32 PM Changeset in webkit [32246] by alp@webkit.org
  • 2 edits in trunk/WebCore

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

Reviewed by Alexey.

http://bugs.webkit.org/show_bug.cgi?id=18357
[GTK] Enter on buttons doesn't work

  • platform/gtk/KeyEventGtk.cpp: (WebCore::singleCharacterString): Set the text of a keyboard event for GDK_ISO_Enter, GDK_KP_Enter, GDK_Return to "\r" instead of an empty string.
8:29 PM Changeset in webkit [32245] by alp@webkit.org
  • 2 edits in trunk/WebCore

2008-04-18 Marco Barisione <marco@barisione.org>

Reviewed by Alp Toker.

https://bugs.webkit.org/show_bug.cgi?id=18576
[GTK] windowsKeyCodeForKeyEvent doesn't handle GDK_ISO_Enter and
GDK_KP_Enter

  • platform/gtk/KeyEventGtk.cpp: (WebCore::windowsKeyCodeForKeyEvent): handle GDK_ISO_Enter and GDK_KP_Enter in windowsKeyCodeForKeyEvent.
7:58 PM SuccessfulPortHowTo created by ddkilzer@webkit.org
7:50 PM Changeset in webkit [32244] by mrowe@apple.com
  • 2 edits
    1 move
    1 add in trunk/WebCore

Gtk build fix.

7:34 PM WikiStart edited by ddkilzer@webkit.org
Added link to Successful Port How To page. (diff)
6:34 PM Changeset in webkit [32243] by Antti Koivisto
  • 5 edits in trunk/WebCore

2008-04-18 Antti Koivisto <Antti Koivisto>

Reviewed by Oliver.

Implement path animation for <animateMotion>.


SVG test suite tests
animate-elem-07-t.svg
animate-elem-08-t.svg
animate-elem-24-t.svg
animate-elem-30-t.svg

  • svg/SVGAnimateMotionElement.cpp: (WebCore::SVGAnimateMotionElement::SVGAnimateMotionElement): (WebCore::SVGAnimateMotionElement::hasValidTarget): (WebCore::SVGAnimateMotionElement::parseMappedAttribute): (WebCore::SVGAnimateMotionElement::rotateMode): (WebCore::SVGAnimateMotionElement::animationPath): (WebCore::SVGAnimateMotionElement::calculateAnimatedValue): (WebCore::SVGAnimateMotionElement::applyResultsToTarget):
  • svg/SVGAnimateMotionElement.h: (WebCore::SVGAnimateMotionElement::):
  • svg/SVGAnimationElement.cpp: (WebCore::SVGAnimationElement::animationMode): (WebCore::SVGAnimationElement::startedActiveInterval):
  • svg/SVGAnimationElement.h: (WebCore::SVGAnimationElement::): (WebCore::SVGAnimationElement::calculateDistance): (WebCore::SVGAnimationElement::animationPath):
6:31 PM Changeset in webkit [32242] by mrowe@apple.com
  • 9 edits in trunk

Silence some warnings that GCC 4.3 triggers.

Rubber-stamped by Antti Koivisto.

6:12 PM Changeset in webkit [32241] by beidson@apple.com
  • 4 edits in trunk/WebKit

WebKit/mac:

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

Reviewed by Sam Weinig

Don't clear the PageGroup on _close, as the WebCore::Page destructor already does this.
No reason to do the work twice...

  • WebView/WebView.mm: (-[WebView _close]):

WebKit/win:

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

Reviewed by Sam Weinig

Don't clear the PageGroup on _close, as the WebCore::Page destructor already does this.
No reason to do the work twice...

  • WebView.cpp: (WebView::close):
6:01 PM Changeset in webkit [32240] by mrowe@apple.com
  • 2 edits in trunk/WebKit/gtk

Gtk build fix after r32231.

5:15 PM Changeset in webkit [32239] by beidson@apple.com
  • 2 edits in trunk/WebCore

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

Rubberstamped by Mark Rowe

Roll out http://trac.webkit.org/projects/webkit/changeset/32204 as it was an incorrect build fix.
The feature in question was NOT database support.

The proper build fix was later applied by Mark in http://trac.webkit.org/projects/webkit/changeset/32225

  • page/PageGroup.cpp: (WebCore::PageGroup::localStorage):
4:58 PM Changeset in webkit [32238] by weinig@apple.com
  • 1 edit
    1 move in trunk/LayoutTests

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

Disable this test until we can figure out why it is failing on some systems.

  • fast/canvas/toDataURL-supportedTypes.html: Removed.
  • fast/canvas/toDataURL-supportedTypes.html-disabled: Copied from fast/canvas/toDataURL-supportedTypes.html.
4:56 PM Changeset in webkit [32237] by beidson@apple.com
  • 2 edits in trunk/WebCore

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

Reviewed by Darin and Sam

Don't forget PageGroups when their last Page goes away, as this hurts visited links and anything
else that will be per-PageGroup in the future (such as LocalStorage).

This also fixes a leak, since PageGroups are ref-counted and therefore clearing the raw pointer out
of the PageGroups map without manual deletion leaked it!

  • page/Page.cpp: (WebCore::Page::setGroupName):
4:19 PM Changeset in webkit [32236] by mitz@apple.com
  • 3 edits
    2 adds in trunk

WebCore:

Reviewed by Brady Eidson.

  • fix <rdar://problem/5872671> REGRESSION (3.1.1-TOT): Repro crash going to Ortega Park home page

Test: fast/dynamic/5872671.html

  • rendering/bidi.cpp: (WebCore::RenderBlock::layoutInlineChildren): Added a missing null check.

LayoutTests:

Reviewed by Brady Eidson.

  • test for <rdar://problem/5872671> REGRESSION (3.1.1-TOT): Repro crash going to Ortega Park home page
  • fast/dynamic/5872671-expected.txt: Added.
  • fast/dynamic/5872671.html: Added.
3:58 PM Changeset in webkit [32235] by weinig@apple.com
  • 5 edits in trunk/WebCore

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

Rubber-stamped by Mark Rowe.

responseText and responseXML don't throw exceptions so they don't need an ExceptionCode parameter.

  • bindings/js/JSXMLHttpRequestCustom.cpp:
  • xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::responseText): (WebCore::XMLHttpRequest::responseXML):
  • xml/XMLHttpRequest.h:
  • xml/XMLHttpRequest.idl:
3:41 PM Changeset in webkit [32234] by kmccullough@apple.com
  • 3 edits in trunk/JavaScriptCore

2008-04-18 Kevin McCullough <kmccullough@apple.com>

Reviewed by Sam.

-<rdar://problem/5770054> JavaScript profiler (10928)

  • Use Deque instead of Vector since the profiler uses prepend a lot and deque is faster at that.
  • profiler/FunctionCallProfile.h: (KJS::FunctionCallProfile::milliSecs): Corrected the name to match its output.
  • wtf/Deque.h: (WTF::deleteAllValues):
3:17 PM Changeset in webkit [32233] by kmccullough@apple.com
  • 4 edits in trunk/WebCore

2008-04-18 Kevin McCullough <kmccullough@apple.com>

Reviewed by Sam.

  • Build fix.
  • page/Console.cpp: (WebCore::Console::profile):
  • page/Console.h:
  • page/Console.idl:
2:59 PM Changeset in webkit [32232] by eric@webkit.org
  • 4 edits in trunk/WebCore

Reviewed by darin.

Fix probable crasher caused by invalid static_cast
https://bugs.webkit.org/show_bug.cgi?id=18585

  • page/Frame.cpp: (WebCore::Frame::contentRenderer): (WebCore::Frame::ownerRenderer):
  • rendering/RenderObject.h: sort the "is*" functions (WebCore::RenderObject::isApplet): (WebCore::RenderObject::isBR): (WebCore::RenderObject::isBlockFlow): (WebCore::RenderObject::isCounter): (WebCore::RenderObject::isFrame): (WebCore::RenderObject::isFrameSet): (WebCore::RenderObject::isImage): (WebCore::RenderObject::isInlineBlockOrInlineTable): (WebCore::RenderObject::isInlineFlow): (WebCore::RenderObject::isListBox): (WebCore::RenderObject::isListItem): (WebCore::RenderObject::isListMarker): (WebCore::RenderObject::isMedia): (WebCore::RenderObject::isMenuList): (WebCore::RenderObject::isRenderBlock): (WebCore::RenderObject::isRenderImage): (WebCore::RenderObject::isRenderInline): (WebCore::RenderObject::isRenderPart): (WebCore::RenderObject::isRenderView): (WebCore::RenderObject::isSlider): (WebCore::RenderObject::isTable): (WebCore::RenderObject::isTableCell): (WebCore::RenderObject::isTableCol): (WebCore::RenderObject::isTableRow): (WebCore::RenderObject::isTableSection): (WebCore::RenderObject::isTextArea):
  • rendering/RenderPart.h:
2:59 PM Changeset in webkit [32231] by eric@webkit.org
  • 14 edits in trunk

Reviewed by beth.

Rename Frame::renderer() to contentRenderer() and fix uses.

  • WebCore.base.exp:
  • editing/Editor.cpp: (WebCore::Editor::respondToChangedContents):
  • loader/FrameLoader.cpp: (WebCore::FrameLoader::gotoAnchor):
  • page/DragController.cpp: (WebCore::DragController::canProcessDrag): (WebCore::DragController::mayStartDragAtEventLocation): (WebCore::DragController::startDrag):
  • page/EventHandler.cpp: (WebCore::EventHandler::eventMayStartDrag): (WebCore::EventHandler::updateSelectionForMouseDrag): (WebCore::EventHandler::hitTestResultAtPoint): (WebCore::EventHandler::hoverTimerFired): (WebCore::EventHandler::handleDrag):
  • page/Frame.cpp: (WebCore::Frame::selectionLayoutChanged): (WebCore::Frame::contentRenderer): (WebCore::Frame::paint): (WebCore::Frame::markAllMatchesForText): (WebCore::Frame::documentAtPoint):
  • page/Frame.h:
  • page/FrameView.cpp: (WebCore::FrameView::~FrameView): (WebCore::FrameView::adjustViewSize): (WebCore::FrameView::layout): (WebCore::FrameView::scheduleRelayoutOfSubtree): (WebCore::FrameView::needsLayout): (WebCore::FrameView::setNeedsLayout): (WebCore::FrameView::updateControlTints):
  • rendering/RenderTreeAsText.cpp: (WebCore::write):
  • svg/graphics/SVGImage.cpp: (WebCore::SVGImage::nativeImageForCurrentFrame):
2:56 PM Changeset in webkit [32230] by Antti Koivisto
  • 3 edits in trunk/WebCore

2008-04-18 Antti Koivisto <Antti Koivisto>

Reviewed by Oliver.

https://bugs.webkit.org/show_bug.cgi?id=18551
REGRESSION (r31801?): Crash in ContainerNode::removedFromDocument on many SVG tests


Fix for test svg/W3C-SVG-1.1/animate-elem-62-t.svg which was still
crashing under guard malloc after the previous fix.


If the event base element was a parent of the current element, dereffing it during
removedFromDocument() would cause problems. Avoid this by not holding ref pointer
to the event base but instead checking from the ref count of the event listener whether
it is still alive and in need for unregistering.


This shold not be a problem for syncbase pointers since those are always animation elements
and leaf nodes.

  • svg/animation/SVGSMILElement.cpp: (WebCore::ConditionEventListener::ConditionEventListener): (WebCore::ConditionEventListener::unregister): (WebCore::ConditionEventListener::handleEvent): (WebCore::SVGSMILElement::connectConditions): (WebCore::SVGSMILElement::disconnectConditions): (WebCore::SVGSMILElement::createInstanceTimesFromSyncbase):
  • svg/animation/SVGSMILElement.h:
2:50 PM Changeset in webkit [32229] by kmccullough@apple.com
  • 4 edits
    2 adds in trunk/WebCore

2008-04-18 Kevin McCullough <kmccullough@apple.com>

Reviewed by Sam and Adam.

-<rdar://problem/5770054> JavaScript profiler (10928)

  • Added support for console.profile() and console.profileEnd().
  • ForwardingHeaders/kjs/FunctionCallProfile.h: Added.
  • ForwardingHeaders/kjs/Profiler.h: Added.
  • page/Console.cpp: (WebCore::Console::profile): (WebCore::Console::profileEnd):
  • page/Console.h:
  • page/Console.idl:
2:49 PM Changeset in webkit [32228] by kmccullough@apple.com
  • 7 edits in trunk/JavaScriptCore

2008-04-18 Kevin McCullough <kmccullough@apple.com>

Reviewed by Sam and Adam.

-<rdar://problem/5770054> JavaScript profiler (10928)

  • Cleaned up the header file and made some functions static, added a new, sane, printing function, and fixed a few minor bugs.
  • JavaScriptCore.exp:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • profiler/FunctionCallProfile.cpp: (KJS::FunctionCallProfile::didExecute): Removed assertion that time is

    0 because at ms resolution that may not be true and only cross-

    platform way to get time differences is in ms. (KJS::FunctionCallProfile::printDataInspectorStyle): Added a new printing function for dumping data in a sane style. (KJS::FunctionCallProfile::printDataSampleStyle): Fixed a bug where we displayed too much precision when printing our floats. Also added logic to make sure we don't display 0 because that doesn't make sense for a sampling profile.
  • profiler/FunctionCallProfile.h:
  • profiler/Profiler.cpp: Moved functions that could be static into the implementation, and chaned the ASSERTs to early returns. I did this because console.profile() is a JS function and so was being profiled but asserting because the profiler had not been started! In the future I would like to put the ASSERTs back and not profile the calls to console.profile() and console.profileEnd(). (KJS::Profiler::willExecute): (KJS::Profiler::didExecute): (KJS::getStackNames): Fixed a bug where the wrong ExecState was being used. (KJS::getFunctionName): (KJS::Profiler::printDataInspectorStyle):
  • profiler/Profiler.h:
2:25 PM Changeset in webkit [32227] by kevino@webkit.org
  • 4 edits in trunk

wx build 'fix'. Add loader/appcache sources to the build, and define ENABLE_DOM_STORAGE.

2:18 PM Changeset in webkit [32226] by mitz@apple.com
  • 46 edits
    4 adds in trunk

WebCore:

Reviewed by Darin Adler.

Test: fast/text/trailing-white-space.html

Made trailing white space on the line always behave like it has the base
bidi level of the block, meaning it will always go on the right (left)
of the line in a left-to-right (right-to-left) block. Made the trailing
white space vanish when it is next to a margin that the text should
be touching, and made its width not count when computing the center
point for center alignment.

  • platform/text/BidiResolver.h: (WebCore::::prependRun): Added.
  • rendering/RenderBlock.h:
  • rendering/bidi.cpp: (WebCore::RenderBlock::computeHorizontalPositionsForLine): Changed the logicallyLastRun parameter to an optional trailingSpaceRun and changed the alignment logic to implement the above rules. (WebCore::RenderBlock::layoutInlineChildren): Added code to identify when there is trailing white space that needs to be split into its own run and optionally re-ordered. (WebCore::RenderBlock::findNextLineBreak): Removed code that split some trailing space into a separate run in one special case.

LayoutTests:

Reviewed by Darin Adler.

  • fast/text/trailing-white-space.html: Added.
  • http/tests/misc/acid3-expected.txt:
  • platform/mac/editing/deleting/delete-block-table-expected.txt:
  • platform/mac/editing/deleting/delete-to-select-table-expected.txt:
  • platform/mac/editing/deleting/deletionUI-single-instance-expected.txt:
  • platform/mac/editing/execCommand/5482023-expected.txt:
  • platform/mac/editing/execCommand/boldSelection-expected.txt:
  • platform/mac/editing/execCommand/italicizeByCharacter-expected.txt:
  • platform/mac/editing/execCommand/modifyForeColorByCharacter-expected.txt:
  • platform/mac/editing/execCommand/print-expected.txt:
  • platform/mac/editing/execCommand/selectAll-expected.txt:
  • platform/mac/editing/execCommand/strikethroughSelection-expected.txt:
  • platform/mac/editing/inserting/editable-html-element-expected.txt:
  • platform/mac/editing/inserting/insert-div-027-expected.txt:
  • platform/mac/editing/pasteboard/5028447-expected.txt:
  • platform/mac/editing/pasteboard/block-wrappers-necessary-expected.checksum:
  • platform/mac/editing/pasteboard/block-wrappers-necessary-expected.png:
  • platform/mac/editing/pasteboard/block-wrappers-necessary-expected.txt:
  • platform/mac/editing/pasteboard/nested-blocks-with-text-area-expected.checksum:
  • platform/mac/editing/pasteboard/nested-blocks-with-text-area-expected.png:
  • platform/mac/editing/pasteboard/nested-blocks-with-text-area-expected.txt:
  • platform/mac/editing/pasteboard/nested-blocks-with-text-field-expected.checksum:
  • platform/mac/editing/pasteboard/nested-blocks-with-text-field-expected.png:
  • platform/mac/editing/pasteboard/nested-blocks-with-text-field-expected.txt:
  • platform/mac/editing/selection/5081257-1-expected.txt:
  • platform/mac/editing/selection/after-line-wrap-expected.txt:
  • platform/mac/editing/selection/mixed-editability-1-expected.txt:
  • platform/mac/editing/selection/select-all-001-expected.txt:
  • platform/mac/editing/selection/select-all-002-expected.txt:
  • platform/mac/editing/selection/select-all-003-expected.txt:
  • platform/mac/editing/style/apple-style-editable-mix-expected.txt:
  • platform/mac/editing/style/create-block-for-style-012-expected.checksum:
  • platform/mac/editing/style/create-block-for-style-012-expected.png:
  • platform/mac/editing/style/create-block-for-style-012-expected.txt:
  • platform/mac/fast/clip/outline-overflowClip-expected.txt:
  • platform/mac/fast/forms/textarea-rows-cols-expected.txt:
  • platform/mac/fast/replaced/width100percent-textarea-expected.txt:
  • platform/mac/fast/text/embed-at-end-of-pre-wrap-line-expected.txt:
  • platform/mac/fast/text/justified-text-rect-expected.txt:
  • platform/mac/fast/text/trailing-white-space-expected.checksum: Added.
  • platform/mac/fast/text/trailing-white-space-expected.png: Added.
  • platform/mac/fast/text/trailing-white-space-expected.txt: Added.
  • platform/mac/fast/text/whitespace/pre-wrap-last-char-expected.txt:
  • platform/mac/fast/text/whitespace/pre-wrap-overflow-selection-expected.txt:
  • platform/mac/fast/text/whitespace/pre-wrap-spaces-after-newline-expected.txt:
1:54 PM Changeset in webkit [32225] by mrowe@apple.com
  • 5 edits in trunk/WebCore

Fix builds that do not have DOM storage enabled.

1:33 PM Changeset in webkit [32224] by timothy@apple.com
  • 2 edits in trunk/WebCore

Fixes the regression where style rules in the Inspector always show "inline stylesheet"
for the source of the rule and not the URL or other sources.

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

Reviewed by Dan Bernstein.

  • page/inspector/StylesSidebarPane.js:

(WebInspector.StylesSidebarPane.prototype.update): Add parentStyleSheet to the anonymous obejct
that we make for each matched rule. The parentStyleSheet property is used later to make the subtitle.

1:14 PM Changeset in webkit [32223] by dino@apple.com
  • 4 edits in trunk/WebCore

Fixed marquee suspension on wrong document. Passes current
document into Frame::clearTimers.

Reviewed by hyatt.

  • history/CachedPage.cpp:

(WebCore::CachedPage::clear):

  • page/Frame.cpp:

(WebCore::Frame::clearTimers):

  • page/Frame.h:
12:46 PM Changeset in webkit [32222] by ap@webkit.org
  • 5 edits in trunk/JavaScriptCore

Reviewed by Darin.

Fix leaks during plugin tests (which actually excercise background JS), and potential
PAC brokenness that was not reported, but very likely.

The leaks shadowed a bigger problem with Identifier destruction. Identifier::remove involves
an IdentifierTable lookup, which is now a per-thread instance. Since garbage collection can
currently happen on a different thread than allocation, a wrong table was used.

No measurable change on SunSpider total, ~1% variation on individual tests.

  • kjs/ustring.cpp: (KJS::): (KJS::UString::Rep::create): (KJS::UString::Rep::destroy):
  • kjs/ustring.h: Replaced isIdentifier with a pointer to IdentifierTable, so that destruction can be done correctly. Took one bit from reportedCost, to avoid making UString::Rep larger (performance effect was measurable on SunSpider).
  • kjs/identifier.cpp: (KJS::IdentifierTable::IdentifierTable): (KJS::IdentifierTable::~IdentifierTable): (KJS::IdentifierTable::add): (KJS::IdentifierTable::remove): Make IdentifierTable a real class. Its destructor needs to zero out outstanding references, because some identifiers may briefly outlive it during thread destruction, and we don't want them to use their stale pointers.

(KJS::LiteralIdentifierTable):
(KJS::Identifier::add):
Now that LiteralIdentifierTable is per-thread and can be destroyed not just during application
shutdown, it is not appropriate to simply bump refcount for strings that get there; changed
the table to hold RefPtrs.

(KJS::CStringTranslator::translate):
(KJS::UCharBufferTranslator::translate):
(KJS::Identifier::addSlowCase):
(KJS::Identifier::remove):

  • kjs/identifier.h: (KJS::Identifier::add): Use and update UString::Rep::identifierTable as appropriate. Updating it is now done in IdentifierTable::add, not in translators.
12:45 PM Changeset in webkit [32221] by dino@apple.com
  • 4 edits in trunk/WebCore

Add 'ease' timing function to transitions and
make it the default. See latest specification proposal at:
http://webkit.org/specs/CSSVisualEffects/CSSTransitions.html

Reviewed by hyatt.

NOTE: still working on a way to test animating/transitioning content

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseTransitionTimingFunction):

  • css/CSSStyleSelector.cpp:

(WebCore::CSSStyleSelector::mapTransitionTimingFunction):

  • css/CSSValueKeywords.in:
12:02 PM Changeset in webkit [32220] by ap@webkit.org
  • 2 edits in trunk/JavaScriptCore

Reviewed by Darin.

Get rid of static compareWithCompareFunctionArguments in array_instance.cpp.

No change on SunSpider, CelticKane or iBench JavaScript. It is probable that in some cases,
merge sort is still faster, but more investigation is needed to determine a new cutoff.
Or possibly, it would be better to do what FIXME says (change to tree sort).

Also, made arguments a local variable - not sure why it was a member of
CompareWithCompareFunctionArguments.

  • kjs/array_instance.cpp: (KJS::CompareWithCompareFunctionArguments::CompareWithCompareFunctionArguments): (KJS::CompareWithCompareFunctionArguments::operator()): (KJS::ArrayInstance::sort):
11:03 AM Changeset in webkit [32219] by Adam Roben
  • 10 edits in trunk

Change JavaScriptDebugListener to use KJS::UString instead of WebCore::String

WebCore:

Change JavaScriptDebugListener to use KJS::UString instead of
WebCore::String

This should reduce the number of string allocations performed while
debugging.

Reviewed by Tim Hatcher.

  • page/InspectorController.cpp: Updated JavaScriptDebugListener functions.
  • page/InspectorController.h: Ditto.
  • page/JavaScriptDebugListener.h: Changed to use KJS::UString instead of WebCore::String.
  • page/JavaScriptDebugServer.cpp: Ditto.
  • platform/win/BString.cpp: (WebCore::BString::BString): Added a constructor that takes a KJS::UString.
  • platform/win/BString.h:

WebKit/win:

Update WebScriptDebugServer for JavaScriptDebugListener changes

Reviewed by Tim Hatcher.

  • WebScriptDebugServer.cpp: Changed to use KJS::UString instead of WebCore::String.
  • WebScriptDebugServer.h: Ditto.
10:27 AM Changeset in webkit [32218] by Adam Roben
  • 2 edits in trunk/WebCore

Mac build fix

  • WebCore.xcodeproj/project.pbxproj: Mark JavaScriptDebugListener.h private.
9:32 AM Changeset in webkit [32217] by Adam Roben
  • 3 edits in trunk/WebCore

Make InspectorController a JavaScriptDebugListener

I added two new functions to the InspectorController JS object:
reloadInspectedPageAndStartDebugging and stopDebugging. These control
when the InspectorController adds/removes itself to/from the
JavaScriptDebugServer.

Reviewed by Tim Hatcher.

  • page/InspectorController.cpp: (WebCore::reloadInspectedPageAndStartDebugging): Added. Just calls through to InspectorController. (WebCore::stopDebugging): Ditto. (WebCore::InspectorController::~InspectorController): Make sure we stop debugging before we are destroyed so the JavaScriptDebugServer won't be left with a stale pointer. (WebCore::InspectorController::windowScriptObjectAvailable): Added two new functions to our JS object. (WebCore::InspectorController::closeWindow): Stop debugging when the window closes. (WebCore::InspectorController::reloadInspectedPageAndStartDebugging): Added. (WebCore::InspectorController::stopDebugging): Added.

(WebCore::InspectorController::didParseSource):
(WebCore::InspectorController::failedToParseSource):
(WebCore::InspectorController::didEnterCallFrame):
(WebCore::InspectorController::willExecuteStatement):
(WebCore::InspectorController::willLeaveCallFrame):
Added empty implementations of the JavaScriptDebugListener functions.

  • page/InspectorController.h:
9:01 AM Changeset in webkit [32216] by mitz@apple.com
  • 2 edits in trunk/LayoutTests
  • add css2.1/t1506-c525-font-wt-00-b.html to the Windows skipped list
  • platform/win/Skipped:
8:43 AM Changeset in webkit [32215] by Adam Roben
  • 2 edits in trunk/WebCore

Rename ExecState* instances from state to exec

Requested by Darin Adler and Sam Weinig.

  • bindings/js/JSConsoleCustom.cpp:
8:41 AM Changeset in webkit [32214] by Adam Roben
  • 2 edits in trunk/LayoutTests
  • platform/win/Skipped: Added another failing test.
8:38 AM Changeset in webkit [32213] by Adam Roben
  • 2 edits in trunk/WebCore

Clean up InspectorController's use of JSStringRef

All JSStringRef creation now happens through a helper function,
jsStringRef, which takes either a const char* or a const String& and
returns a JSRetainPtr<JSStringRef>.

Reviewed by Mitz Pettel.

  • page/InspectorController.cpp: Added jsStringRef and converted all callers to JSStringCreateWithUTF8CString or JSStringCreateWithCharacters to use it.
8:34 AM Changeset in webkit [32212] by Adam Roben
  • 2 edits in trunk/WebKitTools

Drop the hang timer to 30 seconds

This matches what DRT/mac was using.

Reviewed by Mitz Pettel.

  • Scripts/run-webkit-tests:
8:33 AM Changeset in webkit [32211] by Adam Roben
  • 4 edits
    4 deletes in trunk/WebKitTools

Get rid of DRT's Watchdog

run-webkit-tests now detects hangs and samples DRT as needed.

Reviewed by Mitz Pettel.

  • DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: Removed Watchdog* files from the project.
  • DumpRenderTree/Watchdog.cpp: Removed.
  • DumpRenderTree/Watchdog.h: Removed.
  • DumpRenderTree/mac/DumpRenderTree.mm: Removed uses of Watchdog (dumpRenderTree): (runTest):
  • DumpRenderTree/mac/WatchdogMac.h: Removed.
  • DumpRenderTree/mac/WatchdogMac.mm: Removed.
  • Scripts/run-webkit-tests: (sub testCrashedOrTimedOut): Call sampleDumpTool() if we timed out. (sub sampleDumpTool): Added. Writes a sample report to ~/Library/Logs/DumpRenderTree/HangReport.txt.
8:19 AM Changeset in webkit [32210] by Adam Roben
  • 3 edits in trunk/WebCore

Add wrappers around InspectorClient::{show,close}Window

This will let us perform actions when the window is actually
showing/closing (InspectorController::show doesn't always directly
show the window).

Reviewed by Tim Hatcher.

  • page/InspectorController.cpp: (WebCore::InspectorController::scriptObjectReady): Call showWindow() instead of m_client->showWindow(). (WebCore::InspectorController::show): Ditto. (WebCore::InspectorController::close): Ditto for closeWindow(). (WebCore::InspectorController::showWindow): (WebCore::InspectorController::closeWindow):
  • page/InspectorController.h:
7:53 AM Changeset in webkit [32209] by Simon Hausmann
  • 22 edits in trunk

Many API changes and additions after a full review with Jasmin Blanchette <jasmin@trolltech.com>

The diff is too big to mention the changes individually, but most of the changes were of cosmetic
nature where methods or enums have been renamed or prefixed/suffixed according to the consistency
rules of the Qt API.

7:37 AM Changeset in webkit [32208] by Simon Hausmann
  • 2 edits in trunk/WebCore

2008-04-18 Ariya Hidayat <ariya.hidayat@trolltech.com>

Reviewed by Adam Roben.

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

No resize indication is shown when moving/hovering over the frame
border/splitter.

7:32 AM Changeset in webkit [32207] by Simon Hausmann
  • 5 edits in trunk/WebKit/qt

Added QWebView::find/QWebFrame::find.

7:07 AM Changeset in webkit [32206] by Adam Roben
  • 2 edits in trunk/WebCore

Windows build fix

Same as before, but for fabs/fabsf.

  • svg/SVGAnimateTransformElement.cpp: (WebCore::SVGAnimateTransformElement::calculateDistance): Changed to use fabsf and removed narrowPrecisionToFloat.
6:57 AM Changeset in webkit [32205] by Adam Roben
  • 3 edits in trunk/WebCore

Windows build fix

In MSVC, sqrt() has three overloads: float, double, and long
double. In GCC, sqrt() is only for doubles. Both MSVC and GCC have
sqrtf() to operate explicitly on floats.

  • svg/SVGAnimateMotionElement.cpp: (WebCore::SVGAnimateMotionElement::calculateDistance): Changed to use sqrtf and removed narrowPrecisionToFloat.
  • svg/SVGAnimateTransformElement.cpp: (WebCore::SVGAnimateTransformElement::calculateDistance): Ditto.
5:47 AM Changeset in webkit [32204] by Simon Hausmann
  • 2 edits in trunk/WebCore

Fix the build without Database support (fixes the Qt/win build).

4:13 AM Changeset in webkit [32203] by alp@webkit.org
  • 2 edits in trunk/WebKit/gtk

2008-04-18 Alp Toker <alp@atoker.com>

Rubber-stamped by Holger Freyther.

http://bugs.webkit.org/show_bug.cgi?id=18218
[Gtk] segfault when clicking on a disabled button

Always use the main frame for mouse events (not the focused frame)
since it knows best how to get the event through to the right target.

This also fixes a null crasher.

  • webkit/webkitwebview.cpp:
4:03 AM Changeset in webkit [32202] by Simon Hausmann
  • 2 edits in trunk/WebCore

Fix the Gtk build on the build bot.

3:44 AM Changeset in webkit [32201] by Simon Hausmann
  • 2 edits in trunk/WebCore

Prospective wx build fix.

3:40 AM Changeset in webkit [32200] by Simon Hausmann
  • 2 edits in trunk/WebCore

Build fix. Back out previous #include fix for PageGroup.h as it broke
the Mac build due to forwarding headers.

3:00 AM Changeset in webkit [32199] by Simon Hausmann
  • 3 edits in trunk/WebCore

Build fix for Qt and gcc 4.3.

2:31 AM Changeset in webkit [32198] by Simon Hausmann
  • 6 edits in trunk

Build fix for gcc 4.3 and Gtk.

12:40 AM Changeset in webkit [32197] by Antti Koivisto
  • 7 edits in trunk/WebCore

2008-04-17 Antti Koivisto <Antti Koivisto>

Reviewed by Oliver.


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

Implement supplemental transforms and use them for <animateMotion> instead of the transform list.
This will allow <animateTransform> and <animateMotion> combine properly.

  • svg/SVGAnimateMotionElement.cpp: (WebCore::SVGAnimateMotionElement::resetToBaseValue): (WebCore::SVGAnimateMotionElement::calculateAnimatedValue): (WebCore::SVGAnimateMotionElement::applyResultsToTarget):
  • svg/SVGElement.h: (WebCore::SVGElement::supplementalTransform):
  • svg/SVGStyledTransformableElement.cpp: (WebCore::SVGStyledTransformableElement::animatedLocalTransform):
  • svg/SVGStyledTransformableElement.h: (WebCore::SVGStyledTransformableElement::supplementalTransform):
  • svg/SVGTextElement.cpp: (WebCore::SVGTextElement::animatedLocalTransform):
  • svg/SVGTextElement.h: (WebCore::SVGTextElement::supplementalTransform):

Apr 17, 2008:

11:59 PM Changeset in webkit [32196] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

Remove unnecessary files from testkjs, testapi and minidom targets.

Rubber-stamped by Oliver Hunt.

11:59 PM Changeset in webkit [32195] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

Fixed ASSERT seen during run-sunspider of a debug build.

  • VM/CodeGenerator.h: Made the default codegen buffers bigger. SunSpider runs all tests in one global environment, so you end up with more than 128 locals. This is just a stop-gap until we code up a real solution to arbitrary symbol and label limits.
11:59 PM Changeset in webkit [32194] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

Fixed a bug in exception unwinding, where we wouldn't deref the scope
chain in global scope, so we would leak ScopeChainNodes when exceptions
were thrown inside "with" and "catch" scopes.

Also did some cleanup of the unwinding code along the way.

Scope chain reference counting is still wrong in a few ways. I thought
I would fix this portion of it first.

run-sunspider shows no change.

  • VM/Machine.cpp: (KJS::Machine::unwindCallFrame): (KJS::Machine::throwException): (KJS::Machine::privateExecute):
  • VM/Machine.h:
11:59 PM Changeset in webkit [32193] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

Add more exception checking to toNumber conversions

Reviewed by Maciej

This corrects op_pre_dec, op_negate, op_mod and op_sub.

11:59 PM Changeset in webkit [32192] by mrowe@apple.com
  • 11 edits in branches/squirrelfish/JavaScriptCore

2008-04-17 Geoffrey Garen <ggaren@apple.com> and Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Oliver Hunt.

Behold: eval.

Introduced a new opcode: op_call_eval. In the normal case, it performs
an eval. In the case where eval has been overridden in some way, it
performs a function call.

  • VM/CodeGenerator.h: Added a feature so the code generator knows not to optimized locals in eval code.
11:59 PM Changeset in webkit [32191] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam Weinig.

Added some ASSERTs to document codegen failures in
run-javascriptcore-tests.

For all tests, program-level codegen now either succeeds, or fails with
an ASSERT.

  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::addVar): (KJS::CodeGenerator::CodeGenerator): (KJS::CodeGenerator::newTemporary): (KJS::CodeGenerator::newLabel):
11:59 PM Changeset in webkit [32190] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.

Fixed another case of a dst register being an unreferenced temporary
(caused an ASSERT when running the full sunspider suite).

  • kjs/nodes.cpp: (KJS::CaseBlockNode::emitCodeForBlock):
11:59 PM Changeset in webkit [32189] by mrowe@apple.com
  • 7 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoff.

  • add documentation (and meaningful parameter names) for arithmetic and bitwise binary ops
  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitMul): (KJS::CodeGenerator::emitDiv): (KJS::CodeGenerator::emitMod): (KJS::CodeGenerator::emitSub): (KJS::CodeGenerator::emitLeftShift): (KJS::CodeGenerator::emitRightShift): (KJS::CodeGenerator::emitUnsignedRightShift): (KJS::CodeGenerator::emitBitAnd): (KJS::CodeGenerator::emitBitXOr): (KJS::CodeGenerator::emitBitOr):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • VM/Opcode.h:
  • kjs/nodes.cpp: (KJS::MultNode::emitCode): (KJS::DivNode::emitCode): (KJS::ModNode::emitCode): (KJS::SubNode::emitCode): (KJS::LeftShiftNode::emitCode): (KJS::RightShiftNode::emitCode): (KJS::UnsignedRightShiftNode::emitCode): (KJS::BitAndNode::emitCode): (KJS::BitXOrNode::emitCode): (KJS::BitOrNode::emitCode): (KJS::emitReadModifyAssignment): (KJS::ReadModifyResolveNode::emitCode):
11:59 PM Changeset in webkit [32188] by mrowe@apple.com
  • 17 edits in branches/squirrelfish/JavaScriptCore

Exception checks for toNumber in op_pre_inc

Reviewed by Geoff

This is somewhat more convoluted than the simple hadException checks
we currently use. Instead we use special toNumber conversions that
select between the exception and ordinary vPC. This allows us to
remove any branches in the common case (incrementing a number).

11:58 PM Changeset in webkit [32187] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoff.

  • ensure that activations are kept in a register to protect them from GC

Also renamed OptionalCalleeScopeChain constant to OptionalCalleeActivation, since
that is what is now kept there, and there is no more need to keep the scope chain in
the register file.

  • VM/Machine.cpp: (KJS::initializeCallFrame): (KJS::scopeChainForCall):
  • VM/Machine.h: (KJS::Machine::):
11:58 PM Changeset in webkit [32186] by mrowe@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

Made "this" work in program code / global scope.

The machine can initialize "this" prior to execution because it knows
that, for program code, "this" is always stored in lr1.

  • VM/Machine.cpp: (KJS::Machine::execute):
  • VM/Machine.h: (KJS::Machine::):
  • kjs/interpreter.cpp: (KJS::Interpreter::evaluate):
11:58 PM Changeset in webkit [32185] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

Fixed a codegen bug when returning from inside a dynamic scope (a with
or catch block): we need to pop any dynamic scope(s) that have been
added so op_ret can find the activation object at the top of the scope
chain.

  • kjs/nodes.cpp: (KJS::ReturnNode::emitCode): If we're returning from inside a dynamic scope, emit a jmp_scopes to take care of popping any dynamic scope(s) and then branching to the return instruction.
11:58 PM Changeset in webkit [32184] by mrowe@apple.com
  • 5 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoff.

  • document the add and get_prop_id opcodes

In addition to adding documentation in comments, I changed
references to register IDs or indices relating to these opcodes to
have meaningful names instead of r0 r1 r2.

  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitAdd):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • kjs/nodes.cpp: (KJS::DotAccessorNode::emitCode): (KJS::FunctionCallDotNode::emitCode): (KJS::PostIncDotNode::emitCode): (KJS::PostDecDotNode::emitCode): (KJS::PreIncDotNode::emitCode): (KJS::PreDecDotNode::emitCode): (KJS::AddNode::emitCode): (KJS::ReadModifyDotNode::emitCode):
11:58 PM Changeset in webkit [32183] by mrowe@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt and Maciej Stachowiak.

Fixed a codegen bug in with and switch, and added an ASSERT to
make sure it doesn't happen again.

emitCode() assumes that dst, if non-zero, is either referenced or
non-temporary (i.e., it assumes that newTemporary() will return a
register not equal to dst). Certain callers to emitCode() weren't
guaranteeing that to be so, so temporary register values were being
overwritten.

  • VM/CodeGenerator.h: (KJS::CodeGenerator::emitNode): ASSERT that dst is referenced or non-temporary.
  • kjs/nodes.cpp: (KJS::CommaNode::emitCode): Reference the dst we pass.

(KJS::WithNode::emitCode): No need to pass an explicit dst register.

(KJS::CaseBlockNode::emitCodeForBlock): No need to pass an explicit dst register.
(KJS::SwitchNode::emitCode): No need to pass an explicit dst register.

  • kjs/nodes.h: Made dst the last parameter to emitCodeForBlock, to match emitCode.
11:58 PM Changeset in webkit [32182] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

Bug 18526: Throw exceptions when resolve fails for op_resolve_base_and_func.
<https://bugs.webkit.org/show_bug.cgi?id=18526>

Reviewed by Maciej

Very simple fix, sunspider shows a 0.7% progression, ubench shows a 0.4% regression.

11:58 PM Changeset in webkit [32181] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/SunSpider

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

Rubber stamped by Oliver.

  • add newly working tests to squirrelfish list
  • tests/LIST-SQUIRRELFISH: Add 3d-raytrace and string-unpack-code
11:58 PM Changeset in webkit [32180] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.

  • fix incorrect result on 3d-raytrace test

Oliver found and tracked down this bug, I just typed in the fix.

  • VM/Machine.cpp: (KJS::slideRegisterWindowForCall): When setting omitted parameters to undefined, account for the space for local variables.
11:58 PM Changeset in webkit [32179] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.

  • fix codegen handling of dst registers

1.006x speedup (not sure why).

Most emitCode functions take an optional "dst" parameter that says
where the output of the instruction should be written. I made some
functions for convenient handling of the dst register:

  • VM/CodeGenerator.h: (KJS::CodeGenerator::tempDestination): Takes the dst register. Returns it if it is not null and is a temporary, otherwise allocates a new temporary. This is intended for cases where an intermediate value might be written into the dst

(KJS::CodeGenerator::finalDestination): Takes the dst register and an optional
register that was used as a temp destination. Picks the right thing for the final
output. Intended to be used as the output register for the instruction that generates
the final value of a particular node.

(KJS::CodeGenerator::moveToDestinationIfNeeded): Takes dst and a
RegisterID; moves from the register to dst if dst is defined and
different from the register. This is intended for cases where the
result of a node is already in a specific register (likely a
local), and so no code needs to be generated unless a specific
destination has been requested, in which case a move is needed.

I also applied these methods throughout emitCode functions. In
some cases this was just cleanup, in other cases I fixed actual
codegen bugs. Below I have given specific comments for the cases
where I believe I fixed a codegen bug, or improved quality of codegen.

  • kjs/nodes.cpp: (KJS::NullNode::emitCode): (KJS::FalseNode::emitCode): (KJS::TrueNode::emitCode): (KJS::NumberNode::emitCode): (KJS::StringNode::emitCode): (KJS::RegExpNode::emitCode): (KJS::ThisNode::emitCode): Now avoids emitting a mov when dst is the same as the this register (the unlikely case of "this = this"); (KJS::ResolveNode::emitCode): Now avoids emitting a mov when dst is the same as the local regiester, in the local var case (the unlikely case of "x = x"); (KJS::ArrayNode::emitCode): Fixed a codegen bug where array literal element expressions may have observed an intermediate value of constructing the array. (KJS::ObjectLiteralNode::emitCode): (KJS::PropertyListNode::emitCode): Fixed a codegen bug where object literal property definition expressions may have obesrved an intermediate value of constructing the object. (KJS::BracketAccessorNode::emitCode): (KJS::DotAccessorNode::emitCode): (KJS::NewExprNode::emitCode): (KJS::FunctionCallValueNode::emitCode): (KJS::FunctionCallBracketNode::emitCode): (KJS::FunctionCallDotNode::emitCode): (KJS::PostIncResolveNode::emitCode): (KJS::PostDecResolveNode::emitCode): (KJS::PostIncBracketNode::emitCode): (KJS::PostDecBracketNode::emitCode): (KJS::PostIncDotNode::emitCode): (KJS::PostDecDotNode::emitCode): (KJS::DeleteResolveNode::emitCode): (KJS::DeleteBracketNode::emitCode): (KJS::DeleteDotNode::emitCode): (KJS::DeleteValueNode::emitCode): (KJS::VoidNode::emitCode): (KJS::TypeOfResolveNode::emitCode): (KJS::TypeOfValueNode::emitCode): (KJS::PreIncResolveNode::emitCode): Fixed a codegen bug where the final value would not be output to the dst register in the local var case. (KJS::PreDecResolveNode::emitCode): Fixed a codegen bug where the final value would not be output to the dst register in the local var case. (KJS::PreIncBracketNode::emitCode): (KJS::PreDecBracketNode::emitCode): (KJS::PreIncDotNode::emitCode): (KJS::PreDecDotNode::emitCode): (KJS::UnaryPlusNode::emitCode): (KJS::NegateNode::emitCode): (KJS::BitwiseNotNode::emitCode): (KJS::LogicalNotNode::emitCode): (KJS::MultNode::emitCode): (KJS::DivNode::emitCode): (KJS::ModNode::emitCode): (KJS::AddNode::emitCode): (KJS::SubNode::emitCode): (KJS::LeftShiftNode::emitCode): (KJS::RightShiftNode::emitCode): (KJS::UnsignedRightShiftNode::emitCode): (KJS::LessNode::emitCode): (KJS::GreaterNode::emitCode): (KJS::LessEqNode::emitCode): (KJS::GreaterEqNode::emitCode): (KJS::InstanceOfNode::emitCode): (KJS::InNode::emitCode): (KJS::EqualNode::emitCode): (KJS::NotEqualNode::emitCode): (KJS::StrictEqualNode::emitCode): (KJS::NotStrictEqualNode::emitCode): (KJS::BitAndNode::emitCode): (KJS::BitXOrNode::emitCode): (KJS::BitOrNode::emitCode): (KJS::LogicalAndNode::emitCode): (KJS::LogicalOrNode::emitCode): (KJS::ConditionalNode::emitCode): (KJS::emitReadModifyAssignment): Allow an out argument separate from the operands, needed for fixes below. (KJS::ReadModifyResolveNode::emitCode): Fixed a codegen bug where the right side of the expression may observe an intermediate value. (KJS::AssignResolveNode::emitCode): Fixed a codegen bug where the right side of the expression may observe an intermediate value. (KJS::ReadModifyDotNode::emitCode): Fixed a codegen bug where the right side of the expression may observe an intermediate value. (KJS::ReadModifyBracketNode::emitCode): Fixed a codegen bug where the right side of the expression may observe an intermediate value. (KJS::CommaNode::emitCode): Avoid writing temporary value to dst register. (KJS::ReturnNode::emitCode): Void return should return undefined, not null. (KJS::FuncExprNode::emitCode):
11:58 PM Changeset in webkit [32178] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoff.

  • fix huge performance regression (from trunk) in string-unpack-code

This restores string-unpack-code performance to parity with
trunk (2.27x speedup relative to previous SquirrelFish)

  • VM/Machine.cpp: (KJS::Machine::execute): Shrink register file after call to avoid growing repeatedly.
11:58 PM Changeset in webkit [32177] by mrowe@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam Weinig.

Fixed dumpCallFrame to match our new convention of passing around a
ScopeChainNode* instead of a ScopeChain*.

  • JavaScriptCore.exp:
  • VM/Machine.cpp: (KJS::Machine::dumpCallFrame):
  • VM/Machine.h:
11:58 PM Changeset in webkit [32176] by mrowe@apple.com
  • 7 edits in branches/squirrelfish/JavaScriptCore

Bug 18436: Need to throw exception on read/modify/write or similar resolve for nonexistent property
<https://bugs.webkit.org/show_bug.cgi?id=18436>

Reviewed by Maciej.

Add op_resolve_base_and_property for read/modify/write operations,
this adds a "superinstruction" to resolve the base and value of a
property simultaneously. Just using resolveBase and resolve results
in an 5% regression in ubench, 30% in loop-empty-resolve (which is
expected). 1.3% progression in sunspider, 2.1% in ubench, with a
21% gain in loop-empty-resolve. The only outlier is function-missing-args
which gets a 3% regression that I could never resolve.

11:58 PM Changeset in webkit [32175] by mrowe@apple.com
  • 8 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.

3d-raytrace and string-unpack-code now run.

The basic approach is to pass around ScopeChainNode* instead of
ScopeChain*, which in addition to not becoming suddenly an invalid
pointer also saves an indirection.

This is an 0.4% speedup on SunSpider --squirrelfish (1.8% on --ubench)

  • VM/Machine.cpp: (KJS::resolve): (KJS::resolveBase): (KJS::resolveBaseAndFunc): (KJS::initializeCallFrame): (KJS::scopeChainForCall): (KJS::Machine::unwindCallFrame): (KJS::Machine::throwException): (KJS::Machine::execute): (KJS::Machine::privateExecute):
  • VM/Machine.h:
  • VM/Register.h: (KJS::Register::):
  • kjs/nodes.cpp: (KJS::EvalNode::generateCode): (KJS::FunctionBodyNode::generateCode): (KJS::ProgramNode::generateCode): (KJS::ProgramNode::processDeclarations): (KJS::EvalNode::processDeclarations): (KJS::FuncDeclNode::makeFunction): (KJS::FuncExprNode::makeFunction):
  • kjs/nodes.h: (KJS::ProgramNode::): (KJS::EvalNode::): (KJS::FunctionBodyNode::):
  • kjs/object.h:
  • kjs/scope_chain.h: (KJS::ScopeChainNode::ScopeChainNode): (KJS::ScopeChainNode::deref): (KJS::ScopeChainIterator::ScopeChainIterator): (KJS::ScopeChainIterator::operator*): (KJS::ScopeChainIterator::operator->): (KJS::ScopeChain::ScopeChain): (KJS::ScopeChain::node): (KJS::ScopeChain::deref): (KJS::ScopeChain::ref): (KJS::ScopeChainNode::ref): (KJS::ScopeChainNode::release): (KJS::ScopeChainNode::begin): (KJS::ScopeChainNode::end):
11:58 PM Changeset in webkit [32174] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

Fixed crash when accessing registers in a torn-off activation object.

  • kjs/JSActivation.cpp: (KJS::JSActivation::copyRegisters): Update our registerOffset after copying our registers, since our offset should now be relative to our private register array, not the shared register file.
11:58 PM Changeset in webkit [32173] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.

  • fix a codegen flaw that makes some tests run way too fast or way too slow

The basic problem was that FunctionCallResolveNode results in
codegen which can incorrectly write an intermediate value into the
dst register even when that is a local. I added convenience
functions to CodeGenerator for getting this right, but for now I
only fixed FunctionCallResolve.

  • VM/CodeGenerator.h: (KJS::CodeGenerator::tempDestination): (KJS::CodeGenerator::):
  • kjs/nodes.cpp: (KJS::FunctionCallResolveNode::emitCode):
11:57 PM Changeset in webkit [32172] by mrowe@apple.com
  • 1 edit
    8 adds in branches/squirrelfish/SunSpider

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

Rubber stamped by Oliver.

  • move ubench tests properly.
  • tests/ubench: Added.
  • tests/ubench/function-closure.js: Added.
  • tests/ubench/function-empty.js: Added.
  • tests/ubench/function-missing-args.js: Added.
  • tests/ubench/function-sum.js: Added.
  • tests/ubench/loop-empty-resolve.js: Added.
  • tests/ubench/loop-empty.js: Added.
  • tests/ubench/loop-sum.js: Added.
11:57 PM Changeset in webkit [32171] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/WebKitTools

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

Reviewed by Oliver.

  • added support for --ubench mode
  • Scripts/run-sunspider:
11:57 PM Changeset in webkit [32170] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/SunSpider

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

Rubber stamped by Oliver.

  • sunspider: Don't force --runs=1 in squirrelfish mode any more.
11:57 PM Changeset in webkit [32169] by mrowe@apple.com
  • 12 edits in branches/squirrelfish

JavaScriptCore:

2008-04-14 Gabor Loki <loki@inf.u-szeged.hu>

Reviewed and slightly tweaked by Geoffrey Garen.

Bug 18489: Squirrelfish doesn't build on linux
<https://bugs.webkit.org/show_bug.cgi?id=18489>

  • JavaScriptCore.pri: Add VM into include path and its files into source set
  • VM/JSPropertyNameIterator.cpp: Fix include name
  • VM/Machine.cpp: Add UNLIKELY macro for GCC
  • VM/Machine.h: Add missing includes
  • VM/RegisterFile.cpp: Add missing include
  • kjs/testkjs.pro: Add VM into include path

WebCore:

2008-04-14 Gabor Loki <loki@inf.u-szeged.hu>

Reviewed by Geoffrey Garen.

Bug 18489: Squirrelfish doesn't build on linux
<https://bugs.webkit.org/show_bug.cgi?id=18489>

11:57 PM Changeset in webkit [32168] by mrowe@apple.com
  • 3 edits
    1 add
    7 deletes in branches/squirrelfish/SunSpider

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

Reviewed by Oliver.

  • make --squirrelfish mode use the real harness, but a reduced set of tests

Also add a new ubench mode which runs the older squirrelfish microbenchmarks.

  • sunspider:
  • tests/LIST-SQUIRRELFISH:
  • tests/LIST-UBENCH: Added.
  • tests/squirrelfish: Moved to tests/ubench
11:57 PM Changeset in webkit [32167] by mrowe@apple.com
  • 1 edit
    1 delete in branches/squirrelfish/SunSpider

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

Reviewed by Maciej Stachowiak.

Removed an unused test.

  • tests/squirrelfish/loop-resolve.js: Removed.
11:57 PM Changeset in webkit [32166] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam Weinig.

Restored OwnPtr in some places where I had removed it previously. We
can have an OwnPtr to an undefined class in a header as long as the
class's destructor isn't in the header.

11:57 PM Changeset in webkit [32165] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam Weinig.

Fixed access to "this" inside dynamic scopes.

  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::registerForLocal): Always return a register for "this", even if we're not optimizing access to other locals. Because "this" is a keyword, it's always in a register and always accessible.
  • VM/CodeGenerator.h: (KJS::CodeGenerator::shouldOptimizeLocals): Factored out a function for determining whether we should optimize access to locals, since eval will need to make this test a little more complicated.
11:57 PM Changeset in webkit [32164] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Adam.

  • fix crash when running SunSpider full harness

When growing the register file's buffer to make space for new globals,
make sure to copy accounting for the fact that the new space is logically
at the beginning of the buffer in this case, instead of at the end as when
growing for a new call frame.

  • VM/RegisterFile.cpp: (KJS::RegisterFile::newBuffer): (KJS::RegisterFile::growBuffer): (KJS::RegisterFile::addGlobalSlots):
  • VM/RegisterFile.h:
11:57 PM Changeset in webkit [32163] by mrowe@apple.com
  • 6 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam Weinig.

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

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

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

  • kjs/nodes.cpp: I had to use manual init and delete in this file because putting an OwnPtr into the header would have created a circular header dependency.
11:57 PM Changeset in webkit [32162] by mrowe@apple.com
  • 7 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej

Use correct value of 'this' for function calls.

11:57 PM Changeset in webkit [32161] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

This time for sure.

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

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

Reviewed by Sam Weinig.

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

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

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

Reviewed by Geoff

11:57 PM Changeset in webkit [32158] by mrowe@apple.com
  • 49 edits
    1 copy
    1 add in branches/squirrelfish

JavaScriptCore:

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

Reviewed by Geoffrey Garen.

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

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

WebCore:

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

Reviewed by Geoffrey Garen.

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

11:56 PM Changeset in webkit [32157] by mrowe@apple.com
  • 4 edits
    4 adds in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoff

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

11:56 PM Changeset in webkit [32156] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

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

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

sunspider --squirrelfish notes a tiny speedup.

  • VM/Machine.cpp: (KJS::Machine::privateExecute):
11:56 PM Changeset in webkit [32155] by mrowe@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

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

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

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

Also:

  • Changed FunctionImp::callAsFunction to honor the new semantics of exceptions not returning 0.
  • Renamed "handlerPC" to "handlerVPC" to match other uses of "VPC".
  • Renamed "exceptionData" to "exceptionValue", because "data" seemed to imply something more than just a JSValue.
  • Merged prepareException into throwException, since throwException was its only caller, and it seemed weird that throwException didn't take an exception as an argument.

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

11:56 PM Changeset in webkit [32154] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.

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

sunspider --squirrelfish does not seem to complain.

  • VM/Machine.cpp: (KJS::Machine::privateExecute):
11:56 PM Changeset in webkit [32153] by mrowe@apple.com
  • 7 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt and Sam Weinig.

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

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

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

Also fixed a few issues along the way:

  • Fixed two bugs in the read-write List implementation that caused m_size and m_buffer to go stale.
  • Changed native call code to update "r" *before* setting the return value, since the call may in turn call JS code, which changes the value of "r".
  • Migrated initialization of "r" outside of Machine::privateExecute, because global code and function code initialize "r" differently.
  • Migrated a codegen warning from Machine::privateExecute to the wiki.
  • Removed unnecessary "r" parameter from slideRegisterWindowForCall
  • VM/Machine.cpp: (KJS::slideRegisterWindowForCall): (KJS::scopeChainForCall): (KJS::Machine::execute): (KJS::Machine::privateExecute):
  • VM/Machine.h:
  • kjs/function.cpp: (KJS::FunctionImp::callAsFunction):
  • kjs/list.cpp: (KJS::List::getSlice):
  • kjs/list.h: (KJS::List::clear):
11:56 PM Changeset in webkit [32152] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/SunSpider

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

Reviewed by Oliver.

Add newly runnable tests to --squirrelfish mode.

  • tests/LIST-SQUIRRELFISH:
11:56 PM Changeset in webkit [32151] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.

  • fix problem with code generation for return with no argument

3d-cube now runs

  • kjs/nodes.cpp: (KJS::ReturnNode::emitCode):
11:56 PM Changeset in webkit [32150] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.

  • Implement support for JS constructors

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

Inexplicably a 1% speedup.

  • VM/Machine.cpp: (KJS::initializeCallFrame): (KJS::Machine::privateExecute):
  • VM/Machine.h: (KJS::Machine::):
11:56 PM Changeset in webkit [32149] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.

  • More code cleanup in preparation for JS constructors

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

  • VM/Machine.cpp: (KJS::slideRegisterWindowForCall): (KJS::scopeChainForCall): (KJS::Machine::privateExecute):
11:56 PM Changeset in webkit [32148] by mrowe@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoff.

  • Code cleanup in preparation for JS constructors
  • Renamed returnInfo to callFrame.
  • Made an enum which defines what goes where in the call frame.
  • Factored out initializeCallFrame function from op_call
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitCall): (KJS::CodeGenerator::emitConstruct):
  • VM/Machine.cpp: (KJS::Machine::dumpRegisters): (KJS::initializeCallFrame): (KJS::Machine::unwindCallFrame): (KJS::Machine::execute): (KJS::Machine::privateExecute):
  • VM/Machine.h: (KJS::Machine::):
11:56 PM Changeset in webkit [32147] by mrowe@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

Fixed two bugs in register allocation for function calls:

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

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

sunspider --squirrelfish reports no regression.

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

  • VM/Machine.cpp: (KJS::Machine::dumpRegisters): (KJS::Machine::execute): (KJS::Machine::privateExecute):
  • VM/RegisterFile.h: (KJS::RegisterFile::shrink): (KJS::RegisterFile::grow):
  • VM/RegisterFileStack.cpp: (KJS::RegisterFileStack::popRegisterFile):
11:56 PM Changeset in webkit [32146] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

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

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

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

sunspider --squirrelfish reports no regression.

  • ChangeLog:
  • VM/Machine.cpp: (KJS::Machine::execute): (KJS::Machine::privateExecute):
11:56 PM Changeset in webkit [32145] by mrowe@apple.com
  • 5 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.

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

Made Machine::execute return a value.

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

sunspider --squirrelfish reports no regression.

  • VM/Machine.cpp: (KJS::Machine::execute): (KJS::Machine::privateExecute):
  • VM/Machine.h:
  • kjs/interpreter.cpp: (KJS::Interpreter::evaluate):
  • kjs/testkjs.cpp: (runWithScripts):
11:56 PM Changeset in webkit [32144] by mrowe@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam Weinig.

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

Tiny bit of refactoring in the Machine class.

sunspider --squirrelfish reports no regression.

  • VM/Machine.cpp: (KJS::Machine::dumpRegisters): (KJS::Machine::unwindCallFrame): (KJS::Machine::execute): (KJS::Machine::privateExecute):
  • VM/Machine.h: (KJS::Machine::isGlobalCallFrame):
  • kjs/interpreter.cpp: (KJS::Interpreter::evaluate):
11:56 PM Changeset in webkit [32143] by mrowe@apple.com
  • 11 edits
    2 copies in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

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

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

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

sunspider --squirrelfish reports no regression.

11:56 PM Changeset in webkit [32142] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoff.

  • initial preparatory work for JS constructors

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

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

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

  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitConstruct):
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
11:56 PM Changeset in webkit [32141] by mrowe@apple.com
  • 3 edits
    1 add in branches/squirrelfish/SunSpider

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

Reviewed by Maciej Stachowiak.

A little more love for --squirrelfish mode:

Fixed a misplaced sort. Results properly sort now.

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

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

  • sunspider:
11:55 PM Changeset in webkit [32140] by mrowe@apple.com
  • 1 edit in branches/squirrelfish/JavaScriptCore/ChangeLog

fix changelog, bokay?

11:55 PM Changeset in webkit [32139] by mrowe@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.

Fixed crasing SunSpider tests.

Let's just pretend this never happened, bokay?

  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::CodeGenerator):
  • VM/CodeGenerator.h:
  • VM/RegisterFile.cpp: (KJS::RegisterFile::addGlobals):
11:55 PM Changeset in webkit [32138] by mrowe@apple.com
  • 5 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

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

11:55 PM Changeset in webkit [32137] by mrowe@apple.com
  • 12 edits
    2 adds in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

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

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

11:55 PM Changeset in webkit [32136] by mrowe@apple.com
  • 13 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoff

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

11:55 PM Changeset in webkit [32135] by mrowe@apple.com
  • 11 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

First step toward supporting re-entrant evaluation: Switch register
clients from using "registers", a pointer to a register vector, to
"registerBase", an indirect pointer to the logical first entry in the
register file. (The logical first entry is the first entry that is not
a global variable).

With a vector, offsets into the register file remain good when the
underlying buffer reallocates, but they go bad when the logical
first entry moves. (The logical first entry moves when new global
variables get added to the beginning of the register file.) With an
indirect pointer to the logical first entry, offsets will remain good
regardless.

1.4% speedup on sunspider --squirrelfish. I suspect this is due to
reduced allocation when creating closures, and reduced indirection
through the register vector.

  • wtf/Vector.h: Added an accessor for an indirect pointer to the vector's buffer, which we currently use (incorrectly) for registerBase. This is temporary scaffolding to allow us to change client code without changing behavior.
11:55 PM Changeset in webkit [32134] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

Implement codegen for ReadModifyDotNode.

  • kjs/nodes.cpp: (KJS::ReadModifyDotNode::emitCode):
  • kjs/nodes.h:
11:55 PM Changeset in webkit [32133] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

Fix codegen for PostIncDotNode and implement codegen for PostIncBracketNode,
PostDecBracketNode and PostDecDotNode.

  • kjs/nodes.cpp: (KJS::PostIncBracketNode::emitCode): (KJS::PostDecBracketNode::emitCode): (KJS::PostIncDotNode::emitCode): (KJS::PostDecDotNode::emitCode):
  • kjs/nodes.h:
11:55 PM Changeset in webkit [32132] by mrowe@apple.com
  • 8 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoffrey Garen.

Implement codegen for PreDecResolveNode, PreIncBracketNode, PreDecBracketNode,
PreIncDotNode and PreDecDotNode. This required adding one new op code, op_pre_dec.

  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitPreDec):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • VM/Opcode.h:
  • kjs/nodes.cpp: (KJS::PreDecResolveNode::emitCode): (KJS::PreIncBracketNode::emitCode): (KJS::PreDecBracketNode::emitCode): (KJS::PreIncDotNode::emitCode): (KJS::PreDecDotNode::emitCode):
  • kjs/nodes.h:
11:55 PM Changeset in webkit [32131] by mrowe@apple.com
  • 7 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam Weinig.

Improved register dumping, plus a liberal smattering of "const". Here's
what the new format looks like:

(gdb) call (void)dumpCallFrame(codeBlock, scopeChain, registers->begin(), r)
4 instructions; 48 bytes at 0x509210; 3 locals (2 parameters); 1 temporaries

[ 0] load lr1, undefined(@k0)
[ 3] load lr1, 2(@k1)
[ 6] add tr0, lr2, lr1
[ 10] ret tr0

Constants:

k0 = undefined
k1 = 2

Register frame:

----------------------------------------

use | address | value

----------------------------------------
[return info] | 0x80ac08 | 0x5081c0
[return info] | 0x80ac0c | 0x508e90
[return info] | 0x80ac10 | 0x504acc
[return info] | 0x80ac14 | 0x2
[return info] | 0x80ac18 | 0x0
[return info] | 0x80ac1c | 0x7
[return info] | 0x80ac20 | 0x0
----------------------------------------
[param] | 0x80ac24 | 0x1
[param] | 0x80ac28 | 0x7
[var] | 0x80ac2c | 0xb
[temp] | 0x80ac30 | 0xf

11:55 PM Changeset in webkit [32130] by mrowe@apple.com
  • 7 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam Weinig.

Support for evaluating multiple scripts in the same global environment.
(Still don't support re-entrant evaluation yet.)

The main changes here are:

(1) Obey the ECMA 10.1.3 rules regarding how to resolve collisions when
a given symbol is declared more than once. (This patch fixes the same
issue for function code, too.)

(2) In the case of var and/or function collisions, reuse the existing
storage slot. For global code, this is required for previously
generated instructions to continue to work. For function code, it's
more of a "nice to have": it makes register layout in the case of
collisions easier to understand, and has the added benefit of saving
memory.

(3) Allocate slots in the CodeGenerator's m_locals vector in parallel
to register indexes in the symbol table. This ensures that, given an
index in the symbol table, we can find the corresponding RegisterID
without hashing, which speeds up codegen.

I moved responsibility for emitting var and function initialization
instructions into the CodeGenerator, because bookkeeping in cases where
var, function, and/or parameter names collide requires a lot of
internal knowledge about the CodeGenerator.

  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::addVar): Removed responsibility for checking whether a var declaration overwrites "arguments", because the check is inappropriate for global code, which may not have a pre-existing "arguments" symbol in scope. Also changed this function to return a boolean indicating whether addVar actually created a new RegisterID, or just reused an old one.

(KJS::CodeGenerator::CodeGenerator): Split out the constructors for
function code and global code, since they're quite different now.

(KJS::CodeGenerator::registerForLocal): This function does its job
without any hashing now.

  • VM/Machine.cpp: Move old globals and update "r" before executing a new script. That way, old globals stay at a constant offset from "r", and previously optimized code still works.
  • VM/RegisterID.h: Added the ability to allocate a RegisterID before initializing its index field. We use this for parameters now.
  • kjs/JSVariableObject.h: (KJS::JSVariableObject::symbolTableGet): Changed the ungettable getter ASSERT to account for the fact that symbol indexes are all negative.
11:55 PM Changeset in webkit [32129] by mrowe@apple.com
  • 1 edit in branches/squirrelfish/JavaScriptCore/ChangeLog

Fix ChangeLog

11:55 PM Changeset in webkit [32128] by mrowe@apple.com
  • 8 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoffrey Garen.

Implement codegen for ForInNode.

  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitIn):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • VM/Opcode.h:
  • kjs/nodes.cpp: (KJS::InNode::emitCode):
  • kjs/nodes.h:
11:55 PM Changeset in webkit [32127] by mrowe@apple.com
  • 8 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

  • Implement codegen for DeleteResolveNode, DeleteBracketNode, DeleteDotNode and DeleteValueNode.
  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitGetPropId): (KJS::CodeGenerator::emitPutPropId): (KJS::CodeGenerator::emitDeletePropId): (KJS::CodeGenerator::emitDeletePropVal): (KJS::CodeGenerator::emitPutPropIndex):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • VM/Opcode.h:
  • kjs/nodes.cpp: (KJS::DeleteResolveNode::emitCode): (KJS::DeleteBracketNode::emitCode): (KJS::DeleteDotNode::emitCode): (KJS::DeleteValueNode::emitCode):
  • kjs/nodes.h:
11:55 PM Changeset in webkit [32126] by mrowe@apple.com
  • 5 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

  • Implement codegen for Switch statements.
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::pushJumpContext): (KJS::CodeGenerator::popJumpContext): (KJS::CodeGenerator::jumpContextForLabel):
  • VM/CodeGenerator.h: Rename LoopContext to JumpContext now that it used of Switch statements in addition to loops.
  • kjs/nodes.cpp: (KJS::DoWhileNode::emitCode): (KJS::WhileNode::emitCode): (KJS::ForNode::emitCode): (KJS::ForInNode::emitCode): (KJS::ContinueNode::emitCode): (KJS::BreakNode::emitCode): (KJS::CaseBlockNode::emitCodeForBlock): (KJS::SwitchNode::emitCode):
  • kjs/nodes.h: (KJS::CaseClauseNode::expr): (KJS::CaseClauseNode::children): (KJS::CaseBlockNode::):
11:55 PM Changeset in webkit [32125] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam.

  • fix crash in codegen from new nodes
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitConstruct):
  • kjs/nodes.h:
11:54 PM Changeset in webkit [32124] by mrowe@apple.com
  • 1 edit in branches/squirrelfish/JavaScriptCore/kjs/nodes.h

File I forgot in my last commit.

11:54 PM Changeset in webkit [32123] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoff.

  • kjs/nodes.cpp: (KJS::ReadModifyResolveNode::emitCode): (KJS::ReadModifyBracketNode::emitCode):
  • kjs/nodes.h:
11:54 PM Changeset in webkit [32122] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoff.

  • take a shot at marking constant pools for global and eval code

Geoff says this won't really work in all cases but is an ok stopgap.

  • kjs/JSGlobalObject.cpp: (KJS::JSGlobalObject::mark):
11:54 PM Changeset in webkit [32121] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoff.

  • fix 2x perf regression in 3d-morph
  • VM/Machine.cpp: (KJS::Machine::privateExecute): If we subbed in null for the global object, don't toObject it, since that will throw an exception (very slowly).
11:54 PM Changeset in webkit [32120] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Rubber stamped by Geoff

  • fix Release build
  • kjs/nodes.cpp: (KJS::getNonLocalSymbol):
11:54 PM Changeset in webkit [32119] by mrowe@apple.com
  • 10 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

Removed the last vestiges of LocalStorage from JSVariableObject and
JSGlobalObject.

  • kjs/JSGlobalObject.cpp: (KJS::JSGlobalObject::saveLocalStorage): Save and restore from/to registers. Use stub isReadOnly and isDontEnum methods for now, until we really implement attributes in the symbol table. (KJS::JSGlobalObject::restoreLocalStorage): (KJS::JSGlobalObject::reset):
  • kjs/JSVariableObject.cpp: (KJS::JSVariableObject::getPropertyNames): Use stub isDontEnum method for now, as above. (KJS::JSVariableObject::getPropertyAttributes): ditto
  • kjs/JSVariableObject.h: Removed LocalStorage from JSVariableObjectData. Removed mark method, because subclasses implement different strategies for marking registers. (KJS::JSVariableObject::isReadOnly): Stub method (KJS::JSVariableObject::isDontEnum): ditto

Changed the code below to ASSERT_NOT_REACHED() and return 0, since it
can no longer retrieve LocalStorage from the ExecState. (Eventually,
we'll just remove this code and all its friends, but that's a task for
later.)

  • kjs/ExecState.cpp: (KJS::ExecState::ExecState):
  • kjs/function.cpp: (KJS::ActivationImp::markChildren):
  • kjs/function.h:
  • kjs/nodes.cpp: (KJS::getNonLocalSymbol): (KJS::ScopeNode::optimizeVariableAccess): (KJS::ProgramNode::processDeclarations):
11:54 PM Changeset in webkit [32118] by mrowe@apple.com
  • 1 edit in branches/squirrelfish/JavaScriptCore/ChangeLog

reverse order of last two ChangeLog entries (oops)

11:54 PM Changeset in webkit [32117] by mrowe@apple.com
  • 6 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoff.

  • mark the constant pool (at least for function code blocks)
  • VM/CodeBlock.cpp: (KJS::CodeBlock::mark):
  • VM/CodeBlock.h:
  • kjs/function.cpp: (KJS::FunctionImp::mark):
  • kjs/nodes.cpp: (KJS::ScopeNode::mark):
  • kjs/nodes.h: (KJS::FuncExprNode::body): (KJS::FuncDeclNode::body):
11:54 PM Changeset in webkit [32116] by mrowe@apple.com
  • 6 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoff.

  • mark the constant pool (at least for function code blocks)
  • VM/CodeBlock.cpp: (KJS::CodeBlock::mark):
  • VM/CodeBlock.h:
  • kjs/function.cpp: (KJS::FunctionImp::mark):
  • kjs/nodes.cpp: (KJS::ScopeNode::mark):
  • kjs/nodes.h: (KJS::FuncExprNode::body): (KJS::FuncDeclNode::body):
11:54 PM Changeset in webkit [32115] by mrowe@apple.com
  • 8 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Beth Dakin.

Cleaned up a few loose ends.

  • JavaScriptCore.exp: Export dumpRegisters, so it's visible to gdb even if we don't explicitly call it in the source text.
  • VM/Machine.cpp: (KJS::Machine::privateExecute): No need to call dumpRegisters anymore, since that was just a hack for gdb's sake.
  • kjs/JSActivation.h: Removed obsolete comment.
  • VM/CodeGenerator.cpp: Added ASSERTs to verify that the localCount we're given matches the number of locals actually allocated.
  • VM/CodeGenerator.h: (KJS::CodeGenerator::CodeGenerator): Changed "localCount" to include the parameter count, since we're using the word "local" to mean parameter, var, function, or "this". Renamed "m_nextLocal" to "m_nextVar", since "m_nextLocal" doesn't contrast well with "m_nextParameter".

Also moved tracking of implicit "this" parameter from here...

  • kjs/nodes.cpp: (KJS::FunctionBodyNode::generateCode): ... to here (KJS::ProgramNode::generateCode): ... and here
  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump): Added missing "\n".
11:54 PM Changeset in webkit [32114] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.

Bug 18274: ResolveNode::emitCode() doesn't make a new temporary when dst

is 0, leading to incorrect codegen

<http://bugs.webkit.org/show_bug.cgi?id=18274>

11:54 PM Changeset in webkit [32113] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.

  • fix bug in for..in codegen (gotta use ident, not m_ident)
  • kjs/nodes.cpp: (KJS::ForInNode::emitCode):
11:54 PM Changeset in webkit [32112] by mrowe@apple.com
  • 9 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.

  • Add suport for regexp literals
  • VM/CodeBlock.cpp: (KJS::regexpToSourceString): (KJS::regexpName): (KJS::CodeBlock::dump):
  • VM/CodeBlock.h:
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::addRegExp): (KJS::CodeGenerator::emitNewRegExp):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • VM/Opcode.h:
  • kjs/nodes.cpp: (KJS::RegExpNode::emitCode):
  • kjs/nodes.h:
11:54 PM Changeset in webkit [32111] by mrowe@apple.com
  • 12 edits
    1 copy
    1 add in branches/squirrelfish/JavaScriptCore

Add support for for..in nodes

Reviewed by Geoff

Added two new opcodes to get_pnames and next_pname to handle iterating
over the set of properties on an object. This iterator is explicitly
invalidated and the property name array is released on standard exit
from the loop, otherwise we rely on GC to do the clean up for us.

11:54 PM Changeset in webkit [32110] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej.

Change CodeGenerator::emitCall() so it increments the reference count of
registers passed to it, and change its callers so they don't needlessly
increment the reference count of the registers they are passing.

  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitCall):
  • kjs/nodes.cpp: (KJS::FunctionCallResolveNode::emitCode): (KJS::FunctionCallDotNode::emitCode):
11:54 PM Changeset in webkit [32109] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.

  • generate call for PostIncDotNode
  • kjs/nodes.cpp: (KJS::PostIncDotNode::emitCode):
  • kjs/nodes.h:
11:54 PM Changeset in webkit [32108] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Build fix.

  • fix build (not sure how this ever worked?)
  • kjs/nodes.cpp: (KJS::FunctionCallBracketNode::emitCode):
11:53 PM Changeset in webkit [32107] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoff.

  • generate code for FunctionCallBracketNode
  • kjs/nodes.cpp: (KJS::FunctionCallBracketNode::emitCode):
  • kjs/nodes.h:
11:53 PM Changeset in webkit [32106] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoff.

  • Fix two crashing SunSpider tests
  • VM/Machine.cpp: (KJS::Machine::privateExecute): set up 'this' properly for native calls.
  • kjs/list.h: (KJS::List::List): Fix intialization of buffer and size from vector, the initialization order was wrong.
11:53 PM Changeset in webkit [32105] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Build fix: marked ASSERT-only variables as UNUSED_PARAMs.

  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • kjs/JSVariableObject.h: (KJS::JSVariableObject::symbolTableInitializeVariable):
11:53 PM Changeset in webkit [32104] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

Next step toward global code: Moved get, put, and initializeVariable
functionality up into JSVariableObject, and changed JSActivation to
rely on it.

  • kjs/JSActivation.cpp: (KJS::JSActivation::JSActivation): (KJS::JSActivation::getOwnPropertySlot): (KJS::JSActivation::put): (KJS::JSActivation::initializeVariable):
  • kjs/JSVariableObject.h: (KJS::JSVariableObject::valueAt): (KJS::JSVariableObject::isReadOnly): (KJS::JSVariableObject::symbolTableGet): (KJS::JSVariableObject::symbolTablePut): (KJS::JSVariableObject::symbolTableInitializeVariable):
11:53 PM Changeset in webkit [32103] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam.

  • fix HashTable assertion on some SunSpider tests

Don't use -1 as the deleted value for JSValue*-keyed hashtables,
since it is a valid value (it's the immediate for -1).

  • VM/CodeGenerator.h: (KJS::CodeGenerator::JSValueHashTraits::emptyValue): (KJS::CodeGenerator::JSValueHashTraits::deletedValue):
  • kjs/JSImmediate.h: (KJS::JSImmediate::impossibleValue):
11:53 PM Changeset in webkit [32102] by mrowe@apple.com
  • 8 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.

Add support for calling Native constructors like new Array().

  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitConstruct):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • VM/Opcode.h:
  • kjs/nodes.cpp: (KJS::NewExprNode::emitCode):
  • kjs/nodes.h:
11:53 PM Changeset in webkit [32101] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam.

  • add some missing toOpbject calls to avoid crashing when calling methods on primitives
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
11:53 PM Changeset in webkit [32100] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

Changed Machine::dumpRegisters to take a pointer instead of a reference,
so gdb understands how to call it.

  • VM/Machine.cpp: (KJS::Machine::dumpRegisters): (KJS::Machine::privateExecute):
  • VM/Machine.h:
11:53 PM Changeset in webkit [32099] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

2008-03-31 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Maciej.

Fix CodeGenerator::addConstant() so it uses the functionExpressions
counter for function expressions, not the functions counter.

  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::addConstant):
11:53 PM Changeset in webkit [32098] by mrowe@apple.com
  • 8 edits in branches/squirrelfish/JavaScriptCore

2008-03-31 Sam Weinig <sam@webkit.org>

Reviewed by Geoffrey Garen.

Add emitCode support for TypeOfResolveNode and TypeOfValueNode.
Added new opcode op_type_of to handle them.

  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitNot): (KJS::CodeGenerator::emitInstanceOf): (KJS::CodeGenerator::emitTypeOf):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::jsTypeStringForValue): (KJS::Machine::privateExecute):
  • VM/Opcode.h:
  • kjs/nodes.cpp: (KJS::TypeOfResolveNode::emitCode): (KJS::TypeOfValueNode::emitCode):
  • kjs/nodes.h:
11:53 PM Changeset in webkit [32097] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

2008-03-31 Sam Weinig <sam@webkit.org>

Reviewed by Oliver Hunt.

Fix non-computed goto version of isOpcode. op_end is a valid opcode.

  • VM/Machine.cpp: (KJS::Machine::isOpcode):
11:53 PM Changeset in webkit [32096] by mrowe@apple.com
  • 8 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.

Added op_post_dec.

11:53 PM Changeset in webkit [32095] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

2008-03-31 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Geoffrey Garen.

Add support for FunctionCallDotNode.

  • kjs/nodes.cpp: (KJS::FunctionCallDotNode::emitCode):
  • kjs/nodes.h:
11:53 PM Changeset in webkit [32094] by mrowe@apple.com
  • 10 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Beth Dakin.

Next step toward global code: Removed more obsolete API, moved
saveLocalStorage and restoreLocalStorage to JSGlobalObject subclass,
since it's only intended for use there.

  • ChangeLog:
  • JavaScriptCore.exp:
  • kjs/Activation.h:
  • kjs/JSGlobalObject.cpp: (KJS::JSGlobalObject::saveLocalStorage): (KJS::JSGlobalObject::restoreLocalStorage):
  • kjs/JSGlobalObject.h:
  • kjs/JSVariableObject.cpp:
  • kjs/JSVariableObject.h: (KJS::JSVariableObject::JSVariableObjectData::JSVariableObjectData):
  • kjs/function.cpp: (KJS::ActivationImp::ActivationImp):
11:52 PM Changeset in webkit [32093] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Beth Dakin.

Next step toward global code: subclass JSActivation + JSActivationData
from JSVariableObject + JSVariableObjectData.

JSActivation now relies on JSVariableObject for access to registers and
symbol table, and for some delete functionality, but not for anything
else yet.

(KJS::JSActivation::mark): Cleaned up the style here a little bit.

11:52 PM Changeset in webkit [32092] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Beth Dakin.

Next step toward global code: store "rOffset" in JSVariableObjectData.

  • kjs/JSGlobalObject.h: (KJS::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData):
  • kjs/JSVariableObject.h: (KJS::JSVariableObject::JSVariableObjectData::JSVariableObjectData):
11:52 PM Changeset in webkit [32091] by mrowe@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.

Next steps toward global code:

  • Moved access to the register file into JSVariableObject.
  • Added more ASSERTs to indicate obsolete APIs there are just hanging around to stave off build failures.
  • kjs/JSGlobalObject.h: (KJS::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData):
  • kjs/JSVariableObject.h: (KJS::JSVariableObject::registers): (KJS::JSVariableObject::JSVariableObjectData::JSVariableObjectData): (KJS::JSVariableObject::JSVariableObject):
11:52 PM Changeset in webkit [32090] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

2008-03-31 Sam Weinig <sam@webkit.org>

Reviewed by Oliver. Tweaked somewhat by Maciej.

  • implement codegen for ReadModifyResolveNode
  • kjs/nodes.cpp: (KJS::emitReadModifyAssignment): (KJS::ReadModifyResolveNode::emitCode):
  • kjs/nodes.h:
11:52 PM Changeset in webkit [32089] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

2008-03-31 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Geoff.

Fix the build -- r31492 removed activation tear-off, but r31493 used it.

  • kjs/nodes.cpp: (KJS::FuncExprNode::makeFunction):
11:52 PM Changeset in webkit [32088] by mrowe@apple.com
  • 9 edits in branches/squirrelfish/JavaScriptCore

2008-03-31 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Maciej.

Add support for FuncExprNode to SquirrelFish.

  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
  • VM/CodeBlock.h:
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::addConstant): (KJS::CodeGenerator::emitNewFunctionExpression):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • VM/Opcode.h:
  • kjs/nodes.cpp: (KJS::FuncExprNode::emitCode): (KJS::FuncExprNode::makeFunction):
  • kjs/nodes.h:
11:52 PM Changeset in webkit [32087] by mrowe@apple.com
  • 7 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.

First step toward global code: removed some obsolete JSGlobalObject
APIs, changing clients to ASSERT_NOT_REACHED.

Activation tear-off and scope chain pushing is obsolete because we
statically detect whether an activation + scope node is required.

The variableObject() and activationObject() accessors are obsolete
because they haven't been maintained, and they're mostly used by
node evaluation code, anyway.

The localStorage() accessor is obsolete because everything is in
registers now, and it's mostly used by node evaluation code, anyway.

11:52 PM Changeset in webkit [32086] by mrowe@apple.com
  • 8 edits in branches/squirrelfish/JavaScriptCore

2008-03-31 Maciej Stachowiak <mjs@apple.com>

Reviewed by Darin.

  • implement codegen for bracket accessor and bracket assign
  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitGetPropVal): (KJS::CodeGenerator::emitPutPropVal):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • VM/Opcode.h:
  • kjs/nodes.cpp: (KJS::BracketAccessorNode::emitCode): (KJS::AssignBracketNode::emitCode):
  • kjs/nodes.h:
11:52 PM Changeset in webkit [32085] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Not reviewed.

Removed FIXME that I just fixed.

Added ASSERT to cover an error previously only covered by a FIXME.

  • kjs/JSActivation.cpp: (KJS::JSActivation::getOwnPropertySlot):
11:52 PM Changeset in webkit [32084] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Not reviewed.

Fixed indentation inside op_call. (I had left this code badly indented
to make the behavior-changing diff clearer.)

  • VM/Machine.cpp: (KJS::Machine::privateExecute):
11:52 PM Changeset in webkit [32083] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam Weinig.

Fixed up logging of jump instructions to follow the following style:

jump offset(->absoluteTarget)

  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
11:52 PM Changeset in webkit [32082] by mrowe@apple.com
  • 9 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam Weinig.

Changed the SymbolTable API to use int instead of size_t. It has been
using int internally for a while now (since squirrelfish symbols can
have negative indices).

11:52 PM Changeset in webkit [32081] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

2008-03-31 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Maciej.

Add support for FunctionCallValueNode.

  • kjs/nodes.cpp: (KJS::FunctionCallValueNode::emitCode):
  • kjs/nodes.h:
11:52 PM Changeset in webkit [32080] by mrowe@apple.com
  • 8 edits in branches/squirrelfish/JavaScriptCore

2008-03-31 Maciej Stachowiak <mjs@apple.com>

Reviewed by Oliver.

1) Implemented array literals

2) Renamed op_object_get and op_object_put to op_get_prop_id and
op_put_prop_id in preparation for new variants.

  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitNewArray): (KJS::CodeGenerator::emitGetPropId): (KJS::CodeGenerator::emitPutPropId): (KJS::CodeGenerator::emitPutPropIndex):
  • VM/CodeGenerator.h: (KJS::CodeGenerator::CodeGenerator): (KJS::CodeGenerator::propertyNames):
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • VM/Opcode.h:
  • kjs/nodes.cpp: (KJS::ArrayNode::emitCode): (KJS::PropertyListNode::emitCode): (KJS::DotAccessorNode::emitCode): (KJS::PostIncResolveNode::emitCode): (KJS::PreIncResolveNode::emitCode): (KJS::AssignResolveNode::emitCode): (KJS::AssignDotNode::emitCode):
  • kjs/nodes.h:
11:52 PM Changeset in webkit [32079] by mrowe@apple.com
  • 27 edits
    6 adds in branches/squirrelfish

JavaScriptCore:

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

Reviewed by Oliver Hunt.

Implemented native function calls. (Re-entering from native code back
to JS doesn't work yet, though.)

0.2% speedup overall, due to some inlining tweaks. 3.6% regression on
function-empty.js, since we're making a new virtual call and taking a
new branch inside every op_call.

I adjusted the JavaScriptCore calling convention to minimize overhead,
like so:

The machine calls a single virtual function, "getCallData", to get all
the data it needs for a function call. Native code still uses the old
"isObject()" check followed by an "implementsCall()" check, which
aliases to "getCallData". (We can optimize native code to use getCallData
at our leisure.)

To supply a list of arguments, the machine calls a new List constructor
that just takes a pointer and a length, without copying. Native code
still appends to the list one argument at a time. (We can optimize
native code to use the new List constructor at our leisure.)

  • VM/Machine.cpp: (KJS::Machine::privateExecute): Changed resize() call to grow() call, to encourage the compiler to inline the Vector code.
  • kjs/CallData.h: Added. (KJS::): CallData is a union because eventually native calls will stuff a function pointer into it, to eliminate the callAsFunction virtual call.
  • kjs/function.cpp: (KJS::FunctionImp::callAsFunction): Changed this to an ASSERT since it's not implemented yet.
  • kjs/list.h: Made the List class two-faced, to support the old way and the new way during this transition phase: lists can be made read-only with just a pointer and a legnth, or you can append to them one item at a time.
  • kjs/value.h: (KJS::jsUndefined): Marked this function ALWAYS_INLINE for the benefit of a certain compiler that doesn't know what's best for it.

JavaScriptGlue:

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

Reviewed by Oliver Hunt.

Build fix.

  • ForwardingHeaders/wtf/UnusedParam.h: Copied from ForwardingHeaders/wtf/OwnPtr.h.

WebCore:

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

Reviewed by Oliver Hunt.

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

WebKit/mac:

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

Reviewed by Oliver Hunt.

Build fix.

11:51 PM Changeset in webkit [32078] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

2008-03-30 Maciej Stachowiak <mjs@apple.com>

Reviewed by Oliver.

Dump code that codegen can't handle yet, so it's easier to prioritize missing nodes.

  • kjs/nodes.h: (KJS::Node::emitCode):
11:51 PM Changeset in webkit [32077] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

2008-03-30 Maciej Stachowiak <mjs@apple.com>

Reviewed by Oliver.

Improve dumping of bytecode and fix coding style accordingly.

Registers are printed as lr1 for locals, tr1 for temp registers. Identifiers print as
foobar(@id0) and constants print as "foo"(@k1) or 312.4(@k2) or the like. Constant and
identifier tables are dumped for reference.

  • VM/CodeBlock.cpp: (KJS::escapeQuotes): (KJS::valueToSourceString): (KJS::registerName): (KJS::constantName): (KJS::idName): (KJS::printUnaryOp): (KJS::printBinaryOp): (KJS::CodeBlock::dump):
  • VM/Machine.cpp: (KJS::resolve): (KJS::resolveBase): (KJS::Machine::privateExecute):
11:51 PM Changeset in webkit [32076] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

2008-03-30 Maciej Stachowiak <mjs@apple.com>

Reviewed by Oliver.

Implement StringNode and VoidNode (both pretty trivial).

  • kjs/nodes.cpp: (KJS::StringNode::emitCode): (KJS::VoidNode::emitCode):
  • kjs/nodes.h:
11:51 PM Changeset in webkit [32075] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

2008-03-30 Maciej Stachowiak <mjs@apple.com>

Reviewed by Sam.

Implement CommaNode.

  • kjs/nodes.cpp: (KJS::CommaNode::emitCode):
  • kjs/nodes.h:
11:51 PM Changeset in webkit [32074] by mrowe@apple.com
  • 8 edits in branches/squirrelfish/JavaScriptCore

2008-03-30 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Maciej.

Adds support for dot notation and object literals.

  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitNewObject):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • VM/Opcode.h:
  • kjs/nodes.cpp: (KJS::ObjectLiteralNode::emitCode): (KJS::PropertyListNode::emitCode): (KJS::DotAccessorNode::emitCode): (KJS::AssignDotNode::emitCode):
  • kjs/nodes.h:
11:51 PM Changeset in webkit [32073] by mrowe@apple.com
  • 7 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.

Mark the register file.

It's a conservative mark for now, but once registers are typed, we can
do an exact mark.

1.4% regression regardless of whether we actually do the marking.
GCC is is worth every penny.

  • VM/Machine.cpp: (KJS::Machine::privateExecute): Most of the changes here are just for the fact that "registers" is a pointer now.
  • kjs/JSGlobalObject.cpp: The global object owns the register file now.
11:51 PM Changeset in webkit [32072] by mrowe@apple.com
  • 7 edits in branches/squirrelfish/JavaScriptCore

Bug 18204: SquirrelFish: continue/break do not correctly handle scope popping
<http://bugs.webkit.org/show_bug.cgi?id=18204>

Reviewed by Maciej.

We now track the scope depth as part of a loop context, and add an
extra instruction op_jump_scopes that is used to perform a jump across
dynamic scope boundaries.

11:51 PM Changeset in webkit [32071] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

2008-03-28 Sam Weinig <sam@webkit.org>

Reviewed by Geoffrey Garen.

Add emitCode support for ConditionalNode.

  • kjs/nodes.cpp: (KJS::ConditionalNode::emitCode):
  • kjs/nodes.h:
11:51 PM Changeset in webkit [32070] by mrowe@apple.com
  • 7 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

Responding to feedback, added some comments, fixed up a few names, and
clarified that "locals" always means all local variables, functions,
and parameters.

11:51 PM Changeset in webkit [32069] by mrowe@apple.com
  • 9 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

Added support for "this".

Supply an implicit "this" value as the first argument to every function.
Alias the "this" keyword to that argument.

1% regression overall, 2.5% regression on empty function calls. Seems
like a reasonable cost for now, since we're doing more work.
(Eventually, we might decide to create a version of op_call specialized
for a known null "this" value.)

  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitCall):
  • VM/CodeGenerator.h: (KJS::CodeGenerator::CodeGenerator):
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • kjs/CommonIdentifiers.cpp: (KJS::CommonIdentifiers::CommonIdentifiers):
  • kjs/CommonIdentifiers.h:
  • kjs/nodes.cpp: (KJS::ThisNode::emitCode): (KJS::FunctionCallResolveNode::emitCode):
  • kjs/nodes.h:
11:51 PM Changeset in webkit [32068] by mrowe@apple.com
  • 5 edits in branches/squirrelfish/JavaScriptCore

Bug 18192: Squirrelfish needs support for break and continue
<http://bugs.webkit.org/show_bug.cgi?id=18192>

Reviewed by Geoff

Added a loop context stack to the code generator to provide the
correct jump labels for continue and goto. Added logic to the
currently implemented loop constructs to manage entry and exit
from the loop contexts. Finally, implemented codegen for break
and continue (and a pass through for LabelNode)

11:51 PM Changeset in webkit [32067] by mrowe@apple.com
  • 8 edits in branches/squirrelfish/JavaScriptCore

2008-03-27 Sam Weinig <sam@webkit.org>

Reviewed by Geoffrey Garen.

Add emitCode support for UnaryPlusNode, NegateNode, BitwiseNotNode and LogicalNotNode.

  • VM/CodeBlock.cpp: (KJS::printUnaryOp): (KJS::CodeBlock::dump):
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitToJSNumber): (KJS::CodeGenerator::emitNegate): (KJS::CodeGenerator::emitBitNot): (KJS::CodeGenerator::emitNot):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • VM/Opcode.h:
  • kjs/nodes.cpp: (KJS::UnaryPlusNode::emitCode): (KJS::NegateNode::emitCode): (KJS::BitwiseNotNode::emitCode): (KJS::LogicalNotNode::emitCode):
  • kjs/nodes.h:
11:51 PM Changeset in webkit [32066] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

2008-03-27 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Maciej Stachowiak.

Add support for LogicalAndNode and LogicalOrNode.

  • kjs/nodes.cpp: (KJS::LogicalAndNode::emitCode): (KJS::LogicalOrNode::emitCode):
  • kjs/nodes.h:
11:51 PM Changeset in webkit [32065] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

2008-03-27 Sam Weinig <sam@webkit.org>

Clean up code and debug output.

  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
11:51 PM Changeset in webkit [32064] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Moved an ASSERT to a more logical place.

  • VM/Machine.cpp: (KJS::Machine::privateExecute):
11:51 PM Changeset in webkit [32063] by mrowe@apple.com
  • 8 edits in branches/squirrelfish/JavaScriptCore

2008-03-27 Sam Weinig <sam@webkit.org>

Reviewed by Oliver Hunt.

Add emitCode support for InstanceOfNode.

  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitInstanceOf):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • VM/Opcode.h:
  • kjs/nodes.cpp: (KJS::InstanceOfNode::emitCode):
  • kjs/nodes.h:
11:51 PM Changeset in webkit [32062] by mrowe@apple.com
  • 9 edits in branches/squirrelfish/JavaScriptCore

Bug 18142: squirrelfish needs to support dynamic scoping/with
<http://bugs.webkit.org/show_bug.cgi?id=18142>

Reviewed by Maciej

Add support for dynamic scoping and add code to handle 'with'
statements.

11:50 PM Changeset in webkit [32061] by mrowe@apple.com
  • 8 edits in branches/squirrelfish/JavaScriptCore

2008-03-27 Sam Weinig <sam@webkit.org>

Reviewed by Geoffrey Garen.

Add emitCode support for NullNode, FalseNode, TrueNode, IfNode, IfElseNode, DoWhileNode and WhileNode

  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump): Dump op_jfalse opcode.
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitJumpIfFalse): Identical to emitJumpIfTrue except it emits the op_jfalse opcode. (KJS::CodeGenerator::emitLoad): Add and emitLoad override for booleans.
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::privateExecute): Adds execution of op_jfalse. It is identical to op_jtrue, except the the condition is reversed.
  • VM/Opcode.h: Add op_jfalse.
  • kjs/nodes.cpp: (KJS::NullNode::emitCode): Added. (KJS::FalseNode::emitCode): Added. (KJS::TrueNode::emitCode): Added. (KJS::IfNode::emitCode): Added. (KJS::IfElseNode::emitCode): Added. (KJS::DoWhileNode::emitCode): Added. (KJS::WhileNode::emitCode): Added.
  • kjs/nodes.h:
11:50 PM Changeset in webkit [32060] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Nixed an unused List.

The calm before my stormy war against the List class.

  • kjs/function_object.cpp: (KJS::FunctionObjectImp::construct):
11:50 PM Changeset in webkit [32059] by mrowe@apple.com
  • 5 edits
    9 adds in branches/squirrelfish

SunSpider:

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

Reviewed by Oliver Hunt.

--squirrelfish mode: pared down tests for squirrelfish to chew on.

  • sunspider:
  • tests/LIST:
  • tests/squirrelfish: Added.
  • tests/squirrelfish/function-closure.js: Added.
  • tests/squirrelfish/function-empty.js: Added.
  • tests/squirrelfish/function-missing-args.js: Added.
  • tests/squirrelfish/function-sum.js: Added.
  • tests/squirrelfish/loop-empty-resolve.js: Added.
  • tests/squirrelfish/loop-empty.js: Added.
  • tests/squirrelfish/loop-resolve.js: Added.
  • tests/squirrelfish/loop-sum.js: Added.

WebKitTools:

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

Reviewed by Oliver Hunt.

--squirrelfish mode: pared down tests for squirrelfish to chew on.

  • Scripts/run-sunspider:
11:50 PM Changeset in webkit [32058] by mrowe@apple.com
  • 9 edits in branches/squirrelfish/JavaScriptCore

2008-03-26 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Geoffrey Garen.

Adds support for EqualNode, NotEqualNode, StrictEqualNode, NotStrictEqualNode,
LessEqNode, GreaterNode, GreaterEqNode, MultNode, DivNode, ModNode, SubNode,
LeftShiftNode, RightShiftNode, UnsignedRightShiftNode, BitAndNode, BitXOrNode,
and BitOrNode.

  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitEqual): (KJS::CodeGenerator::emitNotEqual): (KJS::CodeGenerator::emitStrictEqual): (KJS::CodeGenerator::emitNotStrictEqual): (KJS::CodeGenerator::emitLessEq): (KJS::CodeGenerator::emitMult): (KJS::CodeGenerator::emitDiv): (KJS::CodeGenerator::emitMod): (KJS::CodeGenerator::emitSub): (KJS::CodeGenerator::emitLeftShift): (KJS::CodeGenerator::emitRightShift): (KJS::CodeGenerator::emitUnsignedRightShift): (KJS::CodeGenerator::emitBitAnd): (KJS::CodeGenerator::emitBitXOr): (KJS::CodeGenerator::emitBitOr):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::jsLessEq): (KJS::Machine::privateExecute):
  • VM/Opcode.h:
  • kjs/nodes.cpp: (KJS::MultNode::emitCode): (KJS::DivNode::emitCode): (KJS::ModNode::emitCode): (KJS::SubNode::emitCode): (KJS::LeftShiftNode::emitCode): (KJS::RightShiftNode::emitCode): (KJS::UnsignedRightShiftNode::emitCode): (KJS::GreaterNode::emitCode): (KJS::LessEqNode::emitCode): (KJS::GreaterEqNode::emitCode): (KJS::EqualNode::emitCode): (KJS::NotEqualNode::emitCode): (KJS::StrictEqualNode::emitCode): (KJS::NotStrictEqualNode::emitCode): (KJS::BitAndNode::emitCode): (KJS::BitXOrNode::emitCode): (KJS::BitOrNode::emitCode):
  • kjs/nodes.h:
11:50 PM Changeset in webkit [32057] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

Only print debug dumps in debug builds.

  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::generate):
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
11:50 PM Changeset in webkit [32056] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

Moved a few files around in the XCode project.

11:50 PM Changeset in webkit [32055] by mrowe@apple.com
  • 11 edits
    2 adds in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

Made closures work.

An activation object aliases to the register file until its associated
function returns, at which point it copies the registers for locals and
parameters into an independent storage buffer.

11:50 PM Changeset in webkit [32054] by mrowe@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

Fixed recent 25% regression on simple for loop test. GCC seems to be
very finicky about the code that gets inlined into
Machine::privateExecute.

Everything in this patch is simply the result of experiment.

The resolve and resolve_base opcodes do not seem to have gotten slower
from this change.

  • VM/Machine.cpp: (KJS::resolve): (KJS::resolveBase): (KJS::Machine::privateExecute):
  • kjs/nodes.h:
11:50 PM Changeset in webkit [32053] by mrowe@apple.com
  • 5 edits in branches/squirrelfish/JavaScriptCore

Bug 18059: squirrelfish needs to compile on platforms without computed goto
<http://bugs.webkit.org/show_bug.cgi?id=18059>

Reviewed by Geoff Garen

"Standard" macro style support for conditionalising the use of computed goto.

11:50 PM Changeset in webkit [32052] by mrowe@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Moved my notes from nodes.h to the wiki.

  • kjs/nodes.h:
11:50 PM Changeset in webkit [32051] by mrowe@apple.com
  • 9 edits
    6 copies
    11 adds in branches/squirrelfish/JavaScriptCore

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

Reviewed by NOBODY.

SquirrelFish lives.

Initial check-in of the code I've been carrying around. Lots of stuff
doesn't work. Plus a bunch of empty files.

11:44 PM Changeset in webkit [32050] by mrowe@apple.com
  • 1 copy in branches/squirrelfish

Re-create squirrelfish branch.

11:43 PM Changeset in webkit [32049] by mrowe@apple.com
  • 1 move in branches/old/squirrelfish-2008-04-17

Move aside squirrelfish branch in prepration for rebasing it on trunk.

10:44 PM Changeset in webkit [32048] by Antti Koivisto
  • 9 edits in trunk/WebCore

2008-04-17 Antti Koivisto <Antti Koivisto>

Reviewed by Oliver.

Implement calcMode=paced.


Tested by SVG testsuite tests
animate-elem-11-t.svg
animate-elem-15-t.svg
animate-elem-82-t.svg

  • svg/SVGAnimateElement.cpp: (WebCore::SVGAnimateElement::calculateDistance):
  • svg/SVGAnimateElement.h:
  • svg/SVGAnimateMotionElement.cpp: (WebCore::SVGAnimateMotionElement::calculateDistance):
  • svg/SVGAnimateMotionElement.h:
  • svg/SVGAnimateTransformElement.cpp: (WebCore::SVGAnimateTransformElement::calculateDistance):
  • svg/SVGAnimateTransformElement.h:
  • svg/SVGAnimationElement.cpp: (WebCore::SVGAnimationElement::calculateKeyTimesForCalcModePaced): (WebCore::SVGAnimationElement::startedActiveInterval):
  • svg/SVGAnimationElement.h: (WebCore::SVGAnimationElement::calculateDistance):
10:19 PM Changeset in webkit [32047] by ggaren@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.


Fixed ASSERT seen during run-sunspider of a debug build.

  • VM/CodeGenerator.h: Made the default codegen buffers bigger. SunSpider runs all tests in one global environment, so you end up with more than 128 locals. This is just a stop-gap until we code up a real solution to arbitrary symbol and label limits.
9:02 PM Changeset in webkit [32046] by hyatt@apple.com
  • 2 edits in trunk/WebCore

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

Fix a leak in ImageBuffer's clearImage method.

Reviewed by olliej

  • platform/graphics/ImageBuffer.h: (WebCore::ImageBuffer::clearImage):
8:45 PM Changeset in webkit [32045] by Antti Koivisto
  • 4 edits in trunk/LayoutTests

2008-04-17 Antti Koivisto <Antti Koivisto>

Update SVG animation test results.

  • platform/mac/svg/W3C-SVG-1.1/animate-elem-30-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-40-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-41-t-expected.txt:
8:45 PM Changeset in webkit [32044] by Antti Koivisto
  • 18 edits in trunk/WebCore

2008-04-17 Antti Koivisto <Antti Koivisto>

Reviewed by Eric.


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

More SVG animation:


  • Make multiple additive animations work
  • Support animating <use> instance trees
  • svg/SVGAnimateColorElement.cpp: (WebCore::SVGAnimateColorElement::SVGAnimateColorElement):
  • svg/SVGAnimateColorElement.h:


Made this AnimateElement subclass. All functionality is now provided by AnimateElement.


  • svg/SVGAnimateElement.cpp: (WebCore::SVGAnimateElement::determinePropertyType): (WebCore::SVGAnimateElement::calculateAnimatedValue): (WebCore::SVGAnimateElement::calculateFromAndToValues): (WebCore::SVGAnimateElement::calculateFromAndByValues): (WebCore::SVGAnimateElement::resetToBaseValue): (WebCore::SVGAnimateElement::applyResultsToTarget):
  • svg/SVGAnimateElement.h:
  • svg/SVGAnimateMotionElement.cpp: (WebCore::SVGAnimateMotionElement::resetToBaseValue): (WebCore::SVGAnimateMotionElement::calculateAnimatedValue): (WebCore::SVGAnimateMotionElement::applyResultsToTarget):
  • svg/SVGAnimateMotionElement.h:
  • svg/SVGAnimateTransformElement.cpp: (WebCore::SVGAnimateTransformElement::resetToBaseValue): (WebCore::SVGAnimateTransformElement::calculateAnimatedValue): (WebCore::SVGAnimateTransformElement::calculateFromAndByValues): (WebCore::SVGAnimateTransformElement::applyResultsToTarget):
  • svg/SVGAnimateTransformElement.h:


Switch to new model where

  • resetToBaseValue() resets the animated value back to the base value
  • calculateAnimatedValue() computes the value and adds it to the element used for accumulation
  • applyResultsToTarget() sets the computed value the target element


  • svg/SVGAnimationElement.cpp: (WebCore::SVGAnimationElement::fromValue): (WebCore::SVGAnimationElement::attributeIsCSS): (WebCore::SVGAnimationElement::targetAttributeIsCSS): (WebCore::SVGAnimationElement::setTargetAttributeAnimatedValue):


Update instances too.


(WebCore::SVGAnimationElement::startedActiveInterval):
(WebCore::SVGAnimationElement::updateAnimation):
(WebCore::SVGAnimationElement::endedActiveInterval):

  • svg/SVGAnimationElement.h:
  • svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::SVGSVGElement):
  • svg/SVGSetElement.cpp: (WebCore::SVGSetElement::SVGSetElement):
  • svg/SVGSetElement.h:


Made this AnimateElement subclass. All functionality is now provided by AnimateElement.


  • svg/animation/SMILTimeContainer.cpp: (WebCore::SMILTimeContainer::SMILTimeContainer): (WebCore::SMILTimeContainer::unschedule): (WebCore::SMILTimeContainer::updateDocumentOrderIndexes): (WebCore::PriorityCompare::PriorityCompare): (WebCore::PriorityCompare::operator()): (WebCore::SMILTimeContainer::sortByPriority): (WebCore::applyOrderSortFunction): (WebCore::sortByApplyOrder): (WebCore::SMILTimeContainer::baseValueFor): (WebCore::SMILTimeContainer::updateAnimations):
  • svg/animation/SMILTimeContainer.h: (WebCore::SMILTimeContainer::create): (WebCore::SMILTimeContainer::setDocumentOrderIndexesDirty):


Do additive animation with the following steps

  • sort active animations based on their priority (begin time, document order).
  • if not yet saved for each (element, attribute) pair save the base value.
  • lowest priority animation for each (element, attribute) acts as the result element.
  • animation results are resolved in priority order and results are accumulated to the result element.
  • after all active animations have been processed the values in result elements are applied to the target elements.


  • svg/animation/SVGSMILElement.cpp: (WebCore::SVGSMILElement::SVGSMILElement): (WebCore::SVGSMILElement::insertedIntoDocument):


Invalidate document order index.


(WebCore::SVGSMILElement::attributeName):
(WebCore::SVGSMILElement::isInactive):
(WebCore::SVGSMILElement::isFrozen):
(WebCore::SVGSMILElement::beginListChanged):
(WebCore::SVGSMILElement::determineActiveState):
(WebCore::SVGSMILElement::isContributing):
(WebCore::SVGSMILElement::progress):


Take care that animations in frozen state still contribute to the total. Since we now build the result starting
from the base value, fill="replace" works magically simply by not contributing anything.


  • svg/animation/SVGSMILElement.h: (WebCore::SVGSMILElement::previousIntervalBegin): (WebCore::SVGSMILElement::documentOrderIndex): (WebCore::SVGSMILElement::setDocumentOrderIndex):
6:50 PM Changeset in webkit [32043] by Adam Roben
  • 2 edits in trunk/WebKitTools

Fix many tests on Windows

  • Scripts/run-webkit-tests: (readFromDumpToolWithTimer):
    • Use read instead of sysread to ensure that we don't interfere with other uses of buffered IO in this script.

(setFileHandleNonBlocking): Actually set the filehandle to blocking
when specified.

6:03 PM Changeset in webkit [32042] by jhoneycutt@apple.com
  • 7 edits in trunk

2008-04-17 Jon Honeycutt <jhoneycutt@apple.com>

Reviewed by mrowe.

Define HAVE_ACCESSIBILITY where WebKit, WebCore can see it.

6:02 PM Changeset in webkit [32041] by jhoneycutt@apple.com
  • 2 edits in trunk/WebCore

2008-04-17 Jon Honeycutt <jhoneycutt@apple.com>

Reviewed by aliu.

  • page/AccessibilityObject.cpp: (WebCore::AccessibilityObject::layoutCount): Check isRenderView() before casting to RenderView.
6:01 PM Changeset in webkit [32040] by Antti Koivisto
  • 2 edits in trunk/LayoutTests

2008-04-17 Antti Koivisto <Antti Koivisto>

Re-enable animation tests on windows.

  • platform/win/Skipped:
5:57 PM Changeset in webkit [32039] by Antti Koivisto
  • 3 edits in trunk/WebCore

2008-04-17 Antti Koivisto <Antti Koivisto>

Reviewed by Oliver.


Fix https://bugs.webkit.org/show_bug.cgi?id=18551
Bug 18551: REGRESSION (r31801?): Crash in ContainerNode::removedFromDocument on many SVG tests under guard malloc


Freeing a RefPtr that is the last ref to the parent from removedFromDocument() is a bad idea.

Caching the target element is too dangerous, let's simply not do it. Getting it is very cheap anyway.

  • svg/animation/SVGSMILElement.cpp: (WebCore::SVGSMILElement::removedFromDocument): (WebCore::SVGSMILElement::attributeChanged): (WebCore::SVGSMILElement::targetElement):
  • svg/animation/SVGSMILElement.h:
5:56 PM Changeset in webkit [32038] by Adam Roben
  • 2 edits in trunk/WebKitTools

Fix ~10 tests

  • Scripts/run-webkit-tests: Only remove the newline after #EOF, not whatever newline happens to be at the end of what we've read.
5:56 PM Changeset in webkit [32037] by weinig@apple.com
  • 12 edits
    4 adds
    2 deletes in trunk

WebCore:

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

Reviewed by Anders Carlsson.

Autogenerate the XMLHttpRequest javascript binding.

  • GNUmakefile.am:
  • WebCore.pro:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCoreSources.bkl:
  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMWindowBase.cpp:
  • bindings/js/JSXMLHttpRequest.cpp: Removed.
  • bindings/js/JSXMLHttpRequest.h: Removed.
  • bindings/js/JSXMLHttpRequestConstructor.cpp: Added. (WebCore::JSXMLHttpRequestConstructor::JSXMLHttpRequestConstructor): (WebCore::JSXMLHttpRequestConstructor::implementsConstruct): (WebCore::JSXMLHttpRequestConstructor::construct):
  • bindings/js/JSXMLHttpRequestConstructor.h: Added. (WebCore::JSXMLHttpRequestConstructor::classInfo):
  • bindings/js/JSXMLHttpRequestCustom.cpp: Added. (WebCore::JSXMLHttpRequest::mark): (WebCore::JSXMLHttpRequest::onreadystatechange): (WebCore::JSXMLHttpRequest::setOnreadystatechange): (WebCore::JSXMLHttpRequest::onload): (WebCore::JSXMLHttpRequest::setOnload): (WebCore::JSXMLHttpRequest::responseXML): (WebCore::JSXMLHttpRequest::open): (WebCore::JSXMLHttpRequest::setRequestHeader): (WebCore::JSXMLHttpRequest::send): (WebCore::JSXMLHttpRequest::getResponseHeader): (WebCore::JSXMLHttpRequest::overrideMimeType): (WebCore::JSXMLHttpRequest::addEventListener): (WebCore::JSXMLHttpRequest::removeEventListener): (WebCore::JSXMLHttpRequest::dispatchEvent):
  • xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::readyState): (WebCore::XMLHttpRequest::responseText):
  • xml/XMLHttpRequest.h:
  • xml/XMLHttpRequest.idl: Added.

LayoutTests:

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

Reviewed by Anders Carlsson.

Update test result for additon of XMLHttpRequest constants.

  • fast/dom/Window/window-properties-expected.txt:
5:50 PM Changeset in webkit [32036] by Adam Roben
  • 2 edits in trunk/WebKitTools

Remove DRT/win's hang timer

run-webkit-tests takes care of this for us now

Reviewed by Anders Carlsson.

  • DumpRenderTree/win/DumpRenderTree.cpp:
5:49 PM Changeset in webkit [32035] by Adam Roben
  • 2 edits in trunk/WebKitTools

Don't wait for the hang timer twice in the case of a hang

Previously we'd wait for a hang while reading both stdout and stderr
from DRT. Now we'll only wait for one or the other.

Reviewed by Anders Carlsson.

  • Scripts/run-webkit-tests: (top level): Don't wait for stderr to time out if stdout already timed out. (readFromDumpToolWithTimer): If $dontWaitForTimeOut is true, quit after the first read that returns no data.
5:48 PM Changeset in webkit [32034] by Adam Roben
  • 2 edits in trunk/WebKitTools

Don't throw away the output from timed out tests

Reviewed by Anders Carlsson.

  • Scripts/run-webkit-tests: (top level): Updated for changes to readFromDumpToolWithTimer. (readFromDumpToolWithTimer): Return a hash that contains both the output and whether or not the test timed out.
5:46 PM Changeset in webkit [32033] by ggaren@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.


Fixed a bug in exception unwinding, where we wouldn't deref the scope
chain in global scope, so we would leak ScopeChainNodes when exceptions
were thrown inside "with" and "catch" scopes.


Also did some cleanup of the unwinding code along the way.


Scope chain reference counting is still wrong in a few ways. I thought
I would fix this portion of it first.


run-sunspider shows no change.

  • VM/Machine.cpp: (KJS::Machine::unwindCallFrame): (KJS::Machine::throwException): (KJS::Machine::privateExecute):
  • VM/Machine.h:
5:22 PM Changeset in webkit [32032] by beidson@apple.com
  • 3 edits in trunk/WebCore

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

Reviewed by Anders

The SessionStorage for a Page has to be copied every time a new Page is created.

I thought I had the right choke point for creating new Pages at FrameLoader::createWindow(),
but it just so happens there was another - in the ContextMenuController.

The *real* choke point for this, then, is in the Chrome itself.

  • loader/FrameLoader.cpp: (WebCore::FrameLoader::createWindow): Don't do the SessionStorage copy here...
  • page/Chrome.cpp: (WebCore::Chrome::createWindow): Do it here, instead!
5:13 PM Changeset in webkit [32031] by Adam Roben
  • 2 edits in trunk/WebKitTools

Make the hang timer 60 seconds

  • Scripts/run-webkit-tests:
5:06 PM Changeset in webkit [32030] by alice.liu@apple.com
  • 3 edits in trunk/WebCore

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

Reviewed by Jon Honeycutt.

Added some asserts to catch undesirable usage of setWrapper and addChildren.

  • page/AccessibilityObject.cpp: (WebCore::AccessibilityObject::addChildren):
  • page/AccessibilityObject.h: (WebCore::AccessibilityObject::setWrapper):
4:58 PM Changeset in webkit [32029] by Adam Roben
  • 2 edits in trunk/WebKitTools

Get rid of carriage returns in DRT/win's stderr

Reviewed by Eric Seidel.

  • DumpRenderTree/win/DumpRenderTree.cpp: (main): Mark stderr as binary like we already do for stdout.
4:57 PM Changeset in webkit [32028] by Adam Roben
  • 2 edits in trunk/WebKitTools

Fix Bug 17678: run-webkit-tests should have a watchdog timer (and timeout long tests)

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

We now abort tests that take longer than 60 seconds to produce output.
This matches the watchdog timer in DRT/mac and DRT/win (which we can
now remove).

Reviewed by Eric Seidel.

  • Scripts/run-webkit-tests: (top level): Read DRT's output using the new readFromDumpToolWithTimer subroutine. If readFromDumpToolWithTimer returns undefined it means the test timed out, so we register the test as a hang and move on. (sub testCrashedOrTimedOut): Renamed from testCrashed. Now handles both crashed and timed out tests. If the test timed out, we kill DRT before returning. (sub linksForTimedOutTest): Added. We don't have any output to link to for tests that timed out. (sub recordActualResultsAndDiff): Don't call length on undefined. (sub readFromDumpToolWithTimer): Added. Performs non-blocking reads from a filehandle until an #EOF is reached or $maximumSecondsWithoutOutput have elapsed. (sub setFileHandleNonBlocking): Marks a filehandle as blocking or non-blocking.
4:57 PM Changeset in webkit [32027] by Adam Roben
  • 2 edits in trunk/WebKitTools

Refactor test results page generation

Reviewed by Eric Seidel.

  • Scripts/run-webkit-tests: (sub htmlForResultsSection): Added. Takes a set of tests, a description, and a subroutine to generate the links for each test, and creates a HTML string containing a table of the tests and their links. (sub linksForExpectedAndActualResults): Added. Replaces the htmlForExpectedAndActualResults subroutine. (sub linksForMismatchTest): Added. (sub linksForCrashOrErrorTest): Added. (sub linksForNewTest): Added.
4:57 PM Changeset in webkit [32026] by Adam Roben
  • 2 edits in trunk/WebKitTools

Print the extension for all tests in the test results page

Reviewed by Eric Seidel.

  • Scripts/run-webkit-tests:
4:57 PM Changeset in webkit [32025] by Adam Roben
  • 2 edits in trunk/WebKitTools

Move code that counts finished tests into a subroutine

Reviewed by Eric Seidel.

  • Scripts/run-webkit-tests: (sub countFinishedTest): Added.
4:56 PM Changeset in webkit [32024] by Adam Roben
  • 2 edits in trunk/WebKitTools

Move code that handles a crash into a subroutine

Reviewed by Eric Seidel.

  • Scripts/run-webkit-tests: (sub testCrashed): Added.
4:31 PM Changeset in webkit [32023] by mrowe@apple.com
  • 2 edits in trunk/WebKit/mac

Fix <rdar://problem/5863552> REGRESSION (r30741): Attachments don't appear in the iChat message window after sending

The order of arguments to -[NSDictionary initWithObjects:andKeys:] had been transposed accidentally during refactoring.

Reviewed by Dan Bernstein.

  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::createPlugin): Pass the arguments in the correct order.

4:25 PM Changeset in webkit [32022] by oliver@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

Add more exception checking to toNumber conversions

Reviewed by Maciej

This corrects op_pre_dec, op_negate, op_mod and op_sub.

4:22 PM Changeset in webkit [32021] by andersca@apple.com
  • 2 edits in trunk/LayoutTests

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

Add applicationCache object.


  • fast/dom/Window/window-properties-expected.txt:
4:09 PM Changeset in webkit [32020] by beidson@apple.com
  • 9 edits in trunk/WebCore

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

Reviewed by the Mitzpettel

Before things get much more intertwined, move away from a global LocalStorage model
to a per-PageGroup LocalStorage model.

  • page/DOMWindow.cpp: (WebCore::DOMWindow::localStorage): Get it from the current PageGroup, not the global LocalStorage (which doesn't exist anymore).
  • page/Page.cpp:
  • page/PageGroup.cpp: (WebCore::PageGroup::localStorage): Create a LocalStorage object on demand.
  • page/PageGroup.h:
  • storage/LocalStorage.cpp: (WebCore::LocalStorage::LocalStorage): Hold a back pointer to the owning PageGroup. (WebCore::LocalStorage::storageArea):
  • storage/LocalStorage.h: (WebCore::LocalStorage::create):
  • storage/LocalStorageArea.cpp: (WebCore::LocalStorageArea::LocalStorageArea): Hold a back pointer to the owning LocalStorage.
  • storage/LocalStorageArea.h: (WebCore::LocalStorageArea::create):
4:05 PM Changeset in webkit [32019] by alp@webkit.org
  • 2 edits in trunk

2008-04-17 Alp Toker <alp@atoker.com>

GTK+ build fix. Back out the libjpeg check part of r32008 from bug
#17865 (reopened).

  • configure.ac:
3:47 PM Changeset in webkit [32018] by andersca@apple.com
  • 2 edits in trunk/WebCore

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

Fix indentation.


  • loader/DocumentLoader.cpp: (WebCore::DocumentLoader::scheduleArchiveLoad):
3:34 PM Changeset in webkit [32017] by andersca@apple.com
  • 3 edits in trunk/WebCore

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

Reviewed by Brady.

When in the web archive debug mode, don't call didFail immediately. Instead,
add the loader to the substitute resource map, but with a null resource, which
indicates to substituteResourceDeliveryTimerFired that the load should fail.


  • loader/DocumentLoader.cpp: (WebCore::DocumentLoader::substituteResourceDeliveryTimerFired): (WebCore::DocumentLoader::scheduleArchiveLoad):
  • loader/ResourceLoader.cpp: (WebCore::ResourceLoader::load):
2:54 PM Changeset in webkit [32016] by eric@webkit.org
  • 2 edits in trunk/WebKitTools

Reviewed by hyatt.

Rename RenderView to RenderViewport in the next rename patch.

  • Scripts/do-webcore-rename:
2:30 PM Changeset in webkit [32015] by andersca@apple.com
  • 6 edits in trunk/WebCore

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

Reviewed by Sam.

Add JS bindings for the DOMApplicationCache object.


  • bindings/js/JSDOMApplicationCacheCustom.cpp: (WebCore::JSDOMApplicationCache::add): (WebCore::JSDOMApplicationCache::remove): (WebCore::JSDOMApplicationCache::addEventListener): (WebCore::JSDOMApplicationCache::removeEventListener): (WebCore::JSDOMApplicationCache::dispatchEvent): (WebCore::JSDOMApplicationCache::setOnchecking): (WebCore::JSDOMApplicationCache::onchecking): (WebCore::JSDOMApplicationCache::setOnerror): (WebCore::JSDOMApplicationCache::onerror): (WebCore::JSDOMApplicationCache::setOnnoupdate): (WebCore::JSDOMApplicationCache::onnoupdate): (WebCore::JSDOMApplicationCache::setOndownloading): (WebCore::JSDOMApplicationCache::ondownloading): (WebCore::JSDOMApplicationCache::setOnprogress): (WebCore::JSDOMApplicationCache::onprogress): (WebCore::JSDOMApplicationCache::setOnupdateready): (WebCore::JSDOMApplicationCache::onupdateready): (WebCore::JSDOMApplicationCache::setOncached): (WebCore::JSDOMApplicationCache::oncached): (WebCore::JSDOMApplicationCache::mark):
  • bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::mark):
  • bindings/js/JSEventTargetBase.cpp: (WebCore::toJS):
  • loader/appcache/DOMApplicationCache.idl:
  • page/DOMWindow.idl:
2:09 PM Changeset in webkit [32014] by alp@webkit.org
  • 2 edits in trunk/WebKit/gtk

2008-04-17 Alp Toker <alp@atoker.com>

Rubber-stamped by Holger Freyther.

Reduce hard-coded page-cache count to 3 based on research done for the
Mac port on value / page.

We will need to make this more dynamic or configurable at some point
but for now it's best to keep closer to the behaviour before page
caching was enabled.

Issue spotted by Mark Rowe.

  • webkit/webkitprivate.cpp: (webkit_init):
2:05 PM Changeset in webkit [32013] by ggaren@apple.com
  • 11 edits in branches/squirrelfish/JavaScriptCore

2008-04-17 Geoffrey Garen <ggaren@apple.com> and Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Oliver Hunt.


Behold: eval.


Introduced a new opcode: op_call_eval. In the normal case, it performs
an eval. In the case where eval has been overridden in some way, it
performs a function call.

  • VM/CodeGenerator.h: Added a feature so the code generator knows not to optimized locals in eval code.
1:33 PM Changeset in webkit [32012] by Adam Roben
  • 2 edits in trunk/LayoutTests

Add some crashing tests to the Skipped file

  • platform/win/Skipped:
1:26 PM Changeset in webkit [32011] by adele@apple.com
  • 2 edits in trunk/WebCore

2008-04-17 Eric Carlson <eric.carlson@apple.com>

Reviewed by Adele.

Fix for <rdar://problem/5861642> QTMovieWin returns uninitialized values

  • platform/graphics/win/QTMovieWin.cpp: (QTMovieWin::rate): (QTMovieWin::setRate): (QTMovieWin::setVolume): (QTMovieWin::getNaturalSize):
12:35 PM Changeset in webkit [32010] by alp@webkit.org
  • 2 edits in trunk/WebCore

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

Reviewed by Alp Toker.

http://bugs.webkit.org/show_bug.cgi?id=18335
Pango font backend unable to display japanese properly

Different fonts can have different glyph indices, so we need to pass
the right font when retrieving a glyph index.

  • platform/graphics/gtk/GlyphPageTreeNodePango.cpp: (WebCore::pango_font_get_glyph): Temporarily override the font in the PangoAnalysis passed to pango_shape.
12:25 PM Changeset in webkit [32009] by alp@webkit.org
  • 2 edits in trunk/WebKitTools

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

Reviewed by Alp Toker.

http://bugs.webkit.org/show_bug.cgi?id=18543
DumpRenderTree gtk freeze

fix DumpRenderTree gtk freeze

  • DumpRenderTree/gtk/DumpRenderTree.cpp: (dump):
12:21 PM Changeset in webkit [32008] by alp@webkit.org
  • 2 edits in trunk

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

Reviewed by Alp Toker.

http://bugs.webkit.org/show_bug.cgi?id=17865
[Gtk] Improve detection of jpeglib and glib tools

Improve detecting jpeglib and glib tools

  • configure.ac: Throw an error if the dependencies above are currently not installed
12:10 PM Changeset in webkit [32007] by andersca@apple.com
  • 4 edits in trunk/WebCore

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

According to Sam and David, it's "topLevel", not "toplevel".


  • loader/DocumentLoader.cpp: (WebCore::DocumentLoader::topLevelApplicationCache):
  • loader/DocumentLoader.h:
  • loader/appcache/DOMApplicationCache.cpp: (WebCore::DOMApplicationCache::associatedCache):
12:05 PM Changeset in webkit [32006] by andersca@apple.com
  • 9 edits in trunk/WebCore

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

Reviewed by Sam.

Add DOMApplicationCache implementation.


  • dom/EventNames.h: Add new event names.


  • dom/EventTarget.cpp: (WebCore::EventTarget::toDOMApplicationCache):
  • dom/EventTarget.h: Add EventTarget conversion method.


  • loader/appcache/ApplicationCacheGroup.h: (WebCore::ApplicationCacheGroup::): (WebCore::ApplicationCacheGroup::status): (WebCore::ApplicationCacheGroup::update): (WebCore::ApplicationCacheGroup::newestCache): Add more stubs.


  • loader/appcache/DOMApplicationCache.cpp:
  • loader/appcache/DOMApplicationCache.h:
  • page/DOMWindow.cpp: (WebCore::DOMWindow::clear): (WebCore::DOMWindow::applicationCache):
  • page/DOMWindow.h: (WebCore::DOMWindow::optionalApplicationCache): Add ApplicationCache member.
11:49 AM Changeset in webkit [32005] by alp@webkit.org
  • 2 edits in trunk/WebKit/gtk

2008-04-17 Daniele Metilli <daniele.metilli@gmail.com>

Reviewed by Eric.

Fixed a typo in the copyright header.

  • webkit/webkitprivate.h:
11:44 AM Changeset in webkit [32004] by andersca@apple.com
  • 2 edits in trunk/WebCore

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

Build fix.

  • WebCore.vcproj/WebCore.vcproj:
10:50 AM Changeset in webkit [32003] by ggaren@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam Weinig.


Added some ASSERTs to document codegen failures in
run-javascriptcore-tests.


For all tests, program-level codegen now either succeeds, or fails with
an ASSERT.

  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::addVar): (KJS::CodeGenerator::CodeGenerator): (KJS::CodeGenerator::newTemporary): (KJS::CodeGenerator::newLabel):
10:26 AM Changeset in webkit [32002] by adele@apple.com
  • 3 edits
    4 adds in trunk

WebCore:

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

Reviewed by Hyatt.

Fix for <rdar://problem/5849968> translate method should have Y=0 when only X is present

Test: fast/css/transform-default-parameter.html

  • css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty): translate function with only X parameter now leaves the Y parameter as zero.

LayoutTests:

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

Reviewed by Hyatt.

Test for <rdar://problem/5849968> translate method should have Y=0 when only X is present

  • fast/css/transform-default-parameter.html: Added.
  • platform/mac/fast/css/transform-default-parameter-expected.checksum: Added.
  • platform/mac/fast/css/transform-default-parameter-expected.png: Added.
  • platform/mac/fast/css/transform-default-parameter-expected.txt: Added.
10:09 AM Changeset in webkit [32001] by andersca@apple.com
  • 4 edits in trunk/WebCore

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

Reviewed by Sam.


Add plumbing for associating document loaders with application caches.


  • loader/DocumentLoader.cpp: (WebCore::DocumentLoader::DocumentLoader): (WebCore::DocumentLoader::~DocumentLoader): (WebCore::DocumentLoader::originalURL): (WebCore::DocumentLoader::requestURL): (WebCore::DocumentLoader::responseURL): (WebCore::DocumentLoader::responseMIMEType): (WebCore::DocumentLoader::setCandidateApplicationCacheGroup): (WebCore::DocumentLoader::setApplicationCache): (WebCore::DocumentLoader::toplevelApplicationCache):
  • loader/DocumentLoader.h: (WebCore::DocumentLoader::candidateApplicationCacheGroup): (WebCore::DocumentLoader::applicationCache):
  • loader/appcache/ApplicationCacheGroup.h: (WebCore::ApplicationCacheGroup::documentLoaderDestroyed):
9:04 AM Changeset in webkit [32000] by ap@webkit.org
  • 2 edits in trunk/JavaScriptCore

Reviewed by Maciej.

Thread static data destructors are not guaranteed to be called in any particular order;
turn ThreadSpecific into a phoenix-style singleton to avoid accessing freed memory when
deleted objects are interdependent (e.g. CommonIdentifiers and internal identifier tables).

No change on SunSpider.

  • wtf/ThreadSpecific.h: (WTF::ThreadSpecific::Data::Data): (WTF::::get): (WTF::::set): (WTF::::destroy):
8:31 AM Changeset in webkit [31999] by Adam Roben
  • 2 edits in trunk/WebCore

Fix Bug 18544: REGRESSION (r31951): Two fast/xsl tests crash

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

r31951 changed XSLTProcessor::parseErrorFunc to expect a Console* as
the context parameter. The caller in XSLTProcessor was changed, but
the one in XSLStyleSheet was missed.

Reviewed by Alexey Proskuryakov.

  • xml/XSLStyleSheet.cpp: (WebCore::XSLStyleSheet::parseString): Pass the Console as the context to parseErrorFunc.
8:11 AM Changeset in webkit [31998] by Adam Roben
  • 2 edits in trunk/WebCore

Windows build fix after r31981

  • dom/Document.idl: Omit getCSSCanvasContext from the COM bindings.
4:56 AM Changeset in webkit [31997] by Simon Hausmann
  • 2 edits in trunk/WebCore

Ariya Hidayat <ariya.hidayat@trolltech.com>

Implemented getFileModificationTime and pathGetFileName for the Qt port.

1:21 AM Changeset in webkit [31996] by ggaren@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.


Fixed another case of a dst register being an unreferenced temporary
(caused an ASSERT when running the full sunspider suite).

  • kjs/nodes.cpp: (KJS::CaseBlockNode::emitCodeForBlock):
1:07 AM Changeset in webkit [31995] by mjs@apple.com
  • 7 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoff.


  • add documentation (and meaningful parameter names) for arithmetic and bitwise binary ops
  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitMul): (KJS::CodeGenerator::emitDiv): (KJS::CodeGenerator::emitMod): (KJS::CodeGenerator::emitSub): (KJS::CodeGenerator::emitLeftShift): (KJS::CodeGenerator::emitRightShift): (KJS::CodeGenerator::emitUnsignedRightShift): (KJS::CodeGenerator::emitBitAnd): (KJS::CodeGenerator::emitBitXOr): (KJS::CodeGenerator::emitBitOr):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • VM/Opcode.h:
  • kjs/nodes.cpp: (KJS::MultNode::emitCode): (KJS::DivNode::emitCode): (KJS::ModNode::emitCode): (KJS::SubNode::emitCode): (KJS::LeftShiftNode::emitCode): (KJS::RightShiftNode::emitCode): (KJS::UnsignedRightShiftNode::emitCode): (KJS::BitAndNode::emitCode): (KJS::BitXOrNode::emitCode): (KJS::BitOrNode::emitCode): (KJS::emitReadModifyAssignment): (KJS::ReadModifyResolveNode::emitCode):
12:56 AM Changeset in webkit [31994] by oliver@apple.com
  • 17 edits in branches/squirrelfish/JavaScriptCore

Exception checks for toNumber in op_pre_inc

Reviewed by Geoff

This is somewhat more convoluted than the simple hadException checks
we currently use. Instead we use special toNumber conversions that
select between the exception and ordinary vPC. This allows us to
remove any branches in the common case (incrementing a number).

12:44 AM Changeset in webkit [31993] by mrowe@apple.com
  • 2 edits in trunk/WebCore

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

Fix the non-Mac builds that I broke with my Mac build fix.

  • css/CSSMutableStyleDeclaration.cpp: (WebCore::CSSMutableStyleDeclaration::getLayeredShorthandValue): Explicitly use the size_t version of max to avoid making assumptions about sizeof(size_t).
12:22 AM Changeset in webkit [31992] by mrowe@apple.com
  • 6 edits in trunk

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

Rubber-stamped by Dan Bernstein.

Fix the Mac build.

  • css/CSSMutableStyleDeclaration.cpp: (WebCore::CSSMutableStyleDeclaration::getLayeredShorthandValue): Update to use size_t in place of unsigned.
  • dom/NamedNodeMap.h: Ditto.
  • page/AccessibilityObject.h: Forward-declare AccessibilityObjectWrapper in the non-Objective-C case too.

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

Rubber-stamped by Dan Bernstein.

Fix the Mac build.

  • WebView/WebFrame.mm: Define HAVE_ACCESSIBILITY before including AccessibilityObject.h and AXObjectCache.h to get things building for now. This comes from config.h in WebCore but we don't have an equivalent in WebKit so we'll need to work out the correct place for this to live going forward.

Apr 16, 2008:

10:56 PM Changeset in webkit [31991] by mitz@apple.com
  • 2 edits in trunk/JavaScriptCore

2008-04-15 Srinivas Rao. M Hamse <msrinirao@gmail.com>

Reviewed by Maciej Stachowiak.

  • gcc 3.x build fix
  • kjs/nodes.h: CallerType definition made public for gcc 3.x compilation
9:57 PM Changeset in webkit [31990] by jhoneycutt@apple.com
  • 2 edits
    2 adds in trunk/WebKit/win

Add AccessibilityObject wrapper class to WebKit.

9:56 PM Changeset in webkit [31989] by jhoneycutt@apple.com
  • 4 edits in trunk/WebCore

Fix size_t -> unsigned conversion warnings.

9:56 PM Changeset in webkit [31988] by jhoneycutt@apple.com
  • 3 edits in trunk/WebCore

Add some methods to determine the AccessibilityObject state.

9:55 PM Changeset in webkit [31987] by jhoneycutt@apple.com
  • 4 edits
    1 add in trunk/WebCore

Add AccessibilityObjectWrapper on Windows.

9:54 PM Changeset in webkit [31986] by jhoneycutt@apple.com
  • 4 edits
    1 add in trunk/WebCore

Add AXObjectCache to Windows.

9:54 PM Changeset in webkit [31985] by jhoneycutt@apple.com
  • 2 edits in trunk/WebCore

Fix path to AXObjectCache.h on Windows.

9:41 PM Changeset in webkit [31984] by beidson@apple.com
  • 1 edit in trunk/WebCore/ChangeLog

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

Fix ChangeLog typo

9:40 PM Changeset in webkit [31983] by beidson@apple.com
  • 12 edits
    4 adds
    1 delete in trunk/WebCore

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

Reviewed by Darin Adler

Merge the StorageAreaClient into the StorageArea class itself as pure virtual methods.
Add "LocalStorageArea" add "SessionStorageArea" implementations, and have SessionStorage
and LocalStorage instantiate the appropriate type of StorageArea object.

This purpose of this change is because while adding the persistent store to LocalStorage,
it became obvious that the client approach wasn't scaling well. Additionally, a StorageArea
backing a local storage area required vastly different data members compared to one backing
a session storage area.

This will be much cleaner going forward.

  • GNUmakefile.am:
  • WebCore.pro:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • WebCoreSources.bkl:
  • storage/LocalStorage.cpp: (WebCore::LocalStorage::storageArea):
  • storage/LocalStorage.h:
  • storage/LocalStorageArea.cpp: Added. (WebCore::LocalStorageArea::LocalStorageArea): (WebCore::LocalStorageArea::itemChanged): (WebCore::LocalStorageArea::itemRemoved): (WebCore::LocalStorageArea::dispatchStorageEvent):
  • storage/LocalStorageArea.h: Added. (WebCore::LocalStorageArea::create):
  • storage/SessionStorage.cpp: (WebCore::SessionStorage::copy): (WebCore::SessionStorage::storageArea):
  • storage/SessionStorage.h:
  • storage/SessionStorageArea.cpp: Added. (WebCore::SessionStorageArea::copy): (WebCore::SessionStorageArea::SessionStorageArea): (WebCore::SessionStorageArea::itemChanged): (WebCore::SessionStorageArea::itemRemoved): (WebCore::SessionStorageArea::dispatchStorageEvent):
  • storage/SessionStorageArea.h: Added. (WebCore::SessionStorageArea::create): (WebCore::SessionStorageArea::page):
  • storage/StorageArea.cpp: (WebCore::StorageArea::StorageArea): (WebCore::StorageArea::setItem): (WebCore::StorageArea::removeItem): (WebCore::StorageArea::storageMap):
  • storage/StorageArea.h:
  • storage/StorageAreaClient.h: Removed.
9:15 PM Changeset in webkit [31982] by hyatt@apple.com
  • 1 edit in trunk/LayoutTests/fast/dom/Window/window-properties-expected.txt

Update window properties test for the new DOM document method.

9:13 PM Changeset in webkit [31981] by hyatt@apple.com
  • 36 edits
    6 adds in trunk

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

Add support for the ability to draw directly into CSS images using CanvasRenderingContext2D.

Reviewed by olliej

Added fast/canvas/canvas-bg.html

  • GNUmakefile.am:
  • WebCore.pro:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • WebCoreSources.bkl:
  • css/CSSCanvasValue.cpp: Added. (WebCore::CSSCanvasValue::~CSSCanvasValue): (WebCore::CSSCanvasValue::cssText): (WebCore::CSSCanvasValue::canvasChanged): (WebCore::CSSCanvasValue::canvasResized): (WebCore::CSSCanvasValue::fixedSize): (WebCore::CSSCanvasValue::element): (WebCore::CSSCanvasValue::image):
  • css/CSSCanvasValue.h: Added. (WebCore::CSSCanvasValue::CSSCanvasValue): (WebCore::CSSCanvasValue::isFixedSize): (WebCore::CSSCanvasValue::setName):
  • css/CSSGradientValue.cpp:
  • css/CSSGradientValue.h:
  • css/CSSImageGeneratorValue.cpp: (WebCore::CSSImageGeneratorValue::generatedImage):
  • css/CSSImageGeneratorValue.h: (WebCore::CSSImageGeneratorValue::isFixedSize): (WebCore::CSSImageGeneratorValue::fixedSize):
  • css/CSSParser.cpp: (WebCore::CSSParser::parseContent): (WebCore::CSSParser::parseBackgroundImage): (WebCore::CSSParser::parseBorderImage): (WebCore::CSSParser::parseCanvas):
  • css/CSSParser.h:
  • dom/Document.cpp: (WebCore::Document::getCSSCanvasContext): (WebCore::Document::getCSSCanvasElement):
  • dom/Document.h:
  • dom/Document.idl:
  • html/HTMLCanvasElement.cpp: (WebCore::HTMLCanvasElement::HTMLCanvasElement): (WebCore::HTMLCanvasElement::reset):
  • html/HTMLCanvasElement.h: (WebCore::HTMLCanvasElement::setSize):
  • rendering/RenderBox.cpp: (WebCore::RenderBox::calculateBackgroundSize): (WebCore::RenderBox::imageChanged):
  • rendering/RenderBox.h:
  • rendering/RenderImage.cpp: (WebCore::RenderImage::imageChanged):
  • rendering/RenderImage.h: (WebCore::RenderImage::imagePtr): (WebCore::RenderImage::intrinsicSizeChanged):
  • rendering/RenderImageGeneratedContent.h: (WebCore::RenderImageGeneratedContent::imageSize): (WebCore::RenderImageGeneratedContent::imagePtr):
  • rendering/RenderListMarker.cpp: (WebCore::RenderListMarker::layout): (WebCore::RenderListMarker::imageChanged): (WebCore::RenderListMarker::calcPrefWidths): (WebCore::RenderListMarker::getRelativeMarkerRect):
  • rendering/RenderListMarker.h:
  • rendering/RenderObject.cpp: (WebCore::RenderObject::paintBorderImage): (WebCore::RenderObject::imageChanged):
  • rendering/RenderObject.h: (WebCore::RenderObject::imageChanged):
  • rendering/RenderSVGImage.cpp: (WebCore::RenderSVGImage::imageChanged):
  • rendering/RenderSVGImage.h:
  • rendering/RenderStyle.cpp: (WebCore::StyleCachedImage::imageSize): (WebCore::StyleGeneratedImage::imageSize):
  • rendering/RenderStyle.h: (WebCore::StyleCachedImage::data): (WebCore::StyleGeneratedImage::StyleGeneratedImage): (WebCore::StyleGeneratedImage::data): (WebCore::StyleGeneratedImage::imageHasRelativeWidth): (WebCore::StyleGeneratedImage::imageHasRelativeHeight): (WebCore::StyleGeneratedImage::usesImageContainerSize):
  • rendering/RenderTableCol.cpp: (WebCore::RenderTableCol::imageChanged):
  • rendering/RenderTableCol.h:
  • rendering/RenderTableRow.cpp: (WebCore::RenderTableRow::imageChanged):
  • rendering/RenderTableRow.h:
  • rendering/RenderTableSection.cpp: (WebCore::RenderTableSection::imageChanged):
  • rendering/RenderTableSection.h:
7:02 PM Changeset in webkit [31980] by mjs@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoff.


  • ensure that activations are kept in a register to protect them from GC


Also renamed OptionalCalleeScopeChain constant to OptionalCalleeActivation, since
that is what is now kept there, and there is no more need to keep the scope chain in
the register file.

  • VM/Machine.cpp: (KJS::initializeCallFrame): (KJS::scopeChainForCall):
  • VM/Machine.h: (KJS::Machine::):
6:47 PM Changeset in webkit [31979] by ggaren@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.


Made "this" work in program code / global scope.


The machine can initialize "this" prior to execution because it knows
that, for program code, "this" is always stored in lr1.

  • VM/Machine.cpp: (KJS::Machine::execute):
  • VM/Machine.h: (KJS::Machine::):
  • kjs/interpreter.cpp: (KJS::Interpreter::evaluate):
6:27 PM Changeset in webkit [31978] by andersca@apple.com
  • 4 edits in trunk/WebCore

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

Reviewed by Darin.

Add manifest parser.

  • loader/appcache/ManifestParser.cpp: (WebCore::): (WebCore::parseManifest):
  • loader/appcache/ManifestParser.h:
  • platform/text/CharacterNames.h:
6:23 PM Changeset in webkit [31977] by Darin Adler
  • 3 edits
    2 adds in trunk

WebCore:

2008-04-16 Darin Adler <Darin Adler>

Reviewed by Mitz.

  • fix <rdar://problem/5858617> REGRESSION (r21452-Safari 3.1): Safari does not find words containing ß (German letter sharp-s)

Test: fast/text/find-case-folding.html

  • platform/text/StringImpl.cpp: (WebCore::StringImpl::foldCase): Pass the folded length to foldCase rather than the original string length. Without this, we get an error code every time.

LayoutTests:

2008-04-16 Darin Adler <Darin Adler>

Earlier version reviewed by Mitz.

  • test for <rdar://problem/5858617> REGRESSION (r21452-Safari 3.1): Safari does not find words containing ß (German letter sharp-s)
  • fast/text/find-case-folding-expected.txt: Added.
  • fast/text/find-case-folding.html: Added.
5:51 PM Changeset in webkit [31976] by andersca@apple.com
  • 2 edits in trunk/WebCore

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

Fix build.


  • loader/appcache/ApplicationCache.cpp: (WebCore::ApplicationCache::ApplicationCache): (WebCore::ApplicationCache::setManifestResource): (WebCore::ApplicationCache::addResource):
5:50 PM Changeset in webkit [31975] by andersca@apple.com
  • 3 edits in trunk/WebCore

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

Reviewed by Darin.

Add new protocolHostAndPortAreEqual function.


  • platform/KURL.cpp: (WebCore::KURL::host): (WebCore::KURL::setHost): (WebCore::KURL::setHostAndPort): (WebCore::protocolHostAndPortAreEqual):
  • platform/KURL.h: (WebCore::KURL::hostStart):
5:22 PM Changeset in webkit [31974] by andersca@apple.com
  • 3 edits in trunk/WebCore

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

Reviewed by Sam.


Fix some style nits.


  • loader/appcache/ApplicationCache.cpp: (WebCore::ApplicationCache::ApplicationCache): (WebCore::ApplicationCache::setManifestResource): (WebCore::ApplicationCache::addResource): (WebCore::ApplicationCache::removeResource): (WebCore::ApplicationCache::dump):
  • loader/appcache/ApplicationCacheGroup.h:
5:17 PM Changeset in webkit [31973] by andersca@apple.com
  • 4 edits in trunk/WebCore

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

Reviewed by Brady and Sam.

Add ApplicationCache implementation. Stub out ApplicationCacheGroup methods
needed by ApplicationCache.


  • loader/appcache/ApplicationCache.cpp: (WebCore::ApplicationCache::ApplicationCache): (WebCore::ApplicationCache::~ApplicationCache): (WebCore::ApplicationCache::setManifestResource): (WebCore::ApplicationCache::addResource): (WebCore::ApplicationCache::removeResource): (WebCore::ApplicationCache::resourceForURL): (WebCore::ApplicationCache::resourceForRequest): (WebCore::ApplicationCache::numDynamicEntries): (WebCore::ApplicationCache::dynamicEntry): (WebCore::ApplicationCache::addDynamicEntry): (WebCore::ApplicationCache::removeDynamicEntry): (WebCore::ApplicationCache::setOnlineWhitelist): (WebCore::ApplicationCache::isURLInOnlineWhitelist): (WebCore::ApplicationCache::dump):
  • loader/appcache/ApplicationCache.h: (WebCore::ApplicationCache::create): (WebCore::ApplicationCache::manifestResource): (WebCore::ApplicationCache::group): (WebCore::ApplicationCache::begin): (WebCore::ApplicationCache::end):
  • loader/appcache/ApplicationCacheGroup.h: (WebCore::ApplicationCacheGroup::manifestURL): (WebCore::ApplicationCacheGroup::cacheDestroyed):
4:34 PM Changeset in webkit [31972] by Adam Roben
  • 5 edits in trunk/WebCore

Fix Bug 18505: REGRESSION: Search is disabled and not functional

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

Reviewed by Tim Hatcher.

  • page/inspector/ResourcesPanel.js: (WebInspector.ResourcesPanel.sourceFrameForResource): Added.
  • page/inspector/inspector.css: Added back rules for the search field that were removed in r31736.
  • page/inspector/inspector.html:
    • Removed the disabled attribute from the search field
    • Added back the #searchResults and #searchResultsResizer divs which were removed in r31736
  • page/inspector/inspector.js: (WebInspector.set showingSearchResults): Updated for class rename panels -> main-panels. (WebInspector.loaded): Added back the mousedown event listener for the search results resizer that was removed in r31736. (WebInspector.searchResultsResizerDrag): Updated for class rename panels -> main-panels. (WebInspector.performSearch):
    • Changed to use sourceFrameForResource
    • Changed to use showResource
    • Changed to save/restore the focused element around the setting of the current panel
    • Changed to get the source document from the match range instead of by crawling back up to the source view
    • Changed to bind the onselect handlers to this so that we can access the Elements/Resources panels
4:25 PM Changeset in webkit [31971] by beidson@apple.com
  • 25 edits in trunk

JavaScriptCore:

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

Reviewed by Sam Weinig

Change ThreadSafeShared to act like RefCounted by starting out with a single ref by default

  • wtf/Threading.h: (WTF::ThreadSafeShared::ThreadSafeShared):

WebCore:

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

Reviewed by Sam Weinig

Changing ThreadSafeShared to start with a ref count of 1, so updating all users to
adoptRef() that initial reference.

  • bindings/js/JSCustomSQLStatementCallback.h: (WebCore::JSCustomSQLStatementCallback::create):
  • bindings/js/JSCustomSQLStatementErrorCallback.h: (WebCore::JSCustomSQLStatementErrorCallback::create):
  • bindings/js/JSCustomSQLTransactionCallback.h: (WebCore::JSCustomSQLTransactionCallback::create):
  • bindings/js/JSCustomSQLTransactionErrorCallback.h: (WebCore::JSCustomSQLTransactionErrorCallback::create):
  • bindings/js/JSDatabaseCustom.cpp: (WebCore::JSDatabase::changeVersion): (WebCore::JSDatabase::transaction):
  • bindings/js/JSSQLTransactionCustom.cpp: (WebCore::JSSQLTransaction::executeSql):
  • dom/Document.cpp: (WebCore::Document::databaseThread):
  • platform/SecurityOrigin.cpp: (WebCore::SecurityOrigin::create):
  • platform/sql/SQLiteAuthorizer.h: (WebCore::SQLiteAuthorizer::create): (WebCore::SQLiteAuthorizer::SQLiteAuthorizer):
  • storage/ChangeVersionWrapper.cpp: (WebCore::ChangeVersionWrapper::performPreflight): (WebCore::ChangeVersionWrapper::performPostflight):
  • storage/ChangeVersionWrapper.h: (WebCore::ChangeVersionWrapper::create):
  • storage/Database.cpp: (WebCore::Database::openAndVerifyVersion): (WebCore::Database::markAsDeletedAndClose): (WebCore::Database::changeVersion): (WebCore::Database::transaction): (WebCore::Database::scheduleTransaction): (WebCore::Database::scheduleTransactionStep): (WebCore::Database::tableNames):
  • storage/DatabaseAuthorizer.h: (WebCore::DatabaseAuthorizer::create):
  • storage/DatabaseTask.h: (WebCore::DatabaseOpenTask::create): (WebCore::DatabaseCloseTask::create): (WebCore::DatabaseTransactionTask::create): (WebCore::DatabaseTableNamesTask::create):
  • storage/DatabaseThread.cpp: (WebCore::DatabaseThread::scheduleTask): Change to take a PassRefPtr instead of raw (WebCore::DatabaseThread::scheduleImmediateTask): Ditto
  • storage/DatabaseThread.h: (WebCore::DatabaseThread::create):
  • storage/SQLError.h: (WebCore::SQLError::create): (WebCore::SQLError::SQLError):
  • storage/SQLResultSet.h: (WebCore::SQLResultSet::create):
  • storage/SQLStatement.cpp: (WebCore::SQLStatement::create): (WebCore::SQLStatement::execute): (WebCore::SQLStatement::setDatabaseDeletedError): (WebCore::SQLStatement::setVersionMismatchedError): (WebCore::SQLStatement::setFailureDueToQuota):
  • storage/SQLStatement.h:
  • storage/SQLTransaction.cpp: (WebCore::SQLTransaction::create): (WebCore::SQLTransaction::executeSQL): (WebCore::SQLTransaction::openTransactionAndPreflight): (WebCore::SQLTransaction::deliverTransactionCallback): (WebCore::SQLTransaction::handleCurrentStatementError): (WebCore::SQLTransaction::deliverStatementCallback): (WebCore::SQLTransaction::postflightAndCommit):
  • storage/SQLTransaction.h:
4:23 PM Changeset in webkit [31970] by andersca@apple.com
  • 3 edits in trunk/WebCore

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

Reviewed by Adam and Brady.


Add implementation of ApplicationCacheResource.


  • loader/appcache/ApplicationCacheResource.cpp: (WebCore::ApplicationCacheResource::ApplicationCacheResource): (WebCore::ApplicationCacheResource::dumpType):
  • loader/appcache/ApplicationCacheResource.h: (WebCore::ApplicationCacheResource::): (WebCore::ApplicationCacheResource::create): (WebCore::ApplicationCacheResource::type): (WebCore::ApplicationCacheResource::addType):
3:40 PM Changeset in webkit [31969] by ggaren@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.


Fixed a codegen bug when returning from inside a dynamic scope (a with
or catch block): we need to pop any dynamic scope(s) that have been
added so op_ret can find the activation object at the top of the scope
chain.

  • kjs/nodes.cpp: (KJS::ReturnNode::emitCode): If we're returning from inside a dynamic scope, emit a jmp_scopes to take care of popping any dynamic scope(s) and then branching to the return instruction.
3:25 PM Changeset in webkit [31968] by mjs@apple.com
  • 5 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoff.


  • document the add and get_prop_id opcodes


In addition to adding documentation in comments, I changed
references to register IDs or indices relating to these opcodes to
have meaningful names instead of r0 r1 r2.

  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitAdd):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • kjs/nodes.cpp: (KJS::DotAccessorNode::emitCode): (KJS::FunctionCallDotNode::emitCode): (KJS::PostIncDotNode::emitCode): (KJS::PostDecDotNode::emitCode): (KJS::PreIncDotNode::emitCode): (KJS::PreDecDotNode::emitCode): (KJS::AddNode::emitCode): (KJS::ReadModifyDotNode::emitCode):
2:47 PM Changeset in webkit [31967] by timothy@apple.com
  • 4 edits in trunk/WebCore

Fixes an issue where the source for a resource that had errors would
not be shown because the view was created before the resource load
finished. The right view is now created, even if the resource isn't
finished. The SourceView just makes sure to not load the source until
the resource is finished. Only if the category changes, does the view
need to be recreated.

Reviewed by Adam Roben.

  • page/inspector/Resource.js:

(WebInspector.Resource.prototype.set category): Call recreateViewForResourceIfNeeded.

  • page/inspector/ResourcesPanel.js:

(WebInspector.ResourcesPanel.prototype.recreateViewForResourceIfNeeded):
Added. Tries to make a new view, if the view is the same prototype of the
previous view, return early. If they differ, close and detach the old view
and associate the resource with the new view. Calling updateErrorsAndWarnings
is needed, because the errors and warnings that might have been added to the
previous view will be lost, so make the tree element match.
(WebInspector.Resource.prototype._createResourceView): Always create a view
that matches the resource category. Ignore the loading and failed status.

  • page/inspector/SourceView.js:

(WebInspector.SourceView.prototype.setupSourceFrameIfNeeded): Don't setup the
frame if the resource hasn't finished or if the load failed.

2:46 PM Changeset in webkit [31966] by timothy@apple.com
  • 2 edits in trunk/WebCore

Adds a console formatter for Error objects. So typing a expression in the
console that ends in an exception will print meaningful info. Also calling
console.{log,error,warn,info} with an error object will output nicely.

Reviewed by Adam Roben.

  • page/inspector/Console.js:

(WebInspector.Console.prototype._formaterror): Added. Formats an error
object by showing it like other exceptions, with a clickable file URL.

2:46 PM Changeset in webkit [31965] by timothy@apple.com
  • 2 edits in trunk/WebCore

Refactors code that updates the errors and warnings count in the
resources sidebar so other functions can easily trigger updates.

Reviewed by Adam Roben.

  • page/inspector/ResourcesPanel.js:

(WebInspector.ResourcesPanel.prototype.addMessageToResource): Call updateErrorsAndWarnings.
Removes code that updates the bubbleText and class names.
(WebInspector.ResourcesPanel.prototype.clearMessages): Ditto.
(WebInspector.ResourceSidebarTreeElement.prototype.updateErrorsAndWarnings):
Added. Updates the bubbleText and adds or removes the class names
depending on if the values are zero.

2:41 PM Changeset in webkit [31964] by Antti Koivisto
  • 6 edits
    4 adds in trunk

WebCore:

2008-04-16 Antti Koivisto <Antti Koivisto>

Reviewed by Alexey.


Fix <rdar://problem/5863728>
REGRESSION: Garbage character shown in temperatures in the Weather widget (encoding issue with degree symbol)


Parse the encoding attribute in PreloadScanner.

Test: fast/encoding/script-preload-encoding.html

  • html/PreloadScanner.cpp: (WebCore::PreloadScanner::processAttribute): (WebCore::PreloadScanner::emitTag): (WebCore::PreloadScanner::emitCSSRule):
  • html/PreloadScanner.h:
  • loader/DocLoader.cpp: (WebCore::DocLoader::preload):
  • loader/DocLoader.h:

LayoutTests:

2008-04-16 Antti Koivisto <Antti Koivisto>

Reviewed by Alexey.


Test for <rdar://problem/5863728>
REGRESSION: Garbage character shown in temperatures in the Weather widget (encoding issue with degree symbol)

  • fast/encoding/resources/utf-8.css: Added.
  • fast/encoding/resources/utf-8.js: Added.
  • fast/encoding/preload-encoding-expected.txt: Added.
  • fast/encoding/preload-encoding.html: Added.
2:03 PM Changeset in webkit [31963] by andersca@apple.com
  • 15 edits
    1 add in trunk/WebCore

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

Reviewed by Adam.

Generate the DOMApplicationCache JS wrapper, add JSDOMApplicationCacheCustom.cpp and
fix typos in the #if line.


  • DerivedSources.make:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMApplicationCacheCustom.cpp: Added.
  • loader/appcache/ApplicationCache.cpp:
  • loader/appcache/ApplicationCache.h:
  • loader/appcache/ApplicationCacheGroup.cpp:
  • loader/appcache/ApplicationCacheGroup.h:
  • loader/appcache/ApplicationCacheResource.cpp:
  • loader/appcache/ApplicationCacheResource.h:
  • loader/appcache/DOMApplicationCache.cpp:
  • loader/appcache/DOMApplicationCache.h:
  • loader/appcache/DOMApplicationCache.idl:
  • loader/appcache/ManifestParser.cpp:
  • loader/appcache/ManifestParser.h:
1:58 PM Changeset in webkit [31962] by weinig@apple.com
  • 16 edits in trunk

JavaScriptCore:

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

Reviewed by Geoffrey Garen.

  • To keep the behavior of the WebKit and JavaScriptCore API's the same, we need to hide the fact that the global object and the window object are no longer the same thing, and the the global object now changes on navigations. To do this, only the wrapper should ever be exposed. This fixes the two remaining spots where the internal global object is exposed, the windowScriptObject returned from [WebFrame windowObject] and the object return by calling JSContextGetGlobalObject on [WebFrame globalContext].
  • API/JSContextRef.cpp: (JSContextGetGlobalObject): This is a bit of a hack, this returns the "this" representation of the globalObject which will be the WrapperWindow for WebCore and the globalObject for non-WebCore.
  • API/JSObjectRef.cpp: (JSObjectSetProperty): Call the new putWithAttributes method instead of relying on lower-level calls. This is needed so that the window wrapper can forward the calls.
  • JavaScriptCore.exp:
  • kjs/Activation.h:
  • kjs/JSGlobalObject.cpp: (KJS::JSGlobalObject::putWithAttributes):
  • kjs/JSGlobalObject.h:
  • kjs/JSVariableObject.h: (KJS::JSVariableObject::symbolTablePutWithAttributes):
  • kjs/function.cpp: (KJS::ActivationImp::putWithAttributes):
  • kjs/nodes.cpp: (KJS::ConstDeclNode::handleSlowCase): (KJS::ConstDeclNode::evaluateSingle): (KJS::EvalNode::processDeclarations):
  • kjs/object.cpp: (KJS::JSObject::putWithAttributes):
  • kjs/object.h: Rename initializeVariable to putWithAttributes and move it down to JSObject so it can be used for JSObjectSetProperty.

WebCore:

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

Reviewed by Geoffrey Garen.

  • To keep the behavior of the WebKit and JavaScriptCore API's the same, we need to hide the fact that the global object and the window object are no longer the same thing, and the the global object now changes on navigations. To do this, only the wrapper should ever be exposed. This fixes the two remaining spots where the internal global object is exposed, the windowScriptObject returned from [WebFrame windowObject] and the object return by calling JSContextGetGlobalObject on [WebFrame globalContext]
  • bindings/js/JSDOMWindowWrapper.cpp: (WebCore::JSDOMWindowWrapper::putWithAttributes):
  • bindings/js/JSDOMWindowWrapper.h: Forward this new method so that JSObjectSetProperty doesn't set properties on the wrapper.
  • page/mac/FrameMac.mm: (WebCore::Frame::windowScriptObject): Return the wrapper instead of the global object.
1:53 PM Changeset in webkit [31961] by hyatt@apple.com
  • 13 edits in trunk/WebCore

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

Eliminate the paintBuffer and drawImage(ImageBuffer*) methods from GraphicsContext* in favor of just
snagging an Image* from the ImageBuffer and drawing that instead.

Enhance canvas with a CanvasObserver so that notifications of dirtying or resizing can be tracked by
a consumer.

Reviewed by olliej

  • html/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::drawImage):
  • html/HTMLCanvasElement.cpp: (WebCore::HTMLCanvasElement::HTMLCanvasElement): (WebCore::HTMLCanvasElement::willDraw): (WebCore::HTMLCanvasElement::reset): (WebCore::HTMLCanvasElement::paint):
  • html/HTMLCanvasElement.h: (WebCore::CanvasObserver::~CanvasObserver): (WebCore::HTMLCanvasElement::setSize): (WebCore::HTMLCanvasElement::setObserver):
  • platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::drawImage): (WebCore::GraphicsContext::drawTiledImage):
  • platform/graphics/GraphicsContext.h:
  • platform/graphics/ImageBuffer.h: (WebCore::ImageBuffer::clearImage):
  • platform/graphics/cairo/GraphicsContextCairo.cpp:
  • platform/graphics/cg/GraphicsContextCG.cpp:
  • platform/graphics/cg/ImageCG.cpp: (WebCore::BitmapImage::draw): (WebCore::Image::drawPattern):
  • platform/graphics/cg/ImageSourceCG.cpp: (WebCore::ImageSource::createFrameAtIndex):
  • platform/graphics/qt/GraphicsContextQt.cpp:
  • platform/graphics/wx/GraphicsContextWx.cpp:
1:32 PM Changeset in webkit [31960] by sfalken@apple.com
  • 2 edits in trunk/WebCore

2008-04-16 Steve Falkenburg <sfalken@apple.com>

Improve timer latency/resolution.


The primary timing mechanism is now CreateTimerQueueTimer, with a PostMessage from
the callback proc. This event will be delivered sooner than if we used SetTimer(),
since it is higher priority than other messages.


If there is an input message pending, we'll use we SetTimer() based timers to avoid
starving user input.

Don't call PostMessage immediately on all timers < 10ms. Only call immediately if
timer is already expired. This avoids the case where no timers would be processed,
causing the timer to be re-posted via the slower SetTimer method.

Don't call PostMessage immediately if there's a pending WM_PAINT, since
we don't want to starve all paints when bombarded with a continuous stream of low
duration timers.

Removed reentrancy check, since we're now looking for specific starvation cases,
and will typically defer non-expired timers through reateTimerQueueTimer.

The reason Windows wouldn't starve paints in favor of timers with the old code:
When we went to reset the timer when it fired, the timer reset code treated this as a
reentrant timer, causing us to hit the slow SetTimer code rather than calling PostMessage,
even for timers expiring in < 10ms. I corrected that, exposing the paint starvation problem.

Use timeBeginPeriod/timeEndPeriod to improve resolution of system timers.
Limit this resolution change to within 20ms of the last high resolution timer request.

Corrected GetQueueStatus to check for specific input (and paint) messages rather than
checking QS_ALLINPUT. Contrary to its name, QS_ALLINPUT actually indicates interest
in ALL queued messages, not just input messages.


Fix SetTimer/KillTimer calls to pass our window handle.

Reviewed by Brady.

  • platform/win/SharedTimerWin.cpp: (WebCore::): (WebCore::TimerWindowWndProc): (WebCore::queueTimerProc): (WebCore::setSharedTimerFireTime): (WebCore::stopSharedTimer):
1:22 PM Changeset in webkit [31959] by Adam Roben
  • 2 edits in trunk/WebCore

Fix console-log-formatting to truly test formatting an undefined value

Exceptions thrown by the test will also now be shown as errors.

Reviewed by Tim Hatcher.

  • manual-tests/inspector/console-log-formatting.html: (test): Use console.error to report exceptions. (runTests): Use window.noSuchVariable instead of just noSuchVariable to avoid an exception.
12:47 PM Changeset in webkit [31958] by jchaffraix@webkit.org
  • 2 edits in trunk/WebCore

2008-04-16 Anatoli Papirovski <apapirovski@mac.com>

Reviewed by David.

Optimized the calculation of background-size.

  • rendering/RenderBox.cpp: (WebCore::RenderBox::calculateBackgroundSize):
12:34 PM Changeset in webkit [31957] by Adam Roben
  • 2 edits
    2 adds in trunk/WebCore

Fix Bug 17228: console.{log,warn,info,error} should support format strings, variable arguments

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

Reviewed by Tim Hatcher.

Test: manual-tests/inspector/console-log-formatting.html

  • page/inspector/Console.js: (WebInspector.ConsoleMessage): Pass any extra arguments down to _format. (WebInspector.ConsoleMessage._format): This method constructs this.formattedMessage. We treat the first parameter as a format string. Any parameters that have not been used after substituting into the format string are concatenated together, separated by spaces. (WebInspector.ConsoleMessage.toMessageElement): Updated to use this.formattedMessage. (WebInspector.ConsoleMessage.toString): Ditto.
12:34 PM Changeset in webkit [31956] by Adam Roben
  • 2 edits in trunk/WebCore

Make String.format return an array of unused substitutions

String.format now returns an object with two properties:
formattedResult and unusedSubstitutions.

Reviewed by Tim Hatcher.

  • page/inspector/utilities.js: (String.vsprintf): Updated for changes to String.format. We throw away the array of unused substitutions. (String.format): Changed to keep track of which substitutions are used when formatting. We then return both the formatted result and the array of unused substitutions.
12:34 PM Changeset in webkit [31955] by Adam Roben
  • 2 edits in trunk/WebCore

Generalize String.format some more

String.format now takes an initial value and an append function which
it uses to build the result. Each time a token is processed,
append(valueSoFar, newValue) is called.

Reviewed by Tim Hatcher.

  • page/inspector/utilities.js: (String.vsprintf): Pass the empty string for the initial value, and a function that concatenates two strings as the append function. (String.format): Use initialValue and append to build the result instead of only working with strings.
12:20 PM Changeset in webkit [31954] by Adam Roben
  • 2 edits in trunk/WebCore

Add String.format

String.format is a more generic form of String.vsprintf that takes a
set of formatter functions, one for each supported format specifier.
Each formatter function is passed the relevant token and substitution
value, and returns the formatted result.

Reviewed by Tim Hatcher.

  • page/inspector/utilities.js: (String.standardFormatters): Added. (String.vsprintf): Changed to call through to String.format. (String.format): Added. Most of the code came from String.vsprintf, except that we use the passed-in formatters to format the substitutions rather than hard-coding how to handle each format specifier.
12:19 PM Changeset in webkit [31953] by Adam Roben
  • 2 edits in trunk/WebCore

Refactor String.vsprintf to separate tokenizing and substituting

This will eventually be useful for the various console methods that
take a format string.

Reviewed by Tim Hatcher.

  • page/inspector/utilities.js: (String.tokenizeFormatString): Added. This uses the format parsing code from String.vsprintf but just returns an array of "string" and "specifier" tokens. (String.vsprintf): Now calls String.tokenizeFormatString and processes the tokens one at a time.
12:19 PM Changeset in webkit [31952] by Adam Roben
  • 6 edits in trunk/WebCore

Pass all arguments to console.{log,warn,info,error} into the Inspector's JS

Part of Bug 17228: console.{log,warn,info,error} should support format
strings, variable arguments
<http://bugs.webkit.org/show_bug.cgi?id=17228>
<rdar://problem/5732828>

We don't use the extra arguments yet.

Reviewed by Tim Hatcher.

  • page/Console.cpp: (WebCore::Console::error): Pass the arguments list to InspectorController. (WebCore::Console::info): Ditto. (WebCore::Console::log): Ditto. (WebCore::Console::warn): Ditto.
  • page/InspectorController.cpp: (WebCore::ConsoleMessage::ConsoleMessage): Added a new constructor that takes an ExecState and a List instead of a String. We wrap and store the JSValues from the List in a Vector<ProtectedPtr<JSValue> >. (WebCore::InspectorController::addMessageToConsole): Added an overload that takes an ExecState and a List. (WebCore::InspectorController::addConsoleMessage): Moved code here from addMessageToConsole. Both overloads of addMessageToConsole now call this helper method. (WebCore::InspectorController::addScriptConsoleMessage): Updated for the new parameter order of WebInspector.ConsoleMessage. If the ConsoleMessage has a non-empty wrappedArguments Vector, we use that instead of the ConsoleMessage's message String.
  • page/InspectorController.h:
  • page/inspector/Console.js: (WebInspector.ConsoleMessage): Removed the explicit message parameter. We now get the message from the unnamed 5th parameter.
  • page/inspector/Resource.js: Updated for the change to WebInspector.ConsoleMessage's parameter order.
12:19 PM Changeset in webkit [31951] by Adam Roben
  • 26 edits in trunk/WebCore

Change calls to Chrome::addMessageToConsole to use Console::addMessage

Part of Bug 17228: console.{log,warn,info,error} should support format
strings, variable arguments
<http://bugs.webkit.org/show_bug.cgi?id=17228>
<rdar://problem/5732828>

Console now takes care of calling ChromeClient::addMessageToConsole
for the appropriate messages (i.e., just messages from JavaScript). If
you ever want to add a message to the console, Console is the place to
do it.

Reviewed by Darin Adler.

  • WebCore.xcodeproj/project.pbxproj: Mark Console.h Private.
  • page/Chrome.cpp: Removed addMessageToConsole
  • page/Chrome.h: Moved MessageSource/MessageLevel to Console.h.
  • page/Console.cpp: (WebCore::Console::addMessage): Added. Calls ChromeClient::addMessageToConsole for JS messages, and calls InspectorController::addMessageToConsole for all messages. (WebCore::Console::error): Changed to call directly to InspectorController in addition to ChromeClient. (WebCore::Console::info): Ditto. (WebCore::Console::log): Ditto. (WebCore::Console::warn): Ditto.
  • page/Console.h: Added MessageSource/MessageLevel enums from Chrome.h.
12:18 PM Changeset in webkit [31950] by Adam Roben
  • 9 edits
    2 adds in trunk/WebCore

Pass JSConsole's arguments unmodified to Console

Part of Bug 17228: console.{log,warn,info,error} should support format
strings, variable arguments
<http://bugs.webkit.org/show_bug.cgi?id=17228>
<rdar://problem/5732828>

All of JSConsole's methods are now custom, so that we can pass the
arguments unmodified to Console. Console now handles calling
toString() on the first argument. Later it will pass the arguments off
to InspectorController.

There should be no behavioral changes caused by this patch.

Reviewed by Darin Adler.

  • ForwardingHeaders/kjs/list.h: Added.
  • GNUmakefile.am: Added JSConsoleCustom.cpp to the project.
  • WebCore.pro: Ditto.
  • WebCore.vcproj/WebCore.vcproj: Ditto.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • WebCoreSources.bkl: Ditto.
  • bindings/js/JSConsoleCustom.cpp: Added. (WebCore::JSConsole::error): (WebCore::JSConsole::info): (WebCore::JSConsole::log): (WebCore::JSConsole::warn):
  • page/Console.cpp: Changed all methods to take an ExecState* and a const List&. The first item in the List is toString()ed and passed to Chrome. (WebCore::Console::error): (WebCore::Console::info): (WebCore::Console::log): (WebCore::Console::warn):
  • page/Console.h:
  • page/Console.idl:
12:08 PM Changeset in webkit [31949] by kmccullough@apple.com
  • 10 edits
    5 adds in trunk/JavaScriptCore

2008-04-16 Kevin McCullough <kmccullough@apple.com>

Reviewed by Sam and Geoff.

-<rdar://problem/5770054> JavaScript profiler (10928)
Inital profiler prototype

  • GNUmakefile.am: Added new files to project
  • JavaScriptCore.pri: Ditto
  • JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Ditto
  • JavaScriptCore.xcodeproj/project.pbxproj: Ditto
  • JavaScriptCoreSources.bkl: Ditto
  • kjs/config.h: Put compiling flag in here.
  • kjs/function.cpp: Instrument calling the function eval(). (KJS::eval):
  • kjs/interpreter.cpp: Instrument evaluating global scopes. (KJS::Interpreter::evaluate):
  • kjs/object.cpp: Instrument JS function calls. (KJS::JSObject::call):
  • profiler: Added.
  • profiler/FunctionCallProfile.cpp: Added. (KJS::FunctionCallProfile::FunctionCallProfile): (KJS::FunctionCallProfile::~FunctionCallProfile): (KJS::FunctionCallProfile::willExecute): Call right before the JS function or executing context is executed to start the profiler's timer. (KJS::FunctionCallProfile::didExecute): Call right after the JS function or executing context is executed to stop the profiler's timer. (KJS::FunctionCallProfile::addChild): Add a child to the current FunctionCallProfile if it isn't already a child of the current FunctionalCallProfile. (KJS::FunctionCallProfile::findChild): Return the child that matches the given name if there is one. (KJS::FunctionCallProfile::printDataSampleStyle): Print the current profiled information in a format that matches sample's output.
  • profiler/FunctionCallProfile.h: Added. (KJS::FunctionCallProfile::FunctionCallProfile): (KJS::FunctionCallProfile::~FunctionCallProfile): (KJS::FunctionCallProfile::functionName): (KJS::FunctionCallProfile::microSecs):
  • profiler/Profiler.cpp: Added. (KJS::Profiler::profiler): (KJS::Profiler::sharedProfiler): Return global singleton (may change due to multi-threading concerns) (KJS::Profiler::startProfiling): Don't start collecting profiling information until the user starts the profiler. Also don't clear old prfiled data until the profiler is restarted. (KJS::Profiler::stopProfiling): Stop collecting profile information. (KJS::Profiler::willExecute): Same as above. (KJS::Profiler::didExecute): Same as above. (KJS::Profiler::insertStackNamesInTree): Follow the stack of the given names and if a sub-stack is not in the current tree, add it. (KJS::Profiler::getStackNames): Get the names from the different passed in parameters and order them as a stack. (KJS::Profiler::getFunctionName): Get the function name from the given parameter. (KJS::Profiler::printDataSampleStyle): Print the current profiled information in a format that matches sample's output. (KJS::Profiler::debugLog):
  • profiler/Profiler.h: Added. (KJS::Profiler::Profiler):
11:41 AM Changeset in webkit [31948] by weinig@apple.com
  • 10 edits in trunk

JavaScriptCore:

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

Reviewed by Darin Adler.

  • Remove kjs_ prefix from strtod, dtoa, and freedtoa and put it in the KJS namespace.
  • Make strtod, dtoa, and freedtoa c++ functions instead of extern "C".
  • Remove mode switching from dtoa. ~2% improvement on test 26.
  • Removes all unnecessary #defines from dtoa code.
  • JavaScriptCore.exp:
  • kjs/dtoa.cpp: (KJS::ulp): (KJS::b2d): (KJS::d2b): (KJS::ratio): (KJS::): (KJS::strtod): (KJS::freedtoa): (KJS::dtoa):
  • kjs/dtoa.h:
  • kjs/function.cpp: (KJS::parseInt):
  • kjs/lexer.cpp: (KJS::Lexer::lex):
  • kjs/number_object.cpp: (KJS::integer_part_noexp): (KJS::numberProtoFuncToExponential):
  • kjs/ustring.cpp: (KJS::UString::from): (KJS::UString::toDouble):

WebCore:

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

Reviewed by Darin Adler.

Rename kjs_strtod to KJS::strtod.

  • platform/text/String.cpp: (WebCore::charactersToDouble):
10:30 AM Changeset in webkit [31947] by ap@webkit.org
  • 3 edits
    4 adds in trunk

Reviewed by Adam.

http://bugs.webkit.org/show_bug.cgi?id=18259
XML+XSLT pages in iframe contains document.location of a parent window

Test: fast/xsl/subframe-location.html

  • xml/XSLTProcessor.cpp: (WebCore::XSLTProcessor::createDocumentFromSource): Set resulting document URL before opening it, so that the document loader picks a correct URL, too.
10:23 AM Changeset in webkit [31946] by ap@webkit.org
  • 2 edits in trunk/JavaScriptCore

Reviewed by Darin.

Get rid of static execForCompareByStringForQSort in array_instance.cpp.

No change on SunSpider, CelticKane or iBench JavaScript.

  • kjs/array_instance.cpp: (KJS::ArraySortComparator::ArraySortComparator): (KJS::ArraySortComparator::operator()): (KJS::ArrayInstance::sort): Switch slow case to std::sort, so that ExecState can be passed in a comparator.
8:30 AM Changeset in webkit [31945] by mitz@apple.com
  • 2 edits in trunk/WebCore

Rubber-stamped by John Sullivan.

  • remove unreachable code which was added in r8802
  • rendering/RenderText.cpp: (WebCore::RenderText::caretRect):
8:26 AM Changeset in webkit [31944] by ap@webkit.org
  • 8 edits in trunk/JavaScriptCore

Reviewed by Adam Roben.

MSVC build fix.

  • kjs/CommonIdentifiers.cpp:
  • kjs/CommonIdentifiers.h:
  • kjs/Parser.cpp:
  • kjs/Parser.h:
  • kjs/identifier.cpp:
  • kjs/lexer.h:
  • wtf/ThreadSpecific.h:
7:31 AM Changeset in webkit [31943] by ap@webkit.org
  • 3 edits in trunk/JavaScriptCore

Build fix.

  • kjs/date_object.cpp:
  • kjs/date_object.h: Don't include DateMath.h from date_object.h, as the latter is used from WebCore, while where the former is not available.
6:49 AM Changeset in webkit [31942] by timothy@apple.com
  • 3 edits
    1 add in trunk/WebCore

Adds a script resource icon. Update the CSS icon to better match the script icon.

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

Rubber-stamped by Adele Peterson.

  • page/inspector/Images/resourceCSSIcon.png: Updated.
  • page/inspector/Images/resourceJSIcon.png: Added.
  • page/inspector/inspector.css: Changed the script icon rule to reference the new image.
5:51 AM Changeset in webkit [31941] by zecke@webkit.org
  • 2 edits in trunk/JavaScriptCore

2008-04-16 Holger Hans Peter Freyther <zecke@selfish.org>

Unreviewed build fix for MSVC. It does not want to have
WTF in the KJS namespace.

  • kjs/CommonIdentifiers.h:
5:26 AM Changeset in webkit [31940] by zecke@webkit.org
  • 2 edits in trunk/JavaScriptCore

2008-04-16 Holger Hans Peter Freyther <zecke@selfish.org>

Unreviewed build fix for gcc.

::msToGregorianDateTime is not known to it.

  • kjs/date_object.cpp: (KJS::DateInstance::msToGregorianDateTime):
2:58 AM Changeset in webkit [31939] by ap@webkit.org
  • 3 edits in trunk/JavaScriptCore

Reviewed by Oliver Hunt.

Initialize threadMapMutex safely (as already done in ThreadingWin).

  • wtf/ThreadingGtk.cpp: (WTF::threadMapMutex): (WTF::initializeThreading):
  • wtf/ThreadingPthreads.cpp: (WTF::threadMapMutex): (WTF::initializeThreading):
2:44 AM Changeset in webkit [31938] by ap@webkit.org
  • 1 edit in trunk/JavaScriptCore/ChangeLog

Fix ChangeLog spelling.

2:41 AM Changeset in webkit [31937] by ap@webkit.org
  • 4 edits in trunk/JavaScriptCore

Reviewed by Adam Roben.

Cache Gregorian date/time structure on DateInstance objects for 1.027x SunSpider speedup
(1.65x on date-format-xparb, 1.13x on date-format-tofte).

  • kjs/DateMath.h: (KJS::GregorianDateTime::copyFrom): Added. It presumably makes sense to keep GregorianDateTime Noncopiable, so it's not just operator=.
  • kjs/date_object.h: Added a per-object cache.
  • kjs/date_object.cpp: (KJS::DateInstance::DateInstance): (KJS::DateInstance::msToGregorianDateTime): (KJS::dateProtoFuncToString): (KJS::dateProtoFuncToUTCString): (KJS::dateProtoFuncToDateString): (KJS::dateProtoFuncToTimeString): (KJS::dateProtoFuncToLocaleString): (KJS::dateProtoFuncToLocaleDateString): (KJS::dateProtoFuncToLocaleTimeString): (KJS::dateProtoFuncGetFullYear): (KJS::dateProtoFuncGetUTCFullYear): (KJS::dateProtoFuncToGMTString): (KJS::dateProtoFuncGetMonth): (KJS::dateProtoFuncGetUTCMonth): (KJS::dateProtoFuncGetDate): (KJS::dateProtoFuncGetUTCDate): (KJS::dateProtoFuncGetDay): (KJS::dateProtoFuncGetUTCDay): (KJS::dateProtoFuncGetHours): (KJS::dateProtoFuncGetUTCHours): (KJS::dateProtoFuncGetMinutes): (KJS::dateProtoFuncGetUTCMinutes): (KJS::dateProtoFuncGetSeconds): (KJS::dateProtoFuncGetUTCSeconds): (KJS::dateProtoFuncGetTimezoneOffset): (KJS::setNewValueFromTimeArgs): (KJS::setNewValueFromDateArgs): (KJS::dateProtoFuncSetYear): (KJS::dateProtoFuncGetYear): Use the cache when converting.
2:30 AM Changeset in webkit [31936] by ap@webkit.org
  • 12 edits
    1 add in trunk/JavaScriptCore

Reviewed by Darin.

Implement an abstraction for thread-specific storage, use it to get rid of some static objects.

SunSpider results were not conclusive, possibly up to 0.2% slowdown.

  • wtf/ThreadSpecific.h: Added. (WTF::::ThreadSpecific): (WTF::::~ThreadSpecific): (WTF::::get): (WTF::::set): (WTF::::destroy): (WTF::T): (WTF::::operator): Only implemented for platforms that use pthreads.
  • kjs/CommonIdentifiers.cpp: (KJS::CommonIdentifiers::shared):
  • kjs/CommonIdentifiers.h:
  • kjs/InitializeThreading.cpp: (KJS::initializeThreading):
  • kjs/Parser.cpp: (KJS::parser):
  • kjs/Parser.h:
  • kjs/identifier.cpp: (KJS::identifierTable): (KJS::literalIdentifierTable): (KJS::Identifier::initializeIdentifierThreading):
  • kjs/identifier.h:
  • kjs/lexer.cpp: (KJS::lexer):
  • kjs/lexer.h: Make static instances per-thread.
12:53 AM Changeset in webkit [31935] by eric@webkit.org
  • 4 edits in trunk/WebCore

Reviewed by hyatt.

Fix leaky ImageBuffer code.

  • platform/graphics/GeneratedImage.cpp: (WebCore::GeneratedImage::drawPattern):
  • platform/graphics/ImageBuffer.h:
  • platform/graphics/cg/ImageBufferCG.cpp: (WebCore::ImageBuffer::image):
12:52 AM Changeset in webkit [31934] by ggaren@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt and Maciej Stachowiak.


Fixed a codegen bug in with and switch, and added an ASSERT to
make sure it doesn't happen again.


emitCode() assumes that dst, if non-zero, is either referenced or
non-temporary (i.e., it assumes that newTemporary() will return a
register not equal to dst). Certain callers to emitCode() weren't
guaranteeing that to be so, so temporary register values were being
overwritten.

  • VM/CodeGenerator.h: (KJS::CodeGenerator::emitNode): ASSERT that dst is referenced or non-temporary.
  • kjs/nodes.cpp: (KJS::CommaNode::emitCode): Reference the dst we pass.

(KJS::WithNode::emitCode): No need to pass an explicit dst register.


(KJS::CaseBlockNode::emitCodeForBlock): No need to pass an explicit dst register.
(KJS::SwitchNode::emitCode): No need to pass an explicit dst register.

  • kjs/nodes.h: Made dst the last parameter to emitCodeForBlock, to match emitCode.

Apr 15, 2008:

10:53 PM Changeset in webkit [31933] by oliver@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

Bug 18526: Throw exceptions when resolve fails for op_resolve_base_and_func.
<https://bugs.webkit.org/show_bug.cgi?id=18526>

Reviewed by Maciej

Very simple fix, sunspider shows a 0.7% progression, ubench shows a 0.4% regression.

10:30 PM Changeset in webkit [31932] by justin.garcia@apple.com
  • 3 edits
    2 adds in trunk

WebCore:

2008-04-15 Justin Garcia <justin.garcia@apple.com>

Reviewed by Oliver.

<rdar://problem/5665299> REGRESSION (r27369): Paste text into a contenteditable div creates a contenteditable div for each line (16661)

  • editing/markup.cpp: (WebCore::createFragmentFromText): Don't use clones of the enclosing block to hold paragraphs if the enclosing block is the root editable element.

LayoutTests:

2008-04-15 Justin Garcia <justin.garcia@apple.com>

Reviewed by Oliver.

<rdar://problem/5665299> REGRESSION (r27369): Paste text into a contenteditable div creates a contenteditable div for each line (16661)

  • editing/pasteboard/5665299-expected.txt: Added.
  • editing/pasteboard/5665299.html: Added.
8:36 PM Changeset in webkit [31931] by mrowe@apple.com
  • 4 edits in trunk/WebCore

Don't treat the misnamed NSAccessibilitySortButtonRole as an accessibility role.
It is really a subrole of NSAccessibilityButtonRole. As it is not used inside WebCore
there is no change in behaviour as a result of doing this. This fixes <rdar://problem/5866444>.

Reviewed by Jon Honeycutt.

  • page/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::canSetFocusAttribute): Remove SortButtonRole as it is unused.

  • page/AccessibilityObject.h: Ditto.

(WebCore::):

  • page/mac/AccessibilityObjectWrapper.mm:

(RoleEntry::):

8:21 PM Changeset in webkit [31930] by mjs@apple.com
  • 2 edits in branches/squirrelfish/SunSpider

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

Rubber stamped by Oliver.


  • add newly working tests to squirrelfish list
  • tests/LIST-SQUIRRELFISH: Add 3d-raytrace and string-unpack-code
8:03 PM Changeset in webkit [31929] by mjs@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.


  • fix incorrect result on 3d-raytrace test


Oliver found and tracked down this bug, I just typed in the fix.

  • VM/Machine.cpp: (KJS::slideRegisterWindowForCall): When setting omitted parameters to undefined, account for the space for local variables.
6:57 PM Changeset in webkit [31928] by mjs@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.


  • fix codegen handling of dst registers


1.006x speedup (not sure why).


Most emitCode functions take an optional "dst" parameter that says
where the output of the instruction should be written. I made some
functions for convenient handling of the dst register:

  • VM/CodeGenerator.h: (KJS::CodeGenerator::tempDestination): Takes the dst register. Returns it if it is not null and is a temporary, otherwise allocates a new temporary. This is intended for cases where an intermediate value might be written into the dst

(KJS::CodeGenerator::finalDestination): Takes the dst register and an optional
register that was used as a temp destination. Picks the right thing for the final
output. Intended to be used as the output register for the instruction that generates
the final value of a particular node.


(KJS::CodeGenerator::moveToDestinationIfNeeded): Takes dst and a
RegisterID; moves from the register to dst if dst is defined and
different from the register. This is intended for cases where the
result of a node is already in a specific register (likely a
local), and so no code needs to be generated unless a specific
destination has been requested, in which case a move is needed.


I also applied these methods throughout emitCode functions. In
some cases this was just cleanup, in other cases I fixed actual
codegen bugs. Below I have given specific comments for the cases
where I believe I fixed a codegen bug, or improved quality of codegen.


  • kjs/nodes.cpp: (KJS::NullNode::emitCode): (KJS::FalseNode::emitCode): (KJS::TrueNode::emitCode): (KJS::NumberNode::emitCode): (KJS::StringNode::emitCode): (KJS::RegExpNode::emitCode): (KJS::ThisNode::emitCode): Now avoids emitting a mov when dst is the same as the this register (the unlikely case of "this = this"); (KJS::ResolveNode::emitCode): Now avoids emitting a mov when dst is the same as the local regiester, in the local var case (the unlikely case of "x = x"); (KJS::ArrayNode::emitCode): Fixed a codegen bug where array literal element expressions may have observed an intermediate value of constructing the array. (KJS::ObjectLiteralNode::emitCode): (KJS::PropertyListNode::emitCode): Fixed a codegen bug where object literal property definition expressions may have obesrved an intermediate value of constructing the object. (KJS::BracketAccessorNode::emitCode): (KJS::DotAccessorNode::emitCode): (KJS::NewExprNode::emitCode): (KJS::FunctionCallValueNode::emitCode): (KJS::FunctionCallBracketNode::emitCode): (KJS::FunctionCallDotNode::emitCode): (KJS::PostIncResolveNode::emitCode): (KJS::PostDecResolveNode::emitCode): (KJS::PostIncBracketNode::emitCode): (KJS::PostDecBracketNode::emitCode): (KJS::PostIncDotNode::emitCode): (KJS::PostDecDotNode::emitCode): (KJS::DeleteResolveNode::emitCode): (KJS::DeleteBracketNode::emitCode): (KJS::DeleteDotNode::emitCode): (KJS::DeleteValueNode::emitCode): (KJS::VoidNode::emitCode): (KJS::TypeOfResolveNode::emitCode): (KJS::TypeOfValueNode::emitCode): (KJS::PreIncResolveNode::emitCode): Fixed a codegen bug where the final value would not be output to the dst register in the local var case. (KJS::PreDecResolveNode::emitCode): Fixed a codegen bug where the final value would not be output to the dst register in the local var case. (KJS::PreIncBracketNode::emitCode): (KJS::PreDecBracketNode::emitCode): (KJS::PreIncDotNode::emitCode): (KJS::PreDecDotNode::emitCode): (KJS::UnaryPlusNode::emitCode): (KJS::NegateNode::emitCode): (KJS::BitwiseNotNode::emitCode): (KJS::LogicalNotNode::emitCode): (KJS::MultNode::emitCode): (KJS::DivNode::emitCode): (KJS::ModNode::emitCode): (KJS::AddNode::emitCode): (KJS::SubNode::emitCode): (KJS::LeftShiftNode::emitCode): (KJS::RightShiftNode::emitCode): (KJS::UnsignedRightShiftNode::emitCode): (KJS::LessNode::emitCode): (KJS::GreaterNode::emitCode): (KJS::LessEqNode::emitCode): (KJS::GreaterEqNode::emitCode): (KJS::InstanceOfNode::emitCode): (KJS::InNode::emitCode): (KJS::EqualNode::emitCode): (KJS::NotEqualNode::emitCode): (KJS::StrictEqualNode::emitCode): (KJS::NotStrictEqualNode::emitCode): (KJS::BitAndNode::emitCode): (KJS::BitXOrNode::emitCode): (KJS::BitOrNode::emitCode): (KJS::LogicalAndNode::emitCode): (KJS::LogicalOrNode::emitCode): (KJS::ConditionalNode::emitCode): (KJS::emitReadModifyAssignment): Allow an out argument separate from the operands, needed for fixes below. (KJS::ReadModifyResolveNode::emitCode): Fixed a codegen bug where the right side of the expression may observe an intermediate value. (KJS::AssignResolveNode::emitCode): Fixed a codegen bug where the right side of the expression may observe an intermediate value. (KJS::ReadModifyDotNode::emitCode): Fixed a codegen bug where the right side of the expression may observe an intermediate value. (KJS::ReadModifyBracketNode::emitCode): Fixed a codegen bug where the right side of the expression may observe an intermediate value. (KJS::CommaNode::emitCode): Avoid writing temporary value to dst register. (KJS::ReturnNode::emitCode): Void return should return undefined, not null. (KJS::FuncExprNode::emitCode):
6:56 PM Changeset in webkit [31927] by andersca@apple.com
  • 2 edits in trunk/WebCore

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

Fix leaks seen on bot.


  • loader/SubstituteResource.h: (WebCore::SubstituteResource::~SubstituteResource): Add a virtual destructor.
6:10 PM Changeset in webkit [31926] by beidson@apple.com
  • 3 edits in trunk/WebCore

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

Reviewed by Anders Carlsson

Fix for <rdar://problem/5820819> - Crash sometime occurs when interrupting a load.

Each SubresourceLoader has a client. That client is often a Loader::Host object.
The Loader/Host/CachedResource system predates our ref-counting and ownership models, and therefore manages
object lifetime manually.

The cause of this crash was that we would sometimes call "didFail()" on a Host object twice - Once when
beginning the new navigation, and once when the new navigation is committed.

The problem is after the first time Host::didFail() gets called, the Host is almost always deleted shortly
thereafter. But the SubresourceLoader had a dangling pointer to the Host which is now invalid.

I explored a few options to fix this bug. The one that was most obviously "clean" was to call cancel() on
the SubresourceLoader itself, which would end up calling Host::didFail() and doing the appropriate cache
cleanup.

This problem with that approach was that it had other side effects - when you cut off a load that had already
partially displayed in the WebView, images that hadn't finished loading would be invalidated and immediately
turn into broken image icons. This was visually jarring and pretty unacceptable.

So I decided to follow a much simpler approach, which was to have the Host clear the client pointer from each
SubresourceLoader before it forgets about it. This leaves things the same visually and fixes the crash.

Note that the layout test for this - if possible - will require other enhancements to DRT including possibly
adding support for window.stop(). That task is non-trivial, and is documented in <rdar://problem/5061826>

  • loader/SubresourceLoader.h: (WebCore::SubresourceLoader::clearClient): Add a method to clear the SubresourceLoaderClient. This is perfectly safe to do on an in-flight SubresourceLoader as they are already designed to be client-less, and already null-check the client before calling it.
  • loader/loader.cpp: (WebCore::Loader::Host::didFail): The SubresourceLoader itself might not be finished loading and might decide to call into its client later. Since the client has no guaranteed lifetime and is liable to be deleted after didFail() is called, call clearClient() on the SubresourceLoader so such an invalid call can't happen.
4:48 PM Changeset in webkit [31925] by kdecker@apple.com
  • 4 edits in trunk/WebKit/mac

Reviewed by Anders.

<rdar://problem/5412759> CrashTracer: [USER] 22 crashes in Safari at com.apple.quicktime.webplugin: NPN_SetValue + 15403


In certain situations, code in WebBasePluginPackage would load a plug-in only for the explicit reason of asking it to create a
preference file, but wouldn't actually unload the bundle. This created problems for the QuickTime WebKit plug-in by unloading
a bundle out from underneath itself.

  • Plugins/WebBasePluginPackage.h: Added unload method.
  • Plugins/WebBasePluginPackage.m: (-[WebBasePluginPackage unload]): Added new method. Currently, only Netscape plug-ins support unload. (-[WebBasePluginPackage pListForPath:createFile:]): Added a call to unload.
  • Plugins/WebNetscapePluginPackage.m: (-[WebNetscapePluginPackage unload]): Added.
4:24 PM Changeset in webkit [31924] by andersca@apple.com
  • 2 edits in trunk/WebKitTools

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

Add missing ;


  • Scripts/build-webkit:
4:16 PM Changeset in webkit [31923] by andersca@apple.com
  • 13 edits
    12 adds in trunk

JavaScriptCore:

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

Reviewed by Adam.

Add ENABLE_OFFLINE_WEB_APPLICATIONS to FEATURE_DEFINES.


  • Configurations/JavaScriptCore.xcconfig:

WebCore:

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

Reviewed by Adam.

Add empty files for the application cache.


  • Configurations/WebCore.xcconfig:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.vcproj/build-generated-files.sh: Add ENABLE_OFFLINE_WEB_APPLICATIONS to FEATURE_DEFINES.


  • WebCore.xcodeproj/project.pbxproj:
  • loader/appcache: Added.
  • loader/appcache/ApplicationCache.cpp: Added.
  • loader/appcache/ApplicationCache.h: Added.
  • loader/appcache/ApplicationCacheGroup.cpp: Added.
  • loader/appcache/ApplicationCacheGroup.h: Added.
  • loader/appcache/ApplicationCacheResource.cpp: Added.
  • loader/appcache/ApplicationCacheResource.h: Added.
  • loader/appcache/DOMApplicationCache.cpp: Added.
  • loader/appcache/DOMApplicationCache.h: Added.
  • loader/appcache/DOMApplicationCache.idl: Added.
  • loader/appcache/ManifestParser.cpp: Added.
  • loader/appcache/ManifestParser.h: Added.

WebKit/mac:

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

Reviewed by Adam.

Add ENABLE_OFFLINE_WEB_APPLICATIONS to FEATURE_DEFINES.

  • Configurations/WebKit.xcconfig:

WebKit/win:

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

Reviewed by Adam.

Add ENABLE_OFFLINE_WEB_APPLICATIONS to FEATURE_DEFINES.

  • WebKit.vcproj/WebKit.vcproj:

WebKitTools:

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

Reviewed by Adam.

Add ENABLE_OFFLINE_WEB_APPLICATIONS to FEATURE_DEFINES.

  • Scripts/build-webkit:
3:27 PM Changeset in webkit [31922] by kmccullough@apple.com
  • 6 edits in trunk/WebCore

2008-04-15 Kevin McCullough <kmccullough@apple.com>

Reviewed by Tim.

  • <rdar://problem/5792587> AJAX (XMLHttpRequest) support for the Inspector (17776)
  • Add XMLHttpRequest support to the inspector.
  • English.lproj/InspectorLocalizedStrings.js: Specify capitalization instead of using text-transform because XHR must capitalize all the letters.
  • page/inspector/Resource.js: Assume XHRs are textType even though this may not always be true. Also add the XHR category and let all mime types be consistent with it.
  • page/inspector/ResourcesPanel.js: Set the XHR category color.
  • page/inspector/inspector.css: Make XHRs yellow and fonts red because XHRs are more common than fonts and yellow next to orange (scripts) is not as harsh on the eyes as red next to orange.
  • page/inspector/inspector.js: Specify capitalization again.
2:56 PM Changeset in webkit [31921] by mjs@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoff.

  • fix huge performance regression (from trunk) in string-unpack-code


This restores string-unpack-code performance to parity with
trunk (2.27x speedup relative to previous SquirrelFish)


  • VM/Machine.cpp: (KJS::Machine::execute): Shrink register file after call to avoid growing repeatedly.
2:31 PM Changeset in webkit [31920] by hyatt@apple.com
  • 3 edits
    4 adds in trunk

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

Fix the zoom property so that it works properly with font-size.

Reviewed by John Sullivan

Added fast/css/zoom-font-size.html

  • css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::updateFont): (WebCore::CSSStyleSelector::applyProperty): (WebCore::CSSStyleSelector::checkForZoomChange):
  • css/CSSStyleSelector.h:
2:29 PM Changeset in webkit [31919] by ggaren@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam Weinig.


Fixed dumpCallFrame to match our new convention of passing around a
ScopeChainNode* instead of a ScopeChain*.

  • JavaScriptCore.exp:
  • VM/Machine.cpp: (KJS::Machine::dumpCallFrame):
  • VM/Machine.h:
1:56 PM Changeset in webkit [31918] by timothy@apple.com
  • 3 edits in trunk/WebCore

Fixes the bug where a resource view could still be shown after the inspected
page navigates to another page.

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

Reviewed by Adam Roben.

  • page/inspector/ResourcesPanel.js:

(WebInspector.ResourcesPanel.prototype.reset): Close the visible resource.
Iterate over all the resources and zero errors and warnings and delete the
resource view and tree element. Removes all children of resourceViews. Passes
true to _updateGraphDividersIfNeeded to force an immediate update.
(WebInspector.ResourcesPanel.prototype.removeResource): Added. Closes
the resource view if it is visible. Removes the resource from the _resources
array. Removes the tree element from the outline tree. Zeros out the errors
and warnings properties. Deletes the tree element and resource view properties.
(WebInspector.ResourcesPanel.prototype.closeVisibleResource): Null check
this._calculator for times when reset is called before the calculator is set.

  • page/inspector/inspector.js:

(WebInspector.removeResource): Call ResourcesPanel.removeResource.

1:55 PM Changeset in webkit [31917] by andersca@apple.com
  • 4 edits in trunk/WebCore

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

Reviewed by Adam.

Rename "archive" to "substitute" in a couple of places.


  • loader/DocumentLoader.cpp: (WebCore::DocumentLoader::DocumentLoader): (WebCore::DocumentLoader::clearArchiveResources): (WebCore::DocumentLoader::deliverSubstituteResourcesAfterDelay): (WebCore::DocumentLoader::substituteResourceDeliveryTimerFired): (WebCore::DocumentLoader::isSubstituteLoadPending): (WebCore::DocumentLoader::cancelPendingSubstituteLoad): (WebCore::DocumentLoader::scheduleArchiveLoad): (WebCore::DocumentLoader::setDefersLoading):
  • loader/DocumentLoader.h:
  • loader/ResourceLoader.cpp: (WebCore::ResourceLoader::load): (WebCore::ResourceLoader::didCancel):
12:44 PM Changeset in webkit [31916] by andersca@apple.com
  • 4 edits in trunk/WebCore

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

Reviewed by Adam.

Move the URL, response and data to SubstituteResource.


  • loader/SubstituteResource.h: (WebCore::SubstituteResource::url): (WebCore::SubstituteResource::response): (WebCore::SubstituteResource::data): (WebCore::SubstituteResource::SubstituteResource):
  • loader/archive/ArchiveResource.cpp: (WebCore::ArchiveResource::ArchiveResource):
  • loader/archive/ArchiveResource.h: (WebCore::ArchiveResource::frameName):
12:21 PM Changeset in webkit [31915] by hyatt@apple.com
  • 3 edits
    4 adds in trunk

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

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

Make sure to ignore zoom:0. That is not supposed to actually do anything. It's a hack in IE
to cause an element to set "hasLayout."

Reviewed by Anders

Added fast/css/zoom-property-parsing.html

  • css/CSSParser.cpp: (WebCore::CSSParser::parseValue):
  • css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty):
12:03 PM Changeset in webkit [31914] by andersca@apple.com
  • 4 edits
    1 add in trunk/WebCore

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

Reviewed by Adam.

Add a (currently empty) SubstituteResource class and make ArchiveResource inherit from it.


  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • loader/SubstituteResource.h: Added.
  • loader/archive/ArchiveResource.h:
11:49 AM Changeset in webkit [31913] by Antti Koivisto
  • 3 edits in trunk/WebCore

2008-04-15 Antti Koivisto <Antti Koivisto>

Reviewed by Geoff.

Fix <rdar://problem/5862921>
REGRESSION: Leak in SVGSVGElement::SVGSVGElement


In these strange days RefCounted starts with count of one.

  • svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::SVGSVGElement):
  • svg/animation/SMILTimeContainer.h: (WebCore::SMILTimeContainer::create):
11:15 AM Changeset in webkit [31912] by hyatt@apple.com
  • 5 edits
    4 adds in trunk

WebCore:

2008-04-15 Anatoli Papirovski <apapirovski@mac.com>

Reviewed by hyatt

[CSS1, CSS3] Fixed the background-origin calculation for root elements
(background-size and background-position are affected), r10794
[CSS3] Fixed the background-size transformation where width is specified in percentage and height is left to auto

Test: fast/backgrounds/background-origin-root-element.html

  • rendering/RenderBox.cpp: (WebCore::RenderBox::calculateBackgroundSize): (WebCore::RenderBox::calculateBackgroundImageGeometry):

LayoutTests:

2008-04-15 Anatoli Papirovski <apapirovski@mac.com>

Reviewed by hyatt

Added test case for background-origin calculation on root elements
(background-repeat and background-size), r10794 [CSS1 + CSS3]

  • fast/backgrounds/background-origin-root-element.html: Added.
  • platform/mac/fast/backgrounds/background-origin-root-element-expected.checksum: Added.
  • platform/mac/fast/backgrounds/background-origin-root-element-expected.png: Added.
  • platform/mac/fast/backgrounds/background-origin-root-element-expected.txt: Added.
10:54 AM Changeset in webkit [31911] by beidson@apple.com
  • 4 edits in trunk/WebKit/mac

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

Reviewed by John Sullivan

Do a more complete job adding the "WebArchiveDebugMode" pref

  • WebView/WebPreferences.m: Add both getter *and* setter (-[WebPreferences webArchiveDebugModeEnabled]): (-[WebPreferences setWebArchiveDebugModeEnabled:]):
  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm: (-[WebView _preferencesChangedNotification:]): Call the renamed getter
10:24 AM Changeset in webkit [31910] by timothy@apple.com
  • 4 edits in trunk/WebCore

Fixes the regression where the error and warning counts did not show up in the Resources
sidebar next to resources.

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

Reviewed by Adam Roben.

  • page/inspector/ResourcesPanel.js:

(WebInspector.ResourcesPanel.prototype.addMessageToResource): Increment errors or warnings
on the resource. Set the bubbleText to the total of the errors and warnings. Add a error
or warning class to the bubble.
(WebInspector.ResourcesPanel.prototype.clearMessages): Zero out the errors and warnings
properties on each resource. Set the bubbleText back to an empty string.

  • page/inspector/SidebarTreeElement.js:

(WebInspector.SidebarTreeElement): Create a statusElement.
(WebInspector.SidebarTreeElement.prototype.get bubbleText): Return _bubbleText.
(WebInspector.SidebarTreeElement.prototype.set bubbleText): Create bubbleElement if needed.
Assign the value to _bubbleText and bubbleElement.textContent.
(WebInspector.SidebarTreeElement.prototype.onattach): Append statusElement to _listItemNode.

  • page/inspector/inspector.css: Style rules for bubbles and status elements.
10:24 AM Changeset in webkit [31909] by timothy@apple.com
  • 5 edits in trunk/WebCore

Fixes the regression where error and warning bubbles would not be added
to the source view of a resource.

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

Reviewed by Adam Roben.

  • css/view-source.css:

(.webkit-html-message-bubble): Add a min-height to make sure the border-radius
has enough room to apply.

  • page/inspector/Console.js:

(WebInspector.Console.prototype.addMessage): Removed code that added messages
to resource panels and incremented error and warning counts on resources.
Now just call ResourcesPanel.addMessageToResource after assigning the resource
to the console message.
(WebInspector.Console.prototype.clearMessages): Removed code that cleared error
and warning counts from resources an call ResourcesPanel.clearMessages.

  • page/inspector/ResourcesPanel.js:

(WebInspector.ResourcesPanel.prototype.addMessageToResource): Call addMessage
on the resource's view, if it is implemented.
(WebInspector.ResourcesPanel.prototype.clearMessages): Call clearMessages
on all the resource views for the ones that implement it.
(WebInspector.ResourcesPanel.prototype.refreshResource): Call _resourceView
to make the resource's view if needed. Use a local view variable.
(WebInspector.ResourcesPanel.prototype._resourceView): Added helper function
to create a resource view if needed.

  • page/inspector/SourceView.js:

(WebInspector.SourceView.prototype.setupSourceFrameIfNeeded): Delete the
_frameNeedsSetup property at the beginning to prevent recursion. Get the
length of the messages array when assigning the local length variable.
(WebInspector.SourceView.prototype.addMessage): Renamed from addMessageToSource.
(WebInspector.SourceView.prototype.clearMessages): Added. Clear all the message
bubbles that might be sprinkled in the source. Also clears the messages array.
(WebInspector.SourceView.prototype._addMessageToSource): Create the image
element in the Inspector's document so we can use relative image URLs. Then
adopt the image element into the frame's document.

10:07 AM Changeset in webkit [31908] by beidson@apple.com
  • 4 edits
    20 adds in trunk

WebCore:

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

Reviewed by Anders

Hook up event dispatching for window.localStorage changes.

Tests: storage/domstorage/localstorage/enumerate-storage.html

storage/domstorage/localstorage/iframe-events.html
storage/domstorage/localstorage/index-get-and-set.html
storage/domstorage/localstorage/onstorage-attribute-markup.html
storage/domstorage/localstorage/onstorage-attribute-setattribute.html
storage/domstorage/localstorage/simple-events.html
storage/domstorage/localstorage/simple-usage.html
storage/domstorage/localstorage/window-open.html

  • storage/LocalStorage.cpp: (WebCore::LocalStorage::dispatchStorageEvent): Walk every Page in the PageGroup, adding each Frame that matches the storage area's security origin to a Vector. Then dispatch the StorageEvent to each Frame in the Vector
  • storage/SessionStorage.cpp: (WebCore::SessionStorage::dispatchStorageEvent): Adopt the technique used in LocalStorage, which is to only add the Frames to the Vector if their security origin matches

LayoutTests:

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

Reviewed by Anders

Hook up event dispatching for window.localStorage changes.
Now a meaningful LayoutTest suite can be landed for window.localStorage.

  • storage/domstorage/localstorage/enumerate-storage-expected.txt: Added.
  • storage/domstorage/localstorage/enumerate-storage.html: Added.
  • storage/domstorage/localstorage/iframe-events-expected.txt: Added.
  • storage/domstorage/localstorage/iframe-events.html: Added.
  • storage/domstorage/localstorage/index-get-and-set-expected.txt: Added.
  • storage/domstorage/localstorage/index-get-and-set.html: Added.
  • storage/domstorage/localstorage/onstorage-attribute-markup-expected.txt: Added.
  • storage/domstorage/localstorage/onstorage-attribute-markup.html: Added.
  • storage/domstorage/localstorage/onstorage-attribute-setattribute-expected.txt: Added.
  • storage/domstorage/localstorage/onstorage-attribute-setattribute.html: Added.
  • storage/domstorage/localstorage/resources: Added.
  • storage/domstorage/localstorage/resources/clearLocalStorage.js: Added.
  • storage/domstorage/localstorage/resources/iframe-events-second.html: Added.
  • storage/domstorage/localstorage/resources/window-open-second.html: Added.
  • storage/domstorage/localstorage/simple-events-expected.txt: Added.
  • storage/domstorage/localstorage/simple-events.html: Added.
  • storage/domstorage/localstorage/simple-usage-expected.txt: Added.
  • storage/domstorage/localstorage/simple-usage.html: Added.
  • storage/domstorage/localstorage/window-open-expected.txt: Added.
  • storage/domstorage/localstorage/window-open.html: Added.
4:51 AM Changeset in webkit [31907] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Ariya Hidayat <ariya.hidayat@trolltech.com>

fix potential crash when loading image(s)

Crash may occur. If compiled with 4.3, the variable is not initialized.
This fix solves https://bugs.webkit.org/show_bug.cgi?id=17174

3:51 AM Changeset in webkit [31906] by Simon Hausmann
  • 5 edits in trunk/WebKit/qt

Simon Hausmann <Simon Hausmann>

Update the micro focus for input methods as soon as the composition mode changes
or the caret/selection changes.

3:51 AM Changeset in webkit [31905] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Simon Hausmann <Simon Hausmann>

Don't use QDir, QString or any locale sensitive function before constructing Q(Core)Application,
it yields undefined behaviour or wrong default codec initialization.

3:50 AM Changeset in webkit [31904] by Simon Hausmann
  • 5 edits in trunk

Olivier Goffart <ogoffart@trolltech.com>

Fixes: copy to clipboard when selecting, and paste when clicking with the middle button

3:29 AM Changeset in webkit [31903] by Simon Hausmann
  • 7 edits in trunk/WebKit/qt

Michael Brasser <michael.brasser@trolltech.com>

Add basic input method support.

3:28 AM Changeset in webkit [31902] by Simon Hausmann
  • 5 edits in trunk/WebKit/qt

Simon Hausmann <Simon Hausmann>

Added (QWebFrame|QWebView)::textZoomFactor.

3:28 AM Changeset in webkit [31901] by Simon Hausmann
  • 3 edits in trunk/WebKit/qt

Michael Brasser <michael.brasser@trolltech.com>

Added simple scrolling API to QWebFrame.

The intent is that it works similar to QAbstractScrollArea.

3:12 AM Changeset in webkit [31900] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Olivier Goffart <ogoffart@trolltech.com>

Fixes: implement the OpenFrameInNewWindow action.

2:40 AM Changeset in webkit [31899] by Simon Hausmann
  • 44 edits in trunk

Fix compilation with Qt namespaces

Qt can be configured to have all of its classes inside a specified namespaces.
This is for example used in plugin/component environments like Eclipse.

This change makes it possible to let the Qt port compile against a namespaced
Qt by the use of macros Qt provides to properly forward declare Qt classes in
the namespace.

Signed-off-by: Simon

2:18 AM Changeset in webkit [31898] by oliver@apple.com
  • 7 edits in branches/squirrelfish/JavaScriptCore

Bug 18436: Need to throw exception on read/modify/write or similar resolve for nonexistent property
<https://bugs.webkit.org/show_bug.cgi?id=18436>

Reviewed by Maciej.

Add op_resolve_base_and_property for read/modify/write operations,
this adds a "superinstruction" to resolve the base and value of a
property simultaneously. Just using resolveBase and resolve results
in an 5% regression in ubench, 30% in loop-empty-resolve (which is
expected). 1.3% progression in sunspider, 2.1% in ubench, with a
21% gain in loop-empty-resolve. The only outlier is function-missing-args
which gets a 3% regression that I could never resolve.

2:07 AM Changeset in webkit [31897] by mjs@apple.com
  • 8 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.


3d-raytrace and string-unpack-code now run.


The basic approach is to pass around ScopeChainNode* instead of
ScopeChain*, which in addition to not becoming suddenly an invalid
pointer also saves an indirection.


This is an 0.4% speedup on SunSpider --squirrelfish (1.8% on --ubench)


  • VM/Machine.cpp: (KJS::resolve): (KJS::resolveBase): (KJS::resolveBaseAndFunc): (KJS::initializeCallFrame): (KJS::scopeChainForCall): (KJS::Machine::unwindCallFrame): (KJS::Machine::throwException): (KJS::Machine::execute): (KJS::Machine::privateExecute):
  • VM/Machine.h:
  • VM/Register.h: (KJS::Register::):
  • kjs/nodes.cpp: (KJS::EvalNode::generateCode): (KJS::FunctionBodyNode::generateCode): (KJS::ProgramNode::generateCode): (KJS::ProgramNode::processDeclarations): (KJS::EvalNode::processDeclarations): (KJS::FuncDeclNode::makeFunction): (KJS::FuncExprNode::makeFunction):
  • kjs/nodes.h: (KJS::ProgramNode::): (KJS::EvalNode::): (KJS::FunctionBodyNode::):
  • kjs/object.h:
  • kjs/scope_chain.h: (KJS::ScopeChainNode::ScopeChainNode): (KJS::ScopeChainNode::deref): (KJS::ScopeChainIterator::ScopeChainIterator): (KJS::ScopeChainIterator::operator*): (KJS::ScopeChainIterator::operator->): (KJS::ScopeChain::ScopeChain): (KJS::ScopeChain::node): (KJS::ScopeChain::deref): (KJS::ScopeChain::ref): (KJS::ScopeChainNode::ref): (KJS::ScopeChainNode::release): (KJS::ScopeChainNode::begin): (KJS::ScopeChainNode::end):
12:20 AM squirrelfish edited by ggaren@apple.com
(diff)
Note: See TracTimeline for information about the timeline view.