Timeline


and

03/20/08:

22:30 Changeset [31206] by mitz@apple.com

WebCore:

2008-03-20 Dan Bernstein <mitz@apple.com>

Reviewed by Anders Carlsson.

  • fix an assertion failure due to a line being marked dirty during computeVerticalPositionsForLine() due to temporary box destruction

Test: fast/inline/clean-after-removing-temp-boxes.html

  • rendering/RenderText.cpp: (WebCore::RenderText::setTextWithOffset): Added code to dirty lines when this method is called on an empty text node, which has no line boxes.
  • rendering/bidi.cpp: (WebCore::RenderBlock::computeVerticalPositionsForLine): Mark the line clean in the end.

LayoutTests:

2008-03-20 Dan Bernstein <mitz@apple.com>

Reviewed by Anders Carlsson.

  • test for an assertion failure due to a line being marked dirty during computeVerticalPositionsForLine() due to temporary box destruction
  • fast/inline/clean-after-removing-temp-boxes-expected.txt: Added.
  • fast/inline/clean-after-removing-temp-boxes.html: Added.
22:00 Changeset [31205] by oliver@apple.com

Fix for leak introduced by inline ScopeChainNode use

Reviewed by Maciej

To avoid any extra branches when managing an inline ScopeChainNode
in the ScopeChain the inline node gets inserted with a refcount of

  1. This meant than when the ScopeChain was destroyed the ScopeChainNodes

above the inline node would be leaked.

We resolve this by manually popping the inline node in the
FunctionExecState destructor.

18:32 Changeset [31204] by andersca@apple.com

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

Reviewed by Maciej.

Make some member variables private.


  • loader/ResourceLoader.cpp: (WebCore::ResourceLoader::ResourceLoader):
  • loader/ResourceLoader.h:
18:18 Changeset [31203] by andersca@apple.com

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

Reviewed by Maciej.

Get rid of m_originalURL in ResourceLoader.

  • loader/ResourceLoader.cpp: (WebCore::ResourceLoader::load): Don't store m_originalURL.


  • loader/ResourceLoader.h:
  • loader/SubresourceLoader.cpp: (WebCore::SubresourceLoader::willSendRequest): Use the url of the current request instead of the original URL.
18:07 Changeset [31202] by andersca@apple.com

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

Reviewed by Maciej.

Small loader cleanups.


  • loader/MainResourceLoader.cpp: (WebCore::MainResourceLoader::willSendRequest): No need to call setRequest here, ResourceLoader::willSendRequest takes care of that. Also, there is no need to check that newRequest is null here, because we assert earlier that it is not.


  • loader/ResourceLoader.h: Get rid of setRequest, it is no longer needed.
18:00 Changeset [31201] by andersca@apple.com

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

Get rid of a couple of unnecessary class declarations.


  • loader/SubresourceLoader.h:
17:30 Changeset [31200] by hyatt@apple.com

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

Add a new value to background-clip, "text", that allows backgrounds to be clipped to foreground text (and
associated text decorations like shadows and underlines).

Reviewed by Beth

  • css/CSSParser.cpp: (WebCore::CSSParser::parseBackgroundProperty):
  • css/CSSPrimitiveValueMappings.h: (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): (WebCore::CSSPrimitiveValue::operator EBackgroundBox):
  • platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::clipToImageBuffer):
  • platform/graphics/GraphicsContext.h:
  • platform/graphics/cg/GraphicsContextCG.cpp: (WebCore::GraphicsContext::clipToImageBuffer):
  • rendering/InlineBox.cpp: (WebCore::InlineBox::paint):
  • rendering/InlineFlowBox.cpp: (WebCore::InlineFlowBox::paintBackgrounds): (WebCore::InlineFlowBox::paintBackground): (WebCore::InlineFlowBox::paintBoxDecorations):
  • rendering/InlineFlowBox.h:
  • rendering/InlineTextBox.cpp: (WebCore::InlineTextBox::paint):
  • rendering/RenderBlock.cpp: (WebCore::RenderBlock::paintColumns): (WebCore::RenderBlock::paintObject): (WebCore::RenderBlock::paintFloats):
  • rendering/RenderBlock.h:
  • rendering/RenderBox.cpp: (WebCore::RenderBox::paintRootBoxDecorations): (WebCore::RenderBox::paintBoxDecorations): (WebCore::RenderBox::paintBackgrounds): (WebCore::RenderBox::paintBackground): (WebCore::RenderBox::paintBackgroundExtended):
  • rendering/RenderBox.h:
  • rendering/RenderFieldset.cpp: (WebCore::RenderFieldset::paintBoxDecorations):
  • rendering/RenderFlow.cpp: (WebCore::RenderFlow::paintLines):
  • rendering/RenderObject.h: (WebCore::): (WebCore::RenderObject::paintBackgroundExtended):
  • rendering/RenderStyle.h: (WebCore::):
  • rendering/RenderTable.cpp: (WebCore::RenderTable::paintBoxDecorations):
  • rendering/RenderTableCell.cpp: (WebCore::RenderTableCell::paintBackgroundsBehindCell):
17:14 Changeset [31199] by aroben@apple.com

Allow pausing/blocking of JS execution by plugins

Part of Bug 17133: Should support pausing JavaScript execution without
hanging the process

<http://bugs.webkit.org/show_bug.cgi?id=17133>
<rdar://problem/5719551>

This patch doesn't affect Mac, which doesn't use the shared PluginView
code.

Note that this patch doesn't prevent plugins from executing JS via an
NPObject they've already gotten hold of. It just blocks obtaining new
NPObjects and pauses any requests to evaluate javascript: URIs. This
is probably good enough for now because most plugins seem to always
obtain the Window object each time they want to execute JS.

Reviewed by Tim Hatcher.

  • plugins/PluginView.cpp: (WebCore::PluginView::getValue): Return an error if JS is paused. (WebCore::PluginView::setJavaScriptPaused): Stop the request timer if we're pausing, and resume it if we're unpausing. (WebCore::PluginView::PluginView): Initialize new members.
  • plugins/PluginView.h:
17:14 Changeset [31198] by aroben@apple.com

Allow pausing of callOnMainThread callbacks

Part of Bug 17133: Should support pausing JavaScript execution without
hanging the process

<http://bugs.webkit.org/show_bug.cgi?id=17133>
<rdar://problem/5719551>

Reviewed by Tim Hatcher.

  • platform/MainThread.cpp: (WebCore::dispatchFunctionsFromMainThread): If callbacks are paused, don't dispatch the functions. (WebCore::setMainThreadCallbacksPaused): Added. If we're being unpaused, call scheduleDispatchFunctionsOnMainThread so that any queued callbacks will get dispatched in the near future.
  • platform/MainThread.h:
17:13 Changeset [31197] by aroben@apple.com

Allow blocking of JS event handlers/javascript: URIs per-Frame

Part of Bug 17133: Should support pausing JavaScript execution without
hanging the process

<http://bugs.webkit.org/show_bug.cgi?id=17133>
<rdar://problem/5719551>

Two new methods are added to KJSProxy: setPaused and isPaused. When
setPaused(true) is called, JS event handlers are blocked and
javascript: URIs will not be evaluated.

Reviewed by Tim Hatcher.

  • bindings/js/kjs_events.cpp: (WebCore::JSAbstractEventListener::handleEvent):
    • Removed some old KJS_DEBUGGER code
    • Don't run the handler if the KJSProxy is paused.
  • bindings/js/kjs_proxy.cpp: (WebCore::KJSProxy::KJSProxy): Initialize new member.
  • bindings/js/kjs_proxy.h: Added new methods.
  • loader/FrameLoader.cpp: (WebCore::FrameLoader::executeScript): Don't execute the script if the KJSProxy is paused.
16:50 Changeset [31196] by jhoneycutt@apple.com

2008-03-20 Jon Honeycutt <jhoneycutt@apple.com>

Reviewed by Anders.

Fix Windows warning / leak: warning C4150: deletion of pointer to
incomplete type 'WebCore::PluginRequest'; no destructor called

  • plugins/PluginView.cpp: Move PluginRequest class to PluginView.h so Windows PluginView destructor can use WTF::deleteAllValues to clean up m_requests.
  • plugins/PluginView.h: (WebCore::PluginRequest::PluginRequest): (WebCore::PluginRequest::frameLoadRequest): (WebCore::PluginRequest::notifyData): (WebCore::PluginRequest::sendNotification): (WebCore::PluginRequest::shouldAllowPopups):
16:18 Changeset [31195] by mrowe@apple.com

Ensure that the defines in FEATURE_DEFINES are sorted so that they will match the default settings of build-webkit.
This will prevent the world from being rebuilt if you happen to switch between building in Xcode and with build-webkit on the
command-line.

Reviewed by Sam Weinig.

16:17 Changeset [31194] by aroben@apple.com

Add some more bug references to ChangeLog from r31079

16:16 Developer Tools Hitlist edited by aroben@apple.com
Removed another fixed bug (diff)
16:11 Developer Tools Hitlist edited by aroben@apple.com
Removed a fixed bug (diff)
16:00 Changeset [31193] by jhoneycutt@apple.com

2008-03-20 Jon Honeycutt <jhoneycutt@apple.com>

Reviewed by Anders.

<rdar://problem/5809600> REGRESSION:
http/tests/plugins/cross-frame-object-access.html hangs Windows Layout
Tests

r30897 changed the way we conditionalize this feature.

  • plugins/PluginView.cpp: (WebCore::PluginView::getValue): Test ENABLE(NETSCAPE_PLUGIN_API) instead of USE(NPOBJECT). (WebCore::PluginView::bindingInstance): Same.
15:59 Changeset [31192] by aroben@apple.com

Highlight nodes when you hover over them in the Console

Part of Bug 16532: Inspector should highlight nodes in page when
hovering over nodes in Inspector's interface

<http://bugs.webkit.org/show_bug.cgi?id=16532>
<rdar://problem/5712896>

Reviewed by Tim Hatcher.

  • page/inspector/ConsolePanel.js: (WebInspector.ConsolePanel._formatnode): Add mouseover/mouseout event listeners to highlight the node and clear the highlight.
15:59 Changeset [31191] by aroben@apple.com

Highlight nodes in the page when you hover over their DOM breadcrumbs

Part of Bug 16532: Inspector should highlight nodes in page when
hovering over nodes in Inspector's interface

<http://bugs.webkit.org/show_bug.cgi?id=16532>
<rdar://problem/5712896>

Reviewed by Tim Hatcher.

  • page/inspector/DocumentPanel.js: (WebInspector.DocumentPanel): Add an mouseout event listener to the breadcrumbs element to clear the highlighted node. (WebInspector.DocumentPanel.updateBreadcrumbs): Change the mouseover event listener to highlight the node represented by the hovered breadcrumb.
15:58 Changeset [31190] by aroben@apple.com

Highlight nodes in the page when you hover over them in the DOM tree

Part of Bug 16532: Inspector should highlight nodes in page when
hovering over nodes in Inspector's interface

<http://bugs.webkit.org/show_bug.cgi?id=16532>
<rdar://problem/5712896>

The inspected node is no longer highlighted (unless, of course, you
hover over it).

Reviewed by Tim Hatcher.

  • page/inspector/DocumentPanel.js: (WebInspector.DocumentPanel):
    • Don't highlight the focused node when the DOM tree is shown
    • Added mousemove/mouseout event listeners to set/clear the highlighted node. These are added to the root of the DOM tree instead of to each individual list item to avoid flashing as the mouse moves between nodes.

(WebInspector.DocumentPanel.set focusedDOMNode): Don't highlight the
focused node.
(WebInspector.DocumentPanel._onmousemove): Highlight the node under
the mouse.

15:58 Changeset [31189] by aroben@apple.com

Show nodes' content/padding/border/margin boxes in the node highlight

Part of Bug 17221: Node highlight should show node metrics

<http://bugs.webkit.org/show_bug.cgi?id=17221>
<rdar://problem/5732822>

Outstanding issues:

1) We don't show padding/border/margins for inlines
2) We don't show any numeric metrics, we just draw the boxes
3) We'll probably want to tweak the look of the highlight some, at

least to make the boxes better distinguishable

Reviewed by Tim Hatcher.

  • page/InspectorController.cpp: (WebCore::drawOutlinedRect): Added. Just draws a single rect. (WebCore::drawHighlightForBoxes): Added. Takes the rects we calculated for the node and draws the highlight. (WebCore::InspectorController::drawNodeHighlight): Calculates the content/padding/border/margin boxes for blocks and passes them off to drawHighlightForBoxes. The behavior for inlines is for now unchanged.
15:57 Changeset [31188] by aroben@apple.com

Fix RenderContainer's override of addLineBoxRects to match RenderObject's

RenderContainer::addLineBoxRects was never getting called because its
parameters didn't match those of RenderObject::addLineBoxRects.

Reviewed by Mitz Pettel.

No test possible.

  • rendering/RenderContainer.cpp: Added an optional bool useSelectionHeight parameter to match RenderObject's method.
  • rendering/RenderContainer.h: Ditto.
15:38 Changeset [31187] by mrowe@apple.com

Tweak NodeList tests to ensure that they force a GC outside of DRT.

Rubber-stamped by Sam Weinig.

  • fast/dom/NodeList/5725058-crash-scenario-1.html:
  • fast/dom/NodeList/5725058-crash-scenario-2.html:
15:37 Changeset [31186] by mitz@apple.com

Reviewed by Adam Roben.

  • make makeTextLarger() and zoomPageIn() do what they are supposed to do
  • WebView.cpp: (WebView::makeTextLarger): Changed call to canZoomIn() to zoomIn(). (WebView::zoomPageIn): Ditto.
14:00 Changeset [31185] by alp@webkit.org

2008-03-20 Marco Barisione <marco.barisione@collabora.co.uk>

Reviewed by Alp Toker.

http://bugs.webkit.org/show_bug.cgi?id=17946
[GTK] Widgets are not clipped

  • platform/gtk/RenderThemeGtk.cpp: (WebCore::paintMozWidget): pass the clipping rectangle to moz_gtk_widget_paint() instead of just the widget rectangle.
13:44 Changeset [31184] by alp@webkit.org

2008-03-20 Alp Toker <alp@atoker.com>

GTK+ build fix. Back out r31183. This patch also introduced API style
issues.

  • WebCoreSupport/FrameLoaderClientGtk.cpp: (WebKit::FrameLoaderClient::dispatchDecidePolicyForNavigationAction):
  • webkit/headers.pri:
  • webkit/webkit-marshal.list:
  • webkit/webkitdefines.h:
  • webkit/webkitnavigationaction.cpp: Removed.
  • webkit/webkitnavigationaction.h: Removed.
  • webkit/webkitprivate.cpp:
  • webkit/webkitprivate.h:
  • webkit/webkitwebview.cpp:
  • webkit/webkitwebview.h:
11:19 Changeset [31183] by andersca@apple.com

.:

2008-03-20 Jasper Bryant-Greene <jasper@unix.geek.nz>

Reviewed by Anders.

Resolves http://bugs.webkit.org/show_bug.cgi?id=16092
"[GTK] Middle-mouse click should allow opening a URL in a new tab"

Added WebKitNavigationAction object to GTK API

  • GNUmakefile.am:

WebKit/gtk:

2008-03-20 Jasper Bryant-Greene <jasper@unix.geek.nz>

Reviewed and tweaked by Anders.

Resolves http://bugs.webkit.org/show_bug.cgi?id=16092
"[GTK] Middle-mouse click should allow opening a URL in a new tab"

Created WebKitNavigationAction object exported through the API. The
navigation-requested signal provides this object as context for the
requested navigation, allowing the application to decide what to do
with the navigation based on which mouse button was used, which
modifier keys were held down, etc. This allows, for example, the
application to open links in a new tab when either middle-click or
control-click are used to initiate the navigation.

  • WebCoreSupport/FrameLoaderClientGtk.cpp: (WebKit::FrameLoaderClient::dispatchDecidePolicyForNavigationAction):
  • webkit/headers.pri:
  • webkit/webkit-marshal.list:
  • webkit/webkitdefines.h:
  • webkit/webkitnavigationaction.cpp: Added. (webkit_navigation_action_finalize): (webkit_navigation_action_class_init): (webkit_navigation_action_init): (webkit_navigation_action_get_button): (webkit_navigation_action_get_modifier_flags): (webkit_navigation_action_get_navigation_type): (webkit_navigation_action_get_original_url):
  • webkit/webkitnavigationaction.h: Added.
  • webkit/webkitprivate.cpp: (WebKit::kit):
  • webkit/webkitprivate.h:
  • webkit/webkitwebview.cpp:
  • webkit/webkitwebview.h:
10:59 Changeset [31182] by hyatt@apple.com

Added layout test for dynamic sibling selector patch.

10:59 Changeset [31181] by hyatt@apple.com

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

Fix for http://bugs.webkit.org/show_bug.cgi?id=9279

Make :hover work with the adjacent sibling selector. This fix makes all forms of dynamic changes
(class name changes, :hover, :focus, etc.) work properly when used with the + selector.

Reviewed by weinig

Added fast/css/dynamic-sibling-selector.html

  • dom/Element.cpp: (WebCore::Element::recalcStyle):
10:22 Changeset [31180] by hyatt@apple.com

Add full page zoom API for Windows WebKit.

09:18 Changeset [31179] by sullivan@apple.com

WebKit:

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

  • StringsNotToBeLocalized.txt: Brought this file up to date

WebKit/win:

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

  • English.lproj/Localizable.strings: Brought this file up to date
09:09 Changeset [31178] by ddkilzer@apple.com

WebCore:

2008-03-20 Aaron Golden <aegolden@gmail.com>

Reviewed by Darin and David Kilzer.

Addresses <http://bugs.webkit.org/show_bug.cgi?id=15263>, which caused certain marquees to not display.

Test: fast/html/marquee-scroll.html

  • html/HTMLMarqueeElement.cpp: (WebCore::HTMLMarqueeElement::parseMappedAttribute):

LayoutTests:

2008-03-20 Aaron Golden <aegolden@gmail.com>

Reviewed by Darin and David Kilzer.

  • fast/html/marquee-scroll.html: Added.
  • platform/mac/fast/html/marquee-scroll-expected.checksum: Added.
  • platform/mac/fast/html/marquee-scroll-expected.png: Added.
  • platform/mac/fast/html/marquee-scroll-expected.txt: Added.
09:01 Changeset [31177] by aroben@apple.com

Make WebNodeHighlightView use InspectorController to do its painting

WebCore:

Export InspectorController::drawNodeHighlight

Reviewed by Tim Hatcher.

  • WebCore.base.exp: Also sorted this file.

WebKit:

Mark WebNodeHighlight.m and WebNodeHighlightView.m Obj-C++

Reviewed by Tim Hatcher.

  • WebKit.xcodeproj/project.pbxproj:

WebKit/mac:

Make WebNodeHighlightView use InspectorController to do its painting

Reviewed by Tim Hatcher.

  • WebCoreSupport/WebInspectorClient.mm: (-[WebInspectorWindowController highlightNode:]): Pass the InspectorController to the WebNodeHighlight, and don't call setHighlightedNode: (which has been removed). (-[WebInspectorWindowController hideHighlight]): Removed call to setHighlightedNode:.
  • WebInspector/WebNodeHighlight.h:
    • Replaced _highlightNode with _inspectorController
    • Removed _highlightedNode accessors
    • Added -inspectorController method
  • WebInspector/WebNodeHighlight.m: (-[WebNodeHighlight initWithTargetView:inspectorController:]): Now takes an InspectorController* and stores it in _inspectorController. (-[WebNodeHighlight dealloc]): Removed code dealing with _highlightedNode. (-[WebNodeHighlight inspectorController]): Added.
  • WebInspector/WebNodeHighlightView.m: Removed FileInternal category. (-[WebNodeHighlightView isFlipped]): Added. WebCore expects all GraphicsContexts to be based on a flipped CGContext, so we have to specify that this view is flipped. (-[WebNodeHighlightView drawRect:]): Changed to create a GraphicsContext and pass it to InspectorController::drawNodeHighlight.
07:33 Changeset [31176] by ddkilzer@apple.com

2008-03-20 David Krause <david.krause@gmail.com>

Reviewed by David Kilzer.

Fix http://bugs.webkit.org/show_bug.cgi?id=17923
Bug 17923: ARM platform endian defines inaccurate

  • wtf/Platform.h: Replaced !defined(ARMEL) check with !defined(VFP_FP) for PLATFORM(MIDDLE_ENDIAN)
03:20 Changeset [31175] by mjs@apple.com

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

  • fix build
  • ForwardingHeaders/wtf/ListRefPtr.h: Added.
03:20 Changeset [31174] by mjs@apple.com

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

  • fix build
  • JavaScriptCore.xcodeproj/project.pbxproj: install Activation.h as private
02:34 Changeset [31173] by mjs@apple.com

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

Reviewed by Oliver.


  • reduce function call overhead for 1.014x speedup on SunSpider

I moved some functions from ExecState.cpp to ExecStateInline.h and
from JSGlobalObject.cpp to JSGlobalObject.h, and declared them
inline; machine function call overhead for these was hurting JS
funcion call overhead.


  • kjs/ExecState.cpp:
  • kjs/ExecStateInlines.h: Added. (KJS::ExecState::ExecState): (KJS::ExecState::~ExecState): (KJS::FunctionExecState::FunctionExecState): (KJS::FunctionExecState::~FunctionExecState):
  • kjs/JSGlobalObject.cpp:
  • kjs/JSGlobalObject.h: (KJS::JSGlobalObject::pushActivation): (KJS::JSGlobalObject::checkActivationCount): (KJS::JSGlobalObject::popActivation):
  • kjs/function.cpp:

03/19/08:

23:36 Changeset [31172] by oliver@apple.com

Avoid heap allocating the root scope chain node for eval and closure free functions

Reviewed by Maciej

Maciej suggested using an inline ScopeChainNode for functions that don't use eval
or closures as they are unable to ever capture the scope chain. This gives us a 2.4%
win in sunspider, a 15% win in controlflow-recursive, and big (>5%) wins in a number
of other tests.

22:23 Changeset [31171] by slewis@apple.com

2008-03-19 Stephanie Lewis <slewis@apple.com>

Rubber-stamped by Anders.

Fix Windows Build

  • platform/cf/SharedBufferCF.cpp: (WebCore::SharedBuffer::createCFData):
21:51 Changeset [31170] by slewis@apple.com

2008-03-19 Stephanie Lewis <slewis@apple.com>

Rubber-stamped by Anders.

Fix Windows Build

  • platform/SharedBuffer.h:
20:15 Changeset [31169] by justin.garcia@apple.com

WebCore:

2008-03-19 Justin Garcia <justin.garcia@apple.com>

Reviewed by Oliver.


<rdar://problem/5780697> Copying content with CSS property values that are percentages can cause fidelity issues


Elements with height: x%; overflow: visible; overlap what's below them when they are copied from
a document in quirksmode and pasted into to one in standards mode. This fix uses the computed
the value for a property if its value is a percentage.


  • css/CSSMutableStyleDeclaration.cpp: (WebCore::CSSMutableStyleDeclaration::addParsedProperty): Added so that we don't have to use setProperty from appendStartMarkup. We already have a parsed property value, so we shouldn't use setProperty, since it takes in a String. If we did, we would have to call CSSValue::cssText() for a String only to re-parse it in setProperty. This wasn't extremely important now, but it will be as we compute more properties to fix the rest of the copy/paste fidelity bugs.
  • css/CSSMutableStyleDeclaration.h:
  • editing/markup.cpp: (WebCore::appendStartMarkup): Compute values for properties that have percentage values. We could perhaps narrow this special case to only include properties that are effected by quirksmode.

LayoutTests:

2008-03-19 Justin Garcia <justin.garcia@apple.com>

Reviewed by Oliver.


<rdar://problem/5780697> Copying content with CSS property values that are percentages can cause fidelity issues

  • editing/pasteboard/5780697-2-expected.txt: Added.
  • editing/pasteboard/5780697-2.html: Added.
18:14 Changeset [31168] by mrowe@apple.com

2008-03-19 Mark Rowe <mrowe@apple.com>

Reviewed by Sam Weinig.

Fix release build.

  • kjs/JSGlobalObject.cpp: Add missing #include.
18:00 Changeset [31167] by weinig@apple.com

JavaScriptCore:

2008-03-19 Sam Weinig <sam@webkit.org>

Reviewed by Anders Carlsson.

Fix for <rdar://problem/5785694>
Crash occurs at KJS::Collector::collect() when loading web clip widgets with a PAC file

Make the activeExecStates stack per JSGlobalObject instead of static to ensure
thread safety.

  • JavaScriptCore.exp:
  • kjs/ExecState.cpp: (KJS::InterpreterExecState::InterpreterExecState): (KJS::InterpreterExecState::~InterpreterExecState): (KJS::EvalExecState::EvalExecState): (KJS::EvalExecState::~EvalExecState): (KJS::FunctionExecState::FunctionExecState): (KJS::FunctionExecState::~FunctionExecState):
  • kjs/ExecState.h: (KJS::):
  • kjs/JSGlobalObject.cpp: (KJS::JSGlobalObject::mark):
  • kjs/JSGlobalObject.h: (KJS::JSGlobalObject::activeExecStates):
  • kjs/collector.cpp: (KJS::Collector::collect): (KJS::Collector::reportOutOfMemoryToAllExecStates): Iterate all JSGlobalObjects and report the OutOfMemory condition to all the ExecStates in each.

WebCore:

2008-03-19 Sam Weinig <sam@webkit.org>

Reviewed by Anders Carlsson.

Fix for <rdar://problem/5785694>
Crash occurs at KJS::Collector::collect() when loading web clip widgets with a PAC file

Make the activeExecStates stack per JSGlobalObject instead of static to ensure
thread safety.

  • bindings/objc/WebScriptObject.mm: (+[WebScriptObject throwException:]): Change to throw an exception on the current GlobalObject instead of the top of the static activeExecStates stack. (-[WebScriptObject setException:]): Change to use the top of the rootObjects GlobalObject instead of the top of the static activeExecStates stack.
  • bridge/c/c_instance.cpp:
  • bridge/c/c_instance.h:
  • bridge/jni/jni_instance.cpp: (JavaInstance::virtualBegin): (JavaInstance::virtualEnd):
  • bridge/jni/jni_instance.h:
  • bridge/objc/objc_instance.h:
  • bridge/objc/objc_instance.mm: (ObjcInstance::~ObjcInstance): (ObjcInstance::virtualBegin): (ObjcInstance::virtualEnd):
  • bridge/runtime.cpp: (KJS::Bindings::Instance::setDidExecuteFunction): (KJS::Bindings::Instance::didExecuteFunction): (KJS::Bindings::Instance::setCurrentGlobalObject): Added. (KJS::Bindings::Instance::currentGlobalObject): Added. (KJS::Bindings::Instance::begin): (KJS::Bindings::Instance::end):
  • bridge/runtime.h: (KJS::Bindings::Instance::virtualBegin): Renamed from begin(). (KJS::Bindings::Instance::virtualEnd): Renamed from end(). We now store the currently active globalObject everytime we cross the runtime object boundary. To do this, we take advantage of the existing begin/end methods that are called when crossing this boundary, making begin set the current globalObject and then call the old begin, now called virtualBegin.
17:24 Changeset [31166] by beidson@apple.com

2008-03-19 Brady Eidson <beidson@apple.com>

Reviewed by Anders

Change SharedBuffer so the wrapping platform data aspect can be shared with all CoreFoundation platforms
(Mac and Windows instead of just Mac)

  • WebCore.vcproj/WebCore.vcproj: Add SharedBufferCF.cpp
  • WebCore.xcodeproj/project.pbxproj: Ditto
  • platform/SharedBuffer.cpp:
  • platform/SharedBuffer.h: Change the private c'tor from NSData to CFDataRef, other PLATFORM tweaks
  • platform/cf/SharedBufferCF.cpp: Added. (WebCore::SharedBuffer::SharedBuffer): (WebCore::SharedBuffer::createCFData): Non-Mac version of createCFData (WebCore::SharedBuffer::hasPlatformData): (WebCore::SharedBuffer::platformData): (WebCore::SharedBuffer::platformDataSize): (WebCore::SharedBuffer::maybeTransferPlatformData): (WebCore::SharedBuffer::clearPlatformData):
  • platform/mac/SharedBufferMac.mm: (WebCore::SharedBuffer::wrapNSData): Use the CFDataRef constructor via toll-free bridging (WebCore::SharedBuffer::createCFData): Mac-specific version of createCFData
16:44 Changeset [31165] by mitz@apple.com

2008-03-19 Dan Bernstein <mitz@apple.com>

  • build fix
  • Interfaces/WebKit.idl: Touched.
15:31 Changeset [31164] by aroben@apple.com

Fix a couple of bugs where the node highlight would appear when it shouldn't

There were at least two ways you could get the highlight to appear
when it shouldn't:

1) Selecting a node in the Inspector while the inspected WebView was

in a background tab.

2) Selecting a node in the Inspector, switching to another tab,

closing the Inspector, then switching back to the inspected
WebView's tab.

This patch fixes the above two issues, and possibly others.

show() and hide() are now private methods of WebNodeHighlight. They
are replaced by a single public method,
setShowsWhileWebViewIsVisible(bool). WebInspectorClient uses this to
tell the highlight whether it should be showing when the inspected
WebView is visible.

Reviewed by John Sullivan.

  • WebCoreSupport/WebInspectorClient.cpp: (WebInspectorClient::highlight): If the highlight is already showing, it just needs to update since the highlighted node has changed. If the highlight is not showing, call setShowsWhileWebViewIsVisible(true) so that the highlight will show when the WebView is shown. (WebInspectorClient::hideHighlight): Changed to call setShowsWhileWebViewIsVisible(false) instead of hide().
  • WebNodeHighlight.cpp: (WebNodeHighlight::WebNodeHighlight): Initialize new member, and initialize m_inspectedWebViewWindow to its final value here instead of in show(). (WebNodeHighlight::setShowsWhileWebViewIsVisible): Added. If we're not supposed to show ourselves when the WebView is visible, we hide ourselves and return. Otherwise, we make our visibility match the WebView's. (WebNodeHighlight::isWebViewVisible): Added. (WebNodeHighlight::show): Removed initialization of m_inspectedWebViewWindow (this is now done by our constructor). Added an assertion that we're supposed to show ourselves when the WebView is visible. (WebNodeHighlight::onWebViewShowWindow): If we shouldn't show ourselves when the WebView is visible, then we don't need to do anything at all when the WebView's visibility changes.
  • WebNodeHighlight.h:
15:31 Changeset [31163] by aroben@apple.com

Small WebNodeHighlight cleanup

Renamed the following methods:

visible() -> isShowing()
updateWindow() -> update()

Removed the window() method.

Added a new method, placeBehindWindow(HWND), that moves the highlight
overlay in the window z-order to be just behind the passed-in window.
WebInspectorClient calls this instead of doing the move directly using
the old window() method.

Reviewed by John Sullivan.

  • WebCoreSupport/WebInspectorClient.cpp: (WebInspectorClient::attachWindow): (WebInspectorClient::detachWindow): (WebInspectorClient::highlight): Call placeBehindWindow instead of calling SetWindowPos directly.
  • WebNodeHighlight.cpp: (WebNodeHighlight::show): (WebNodeHighlight::isShowing): (WebNodeHighlight::placeBehindWindow): Added. Code came from WebInspectorClient::highlight. (WebNodeHighlight::onWebViewWindowPosChanged): (WebNodeHighlight::onRootWindowPosChanged):
  • WebNodeHighlight.h:
15:28 Changeset [31162] by oliver@apple.com

Bug 17954: Canvas arc() with radius of 0 throws exception
http://bugs.webkit.org/show_bug.cgi?id=17954

Reviewed by Antti

Simple fix -- use >= instead of > when validating the radius.

14:57 Changeset [31161] by justin.garcia@apple.com

WebCore:

2008-03-19 Justin Garcia <justin.garcia@apple.com>

Reviewed by Oliver.

<rdar://problem/5794920> Acid3: Assertion failure in VisiblePosition::previous when clicking on results (17004)


The position inside an empty inline-block was a candidate, but upstream and downstream
would move across it without stopping. This confused canonicalPosition, since no more
than two candidates should have the same upstream/downstream (be visually equivalent).


Code was added intentionally in isCandidate to make VisiblePositions inside empty
inline-blocks, so we need to make upstream/downstream understand that.

  • dom/Position.cpp: (WebCore::endsOfNodeAreVisuallyDistinctPositions): upstream and downstream used to only stop when entering or leaving a non-inline element (referred to as a "block"). We must also avoid entering or leaving an empty inline-block. This will allow a VisiblePosition there, to match up with what the code in isCandidate intended. (WebCore::enclosingVisualBoundary): Removed enclosingBlock and replaced it with this. (WebCore::Position::upstream): Added better comments, called the new functions. (WebCore::Position::downstream): Ditto.
  • dom/Position.h:

LayoutTests:

2008-03-19 Justin Garcia <justin.garcia@apple.com>

Reviewed by Oliver.


<rdar://problem/5794920> Acid3: Assertion failure in VisiblePosition::previous when clicking on results (17004)

  • editing/pasteboard/4989774.html: Updated to wait for the images to load before trying to copy it.
  • editing/selection/5794920-1-expected.txt: Added.
  • editing/selection/5794920-1.html: Added.
14:51 Changeset [31160] by mitz@apple.com

2008-03-19 Dan Bernstein <mitz@apple.com>

Rubber-stamped by John Sullivan.

  • change CSS property and value keyword constants from all-caps with underscores to intra-caps.
  • css/makeprop.pl:
  • css/makevalues.pl:
  • All files using the constants
13:39 Changeset [31159] by aroben@apple.com

Make clicking anywhere in a row in the DOM tree select that row's node

We now have mousedown and dblclick event listeners on the root of the
tree that forward the event to the node on the row the mouse is over.

Reviewed by Tim Hatcher.

  • page/inspector/DocumentPanel.js: (WebInspector.DocumentPanel): Added a dblclick and mousedown event listeners to the root of the tree. (WebInspector.DocumentPanel._treeElementFromEvent): Added. Finds the tree element for the row underneath the mouse. (WebInspector.DocumentPanel._ondblclick): Added. Sends the dblclick event on to the tree element in the current row. (WebInspector.DocumentPanel._onmousedown): Added. Selects the tree element in the current row.
  • page/inspector/treeoutline.js: (TreeOutline.treeElementFromPoint): Added. (TreeElement.treeElementSelected): Changed to call TreeElement.isEventWithinDisclosureTriangle, and added an early return. (TreeElement.treeElementToggled): Ditto. (TreeElement.isEventWithinDisclosureTriangle): Added.
  • page/inspector/utilities.js: (Node.enclosingNodeOrSelfWithNodeNameInArray): Added. (Node.enclosingNodeOrSelfWithNodeName): Now just calls enclosingNodeOrSelfWithNodeNameInArray. (Elemnt.get totalOffsetLeft): Added. (Elemnt.get totalOffsetTop): Added.
13:28 Changeset [31158] by mrowe@apple.com

Fix http://bugs.webkit.org/show_bug.cgi?id=17816 (libWebCoreSQLite3.a is 2-architecture universal binary (not 4-architecture)).

Rubber-stamped by Sam Weinig.

  • libWebCoreSQLite3.a: Land a 4-way fat binary.
11:40 Changeset [31157] by mitz@apple.com

WebCore:

Reviewed by Sam Weinig.

Test: fast/repaint/line-flow-with-floats-10.html

  • rendering/bidi.cpp: (WebCore::RenderBlock::determineStartPosition): Removed bogus assertion. If the float's top margin has changed and it has not been repositioned yet, we do not have its new y position.

LayoutTests:

Reviewed by Sam Weinig.

  • fast/repaint/line-flow-with-floats-10.html: Added.
  • platform/mac/fast/repaint/line-flow-with-floats-10-expected.checksum: Added.
  • platform/mac/fast/repaint/line-flow-with-floats-10-expected.png: Added.
  • platform/mac/fast/repaint/line-flow-with-floats-10-expected.txt: Added.
11:24 Changeset [31156] by adachan@apple.com

2008-03-19 Ada Chan <adachan@apple.com>

Added a method to paint WebView content specified by
the document rect into a device context.

Reviewed by Darin.

  • Interfaces/IWebViewPrivate.idl:
  • WebView.cpp: (WebView::paintDocumentRectToContext):
  • WebView.h:
10:58 Changeset [31155] by hyatt@apple.com

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

New implementation of full page zoom. Because of how much doesn't transform when zooming, and because
of the need to obey viewport constraints, I decided to take a completely different approach. Now CSS
lengths and intrinsic sizes are simply adjusted by the zoom factor. This approach works much better and
avoids pixel cracks more than the old approach. In addition widgets "just work", namely plugins zoom
and scrollbars do not.

This patch also implements the IE zoom CSS property. This property allows fine-grained control over
zooming at the element level. It takes values of normal | <number> | <percentage> to match WinIE. In
addition, in the vein of text-size-adjust for text zooming, I have extended the zoom property with an
extra value, reset. The reset keyword can be used to prevent a section of the page from scaling at all
when a zoom is applied.

Reviewed by olliej

  • css/CSSComputedStyleDeclaration.cpp: (WebCore::): (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Support the new 'zoom' property for getComputedStyle.
  • css/CSSParser.cpp: (WebCore::CSSParser::parseValue): Code that parses the 'zoom' property.
  • css/CSSPrimitiveValue.cpp: (WebCore::CSSPrimitiveValue::computeLengthInt): (WebCore::CSSPrimitiveValue::computeLengthIntForLength): (WebCore::CSSPrimitiveValue::computeLengthShort): (WebCore::CSSPrimitiveValue::computeLengthFloat): (WebCore::CSSPrimitiveValue::computeLengthDouble):
  • css/CSSPrimitiveValue.h: Extend all of the computeLength methods to take a multiplier so that lengths can be adjusted by the zoom factor.
  • css/CSSPropertyNames.in: Add the new zoom property to the list of properties we understand.
  • css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyDeclarations): (WebCore::CSSStyleSelector::applyProperty): (WebCore::CSSStyleSelector::mapBackgroundSize): (WebCore::CSSStyleSelector::mapBackgroundXPosition): (WebCore::CSSStyleSelector::mapBackgroundYPosition): (WebCore::CSSStyleSelector::getComputedSizeFromSpecifiedSize):
  • css/CSSStyleSelector.h: (WebCore::CSSStyleSelector::setStyle): Pass in the zoom factor when computing all lengths in CSS.
  • css/CSSValueKeywords.in: Add support for the 'reset' keyword of the zoom property.
  • dom/Document.cpp: (WebCore::Document::recalcStyle): Set the 'zoom' CSS property on the RenderView. This is how we implement full page zoom.
  • html/CanvasRenderingContext2D.cpp: (WebCore::size): Make sure the back end canvas size ignores zooming when rendering images.
  • html/HTMLImageElement.cpp: (WebCore::HTMLImageElement::width): (WebCore::HTMLImageElement::height): (WebCore::HTMLImageElement::naturalWidth): (WebCore::HTMLImageElement::naturalHeight): Use the unzoomed width/height if we have no style information in HTMLImageElement.cpp.
  • loader/CachedImage.cpp: (WebCore::CachedImage::ref): (WebCore::CachedImage::imageSize): (WebCore::CachedImage::imageRect):
  • loader/CachedImage.h: (WebCore::CachedImage::canRender): Force access to the CachedImage metrics to take a multiplier so that people have to think about the zoom factor. The "intrinsic size" of the image then takes that into account.
  • loader/ImageDocument.cpp: (WebCore::ImageTokenizer::finish): (WebCore::ImageDocument::scale): (WebCore::ImageDocument::resizeImageToFit): (WebCore::ImageDocument::imageChanged): (WebCore::ImageDocument::restoreImageSize): (WebCore::ImageDocument::imageFitsInWindow): Make sure image documents respect the zoom.
  • page/AnimationController.cpp: (WebCore::ImplicitAnimation::animate): Make the 'zoom' CSS property work with CSS transitions.
  • page/Frame.h: (WebCore::Frame::pageZoomFactor): (WebCore::Frame::textZoomFactor): Add accessors for obtaining the pageZoom vs. textZoom.
  • page/FrameView.cpp: (WebCore::FrameView::adjustViewSize): Remove the old zoom implementation that used transforms.
  • page/mac/WebCoreAXObject.mm: (-[WebCoreAXObject accessibilityIsIgnored]): Pass in the zoom factor.
  • rendering/InlineFlowBox.cpp: (WebCore::InlineFlowBox::paintBackground): (WebCore::InlineFlowBox::paintBoxDecorations): Pass in the zoom factor when testing for size.
  • rendering/RenderBox.cpp: (WebCore::RenderBox::calculateBackgroundSize): (WebCore::RenderBox::imageChanged): (WebCore::RenderBox::paintBackgroundExtended): (WebCore::RenderBox::calcHeight):
  • rendering/RenderFrameSet.cpp: (WebCore::RenderFrameSet::layout):
  • rendering/RenderHTMLCanvas.cpp: (WebCore::RenderHTMLCanvas::canvasSizeChanged):
  • rendering/RenderHTMLCanvas.h: (WebCore::RenderHTMLCanvas::renderName): (WebCore::RenderHTMLCanvas::intrinsicSizeChanged):
  • rendering/RenderImage.cpp: (WebCore::RenderImage::setImageSizeForAltText): (WebCore::RenderImage::imageChanged): (WebCore::RenderImage::calcReplacedWidth): (WebCore::RenderImage::calcReplacedHeight):
  • rendering/RenderImage.h: (WebCore::RenderImage::intrinsicSizeChanged):
  • rendering/RenderListMarker.cpp: (WebCore::RenderListMarker::layout): (WebCore::RenderListMarker::imageChanged): (WebCore::RenderListMarker::getRelativeMarkerRect):
  • rendering/RenderObject.cpp: (WebCore::RenderObject::mustRepaintBackgroundOrBorder): (WebCore::RenderObject::paintBorder): Pass in the zoom factor when testing for size.
  • rendering/RenderReplaced.cpp: (WebCore::RenderReplaced::RenderReplaced): (WebCore::RenderReplaced::setStyle): (WebCore::RenderReplaced::intrinsicSizeChanged):
  • rendering/RenderReplaced.h: Added a new call when the zoom factor changes, intrinsicSizeChanged(). Replaced element subclasses respond to this via overrides.
  • rendering/RenderStyle.cpp: (WebCore::StyleVisualData::StyleVisualData): (WebCore::StyleInheritedData::StyleInheritedData): (WebCore::StyleInheritedData::operator==): (WebCore::RenderStyle::diff):
  • rendering/RenderStyle.h: (WebCore::StyleVisualData::operator==): (WebCore::RenderStyle::zoom): (WebCore::RenderStyle::zoomInEffect): (WebCore::RenderStyle::setZoom): (WebCore::RenderStyle::setZoomInEffect): (WebCore::RenderStyle::initialZoom): Support for 'zoom' in the RenderStyle. "zoomInEffect" represents the computed zoom taking into account all the zooms specified on ancestors.
  • rendering/RenderTableCol.cpp: (WebCore::RenderTableCol::imageChanged):
  • rendering/RenderTableRow.cpp: (WebCore::RenderTableRow::imageChanged):
  • rendering/RenderTableSection.cpp: (WebCore::RenderTableSection::imageChanged):
  • rendering/RenderVideo.h: (WebCore::RenderVideo::intrinsicSizeChanged): Pass in the zoom factor.
  • rendering/RenderView.cpp: (WebCore::RenderView::calcHeight): (WebCore::RenderView::calcWidth): (WebCore::RenderView::layout): (WebCore::RenderView::viewHeight): (WebCore::RenderView::viewWidth):
  • rendering/RenderView.h: (WebCore::RenderView::zoomFactor): Back out the old implementation.
10:41 Google Summer of Code 2008 edited by aroben@apple.com
Made JS/CSS syntax highlighting a developer tools project (diff)
10:34 Google Summer of Code 2008 edited by aroben@apple.com
Added project ideas about syntax highlighting (diff)
09:29 Changeset [31154] by aroben@apple.com

Rename firstParent* methods to enclosingNode*

Rubberstamped by John Sullivan.

  • page/inspector/ConsolePanel.js:
  • page/inspector/DocumentPanel.js:
  • page/inspector/NetworkPanel.js:
  • page/inspector/inspector.js:
  • page/inspector/utilities.js:
07:42 Changeset [31153] by mitz@apple.com

WebCore:

Reviewed by John Sullivan.

  • fix <rdar://problem/5805070> CrashTracer: [USER] 33 crashes in Safari at com.apple.WebCore: WebCore::FrameView::layout + 431

Test: fast/dynamic/subtree-parent-static-y.html

  • rendering/RenderObject.cpp: (WebCore::RenderObject::markContainingBlocksForLayout): Avoid calling this method on the parent if the parent is the new layout subtree root, which would result in marking all the way to the top, when it should actually do nothing.

LayoutTests:

Reviewed by John Sullivan.

  • test for <rdar://problem/5805070> CrashTracer: [USER] 33 crashes in Safari at com.apple.WebCore: WebCore::FrameView::layout + 431
  • fast/dynamic/subtree-parent-static-y.html: Added.
  • platform/mac/fast/dynamic/subtree-parent-static-y-expected.checksum: Added.
  • platform/mac/fast/dynamic/subtree-parent-static-y-expected.png: Added.
  • platform/mac/fast/dynamic/subtree-parent-static-y-expected.txt: Added.
02:37 Changeset [31152] by mrowe@apple.com

2008-03-19 Mark Rowe <mrowe@apple.com>

Reviewed by Oliver Hunt.

Use WTF::Unicode abstraction rather than using ICU functions directly.

  • html/PreloadScanner.cpp: (WebCore::PreloadScanner::tokenize):
02:22 Changeset [31151] by mrowe@apple.com

Attempt to fix the Gtk build.

00:48 Changeset [31150] by mrowe@apple.com

2008-03-19 Jasper Bryant-Greene <jasper@unix.geek.nz>

Reviewed by Maciej Stachowiak.

Fix http://bugs.webkit.org/show_bug.cgi?id=17941
Bug 17941: C++-style comments in JavaScriptCore API

  • API/JSBase.h: Remove C++-style comments from public JavaScriptCore API, replacing with standard C90 block comments.
00:18 Changeset [31149] by mrowe@apple.com

2008-03-19 Mark Rowe <mrowe@apple.com>

Reviewed by Oliver Hunt.

Fix http://bugs.webkit.org/show_bug.cgi?id=17939
Bug 17939: Crash decompiling "const a = 1, b;"

  • kjs/nodes2string.cpp: (KJS::ConstDeclNode::streamTo): Null-check the correct variable.

2008-03-19 Mark Rowe <mrowe@apple.com>

Reviewed by Oliver Hunt.

Test for http://bugs.webkit.org/show_bug.cgi?id=17939
Bug 17939: Crash decompiling "const a = 1, b;"

  • fast/js/function-toString-parentheses-expected.txt:
  • fast/js/resources/function-toString-parentheses.js:

03/18/08:

23:17 Changeset [31148] by oliver@apple.com

Bug 17929: Incorrect decompilation with |const|, comma
http://bugs.webkit.org/show_bug.cgi?id=17929

Reviewed by Mark Rowe

There were actually two bugs here. First we weren't correctly handling const
nodes with multiple declarations. The second issue was caused by us not
giving the correct precedence to the initialisers.

21:23 Changeset [31147] by darin@apple.com

JavaScriptCore:

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

Reviewed by Maciej.

  • Speed up JavaScript built-in properties by changing the hash table to take advantage of the identifier objects

5% speedup for Acid3 test 26

  • JavaScriptCore.exp: Updated.
  • kjs/create_hash_table: Compute size of hash table large enough so that there are no collisions, but don't generate the hash table.
  • kjs/identifier.h: Made the add function that returns a PassRefPtr public.
  • kjs/lexer.cpp: (KJS::Lexer::lex): Updated for change to HashTable interface.
  • kjs/lookup.cpp: (KJS::HashTable::changeKeysToIdentifiers): Added. Finds the identifier for each property so the equality comparision can be done with pointer comparision.
  • kjs/lookup.h: Made the key be a union of char* with UString::Rep* so it can hold identifiers. Added a keysAreIdentifiers flag to the HashTable. Changed the Lookup functions to be member functions of HashTable instead.
  • kjs/object.cpp: (KJS::JSObject::deleteProperty): Update for change to HashTable. (KJS::JSObject::findPropertyHashEntry): Ditto. (KJS::JSObject::getPropertyAttributes): Ditto. (KJS::JSObject::getPropertyNames): Ditto.

WebCore:

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

Reviewed by Maciej.

  • Speed up JavaScript built-in properties by changing the hash table to take advantage of the identifier objects

5% speedup for Acid3 test 26

  • bindings/js/JSDOMWindowBase.cpp: (WebCore::JSDOMWindowBase::getOwnPropertySlot): Update for change to HashTable. (WebCore::JSDOMWindowBase::put): Ditto.
  • bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::customGetOwnPropertySlot): Ditto.
  • bindings/js/JSHTMLInputElementBase.cpp: (WebCore::JSHTMLInputElementBase::getOwnPropertySlot): Ditto.
  • bindings/js/JSHistoryCustom.cpp: (WebCore::JSHistory::customGetOwnPropertySlot): Ditto.
  • bindings/js/JSLocation.cpp: (WebCore::JSLocation::customGetOwnPropertySlot): Ditto. (WebCore::JSLocation::put): Ditto.
  • bindings/js/kjs_binding.cpp: (WebCore::nonCachingStaticFunctionGetter): Ditto.
  • bindings/scripts/CodeGeneratorJS.pm: Same changes as in the create_hash_table script.
20:50 Changeset [31146] by pewtermoose@webkit.org

2008-03-18 Matt Lilek <webkit@mattlilek.com>

Fix the Gtk build for real this time.

  • platform/network/curl/AuthenticationChallenge.h:
18:50 Changeset [31145] by mrowe@apple.com

Fix http://bugs.webkit.org/show_bug.cgi?id=17925 and http://bugs.webkit.org/show_bug.cgi?id=17927.

  • Bug 17925: Crash in KJS::JSObject::put after setting this.proto
  • Bug 17927: Hang after attempting to create circular proto
  • kjs/object.cpp:

(KJS::JSObject::put): Silently ignore attempts to set proto to a non-object, non-null value.
Return after setting the exception when an attempt to set a cyclic proto is detected so that
the cyclic value is not set.

18:42 Changeset [31144] by weinig@apple.com

WebCore:

2008-03-18 Sam Weinig <sam@webkit.org>

Reviewed by Anders Carlsson.

Fix for http://bugs.webkit.org/show_bug.cgi?id=17057
REGRESSION: Frequent random crashes in WebCore::JSNodeList::indexGetter
<rdar://problem/5725058>

Tests: fast/dom/NodeList/5725058-crash-scenario-1.html

fast/dom/NodeList/5725058-crash-scenario-2.html
fast/dom/NodeList/5725058-crash-scenario-3.html

  • dom/ChildNodeList.cpp: (WebCore::ChildNodeList::ChildNodeList):
  • dom/ChildNodeList.h: Remove rootNodeChildrenChanged() method and fix the constructor to not pass in a needsNotifications argument to DynamicNodeList, as it no longer takes one.
  • dom/ClassNodeList.cpp: (WebCore::ClassNodeList::ClassNodeList): Don't pass the needsNotifications argument to DynamicNodeList.
  • dom/ContainerNode.cpp: (WebCore::ContainerNode::childrenChanged): Rename call to hasNodeLists() to hasNodeListCaches().
  • dom/Document.cpp: (WebCore::Document::Document): (WebCore::Document::~Document): Zero out the m_document variable to signify to destructors down the destruction chain that this is a Document type node being destructed, and thus, accessing document() is prohibited.
  • dom/Document.h: (WebCore::Document::addNodeListCache): Renamed from addNodeList. (WebCore::Document::removeNodeListCache): Renamed from removeNodeList, adds assertion. (WebCore::Document::hasNodeListCaches): Renamed from hasNodeListCaches. Rename m_numNodeLists to m_numNodeListCaches.
  • dom/DynamicNodeList.cpp: (WebCore::DynamicNodeList::DynamicNodeList): (WebCore::DynamicNodeList::~DynamicNodeList): (WebCore::DynamicNodeList::invalidateCache): (WebCore::DynamicNodeList::Caches::Caches):
  • dom/DynamicNodeList.h: (WebCore::DynamicNodeList::hasOwnCaches): Remove the needsNotifications concept from DynamicNodeList, instead, manually invalidate the cache for lists that own their own cache.
  • dom/NameNodeList.cpp: (WebCore::NameNodeList::NameNodeList):
  • dom/NameNodeList.h: Remove rootNodeAttributeChanged() method and fix the constructor to not pass in a needsNotifications argument to DynamicNodeList, as it no longer takes one.
  • dom/Node.cpp: (WebCore::Node::~Node): Decrement the document's nodeListCache count if we had a NodeListsNodeData cache and this is not the Document being destructor, as tagged by a null m_document. (WebCore::Node::childNodes): Increment the document's nodeListCache count if we need create the NodeListsNodeData. (WebCore::Node::registerDynamicNodeList): Increment the document's nodeListCache count if we need create the NodeListsNodeData. Change to invalidate all the caches, instead of just the ChildNodeList, if document has had no NodeListCaches. (WebCore::Node::unregisterDynamicNodeList): Change to remove the cache from the m_listsWithCaches set if it is owned by the NodeList and clear the m_nodeLists if it is empty. (WebCore::Node::notifyLocalNodeListsAttributeChanged): Move logic to NodeListsNodeData::invalidateAttributeCaches and clear the cache pointer if it is empty. (WebCore::Node::notifyLocalNodeListsChildrenChanged): Move logic to NodeListsNodeData::invalidateCaches and clear the cache pointer if it is empty. (WebCore::Node::notifyNodeListsChildrenChanged): Cleanup. (WebCore::Node::getElementsByName): Increment the document's nodeListCache count if we need create the NodeListsNodeData. (WebCore::Node::getElementsByClassName): Increment the document's nodeListCache count if we need create the NodeListsNodeData.

(WebCore::NodeListsNodeData::invalidateCaches): Added.
(WebCore::NodeListsNodeData::invalidateAttributeCaches): Added.
(WebCore::NodeListsNodeData::isEmpty): Added.

  • dom/TagNodeList.cpp: (WebCore::TagNodeList::TagNodeList): Don't pass the needsNotifications argument to DynamicNodeList.

LayoutTests:

2008-03-18 Sam Weinig <sam@webkit.org>

Reviewed by Anders Carlsson.

Tests for http://bugs.webkit.org/show_bug.cgi?id=17057
REGRESSION: Frequent random crashes in WebCore::JSNodeList::indexGetter
<rdar://problem/5725058>

  • fast/dom/NodeList/5725058-crash-scenario-1-expected.txt: Added.
  • fast/dom/NodeList/5725058-crash-scenario-1.html: Added.
  • fast/dom/NodeList/5725058-crash-scenario-2-expected.txt: Added.
  • fast/dom/NodeList/5725058-crash-scenario-2.html: Added.
  • fast/dom/NodeList/5725058-crash-scenario-3-expected.txt: Added.
  • fast/dom/NodeList/5725058-crash-scenario-3.html: Added.
17:43 Changeset [31143] by pewtermoose@webkit.org

2008-03-18 Matt Lilek <webkit@mattlilek.com>

Not reviewed, build fix.

  • platform/network/curl/AuthenticationChallenge.h:
16:44 Changeset [31142] by weinig@apple.com

2008-03-18 Sam Weinig <sam@webkit.org>

Reviewed by Darin Adler.

Make domListEnumeration.html test not depend on the order of property enumeration
by sorting the result array.

  • fast/dom/domListEnumeration-expected.txt:
  • fast/dom/resources/domListEnumeration.js:
16:22 Changeset [31141] by pewtermoose@webkit.org

WebCore:

2008-03-18 Brent Fulgham <bfulgham@gmail.com>

Reviewed by Adam Roben.

Provide some stub implementations for things that WebKit
uses for performing authentication/challenge activities. This
is in support of http://bugs.webkit.org/show_bug.cgi?id=17837

  • platform/network/ResourceHandle.h:
  • platform/network/curl/AuthenticationChallenge.h: (WebCore::AuthenticationChallenge::AuthenticationChallenge): (WebCore::AuthenticationChallenge::sourceHandle):

WebKit/win:

2008-03-18 Brent Fulgham <bfulgham@gmail.com>

Reviewed by Adam Roben.

Provide some stub implementations for things that WebKit
uses for performing authentication/challenge activities. This
is in support of http://bugs.webkit.org/show_bug.cgi?id=17837

  • WebDataSource.cpp:
  • WebError.cpp: Conditionalize CFNetwork-specific logic
  • WebURLAuthenticationChallenge.cpp: Conditionalize constructor for authentication/challenge member. (WebURLAuthenticationChallenge::initWithAuthenticationChallenge):
  • WebURLResponse.cpp: Remove CFNetwork-specific logic.
  • WebURLResponse.h: Conditionalize CFNetwork-specific member.
  • WebView.cpp: Conditionalize CFNetwork-specific network protocol test. (WebView::canHandleRequest):
15:31 Changeset [31140] by eric@webkit.org

Add missing changelog

15:30 Changeset [31139] by eric@webkit.org

Reviewed by Oliver.

Fix SVGImage crash seen once, and obvious via code inspection.

I was not able to find a test case for this.

  • svg/graphics/SVGImage.cpp: (WebCore::SVGImage::setContainerSize): (WebCore::SVGImage::usesContainerSize): (WebCore::SVGImage::hasRelativeWidth): (WebCore::SVGImage::hasRelativeHeight):
15:03 Google Summer of Code 2008 edited by jasper@unix.geek.nz
(diff)
14:52 Google Summer of Code 2008 edited by catfish.man@gmail.com
Add calc() to the idea list (diff)
14:43 Changeset [31138] by mrowe@apple.com

2008-03-18 Rodney Dawes <dobey@wayofthemonkey.com>

Fix Qt build after r31123.

Add PluginView methods to TemporaryLinkStubs.

  • platform/qt/TemporaryLinkStubs.cpp:
14:25 Changeset [31137] by weinig@apple.com

2008-03-18 Sam Weinig <sam@webkit.org>

Reviewed by Darin Adler.

  • Speed up JavaScript prototype and constructor object creation using a static Identifier in the self() methods to avoid the cost of creating one from a c-string each time.

5% speedup for Acid3 test 26

  • bindings/scripts/CodeGeneratorJS.pm:
14:10 Changeset [31136] by mjs@apple.com

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

Reviewed by Oliver.


  • inline ActivationImp::init for 0.8% SunSpider speedup
  • kjs/Activation.h: (KJS::ActivationImp::init): Moved here from function.cpp
  • kjs/function.cpp:
13:57 Changeset [31135] by antti@apple.com

2008-03-18 Antti Koivisto <antti@apple.com>

Reviewed by Mark Rowe.

Enable preloading for other platforms besides Mac.

  • GNUmakefile.am:
  • WebCore.pro:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCoreSources.bkl:
  • html/HTMLTokenizer.cpp:
  • html/HTMLTokenizer.h:
  • html/PreloadScanner.cpp: (WebCore::PreloadScanner::tokenize):
13:50 Changeset [31134] by hyatt@apple.com

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

Add support for a preference in WebKit that can be used in nightly builds to test full page
zoom.

Reviewed by Antti

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebView.mm: (-[WebView setTextSizeMultiplier:]): (-[WebView canMakeTextSmaller]): (-[WebView makeTextSmaller:]): (-[WebView canMakeTextLarger]): (-[WebView makeTextLarger:]): (-[WebView canMakeTextStandardSize]): (-[WebView makeTextStandardSize:]):
12:58 Known incompatibilities between open-source WebKit and Safari edited by ddkilzer@apple.com
(diff)
12:21 Changeset [31133] by mrowe@apple.com

Release tag for Safari 3.1.

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

WebCore:

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

Reviewed by Adele Peterson.

  • fix <rdar://problem/5805127> REGRESSION (r31116): Assertion failure (floatIndex < floats.size()) in RenderBlock::determineStartPosition() at digg.com

Test: fast/dynamic/floating-to-positioned.html

  • rendering/RenderObject.cpp: (WebCore::RenderObject::setStyle): Added code to remove a float from object lists if its position property changes to something other than static, since then it ceases to be a float.

LayoutTests:

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

Reviewed by Adele Peterson.

  • test for <rdar://problem/5805127> REGRESSION (r31116): Assertion failure (floatIndex < floats.size()) in RenderBlock::determineStartPosition() at digg.com
  • fast/dynamic/floating-to-positioned.html: Added.
  • platform/mac/fast/dynamic/floating-to-positioned-expected.checksum: Added.
  • platform/mac/fast/dynamic/floating-to-positioned-expected.png: Added.
  • platform/mac/fast/dynamic/floating-to-positioned-expected.txt: Added.
11:04 Changeset [31131] by aroben@apple.com

Windows build fix after r31123

  • plugins/win/PluginViewWin.cpp: Add back MozillaUserAgent.
10:57 Changeset [31130] by jhoneycutt@apple.com

2008-03-18 Rodney Dawes <dobey@wayofthemonkey.com>

Reviewed and landed by jhoneycutt.

Update to check if the MIME type is supported by a plugin.

  • WebCoreSupport/FrameLoaderClientGtk.cpp: (FrameLoaderClient::objectContentType):
09:42 Changeset [31129] by aroben@apple.com

Focus the Inspector's WebView whenever the Inspector window is focused

Reviewed by Mitz.

  • WebCoreSupport/WebInspectorClient.cpp: (WebInspectorClient::onSetFocus): Send focus to the WebView. (WebInspectorWndProc): Added a handler for WM_SETFOCUS.
  • WebCoreSupport/WebInspectorClient.h:
09:40 Changeset [31128] by aroben@apple.com

Fix Bug 14276: Element highlight also covers Web inspector

<http://bugs.webkit.org/show_bug.cgi?id=14276>
<rdar://5712796>

Also fixes <rdar://5622837> Browser window comes to front when node
highlight appears, potentially blocking Inspector

Reviewed by Mitz.

  • WebCoreSupport/WebInspectorClient.cpp: (WebInspectorClient::highlight): After showing the highlight, reposition it just behind the Inspector's window.
  • WebNodeHighlight.cpp: (WebNodeHighlight::show):
    • Changed flags passed to CreateWindowEx to not specify WS_VISIBLE. This is not needed because we'll show the window later in this function.
    • Removed call to SetWindowPos that tried to position the overlay just in front of the WebView. This is now handled by WebInspectorClient.
    • Changed call to ShowWindow to use SetWindowPos so that we can pass SWP_NOACTIVATE. This prevents the highlight from jumping in front of the Inspector every time it's shown.
  • WebNodeHighlight.h: Added a method to get the highlight's HWND.
09:13 Changeset [31127] by mitz@apple.com

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

Reviewed by Darin Adler.

  • eliminate RenderFlow::m_clear
  • rendering/RenderBlock.cpp: (WebCore::RenderBlock::layoutBlock): Removed code to set m_clear. (WebCore::RenderBlock::newLine): Added a 'clear' parameter.
  • rendering/RenderBlock.h:
  • rendering/RenderFlow.h: (WebCore::RenderFlow::RenderFlow): Removed initialization of m_clear.
  • rendering/bidi.cpp: (WebCore::RenderBlock::layoutInlineChildren): Added a local 'clear' variable, passing a pointer to it to findNextLineBreak() and its value to newLine(). (WebCore::RenderBlock::findNextLineBreak): Added a 'clear' parameter, which this method adjusts when it encounters a <br>.
08:20 Changeset [31126] by hausmann@webkit.org

Fix the Qt build.

07:50 Changeset [31125] by pewtermoose@webkit.org

2008-03-18 Rodney Dawes <dobey@wayofthemonkey.com>

Fix Mac build from commit of r31123.

Add a typedef for NSView* to PlatformWidget, remove duplicate PluginMessageThrottlerWin definition.

  • platform/Widget.h:
  • WebCore.vcproj/WebCore.vcproj:
07:46 Changeset [31124] by hausmann@webkit.org

Fix the Qt build.

Including config.h like in the other .cpp files gets the #ifdeffery
correct for rand_s.

07:21 Changeset [31123] by pewtermoose@webkit.org

WebCore:

2008-03-18 Rodney Dawes <dobey@wayofthemonkey.com>

Reviewed by Jon Honeycutt.

Add PluginView.cpp and npapi.cpp to build files.
Copy win/PluginViewWin.cpp to PluginView.cpp for shared code.
Split Windows specific code out of PluginView.cpp.
Add #if USE(NPOBJECT) around dependant code.
Use npruntime_internal.h instead of npapi.h.
Add PlatformWidget typedef to Widget.h.
Update WidgetGtk.cpp for the PlatformWidget usage.
Add needed methods to TemporaryLinkStubs for GTK+ port.

  • GNUmakefile.am:
  • WebCore.pro:
  • WebCoreSources.bkl:
  • WebCore.vcproj/WebCore.vcproj:
  • plugins/win/PluginViewWin.cpp:
  • plugins/PluginView.cpp:
  • plugins/PluginView.h:
  • plugins/npapi.cpp:
  • platform/Widget.h:
  • platform/gtk/WidgetGtk.cpp:
  • platform/gtk/TemporaryLinkStubs.cpp:

WebKit/gtk:

2008-03-18 Rodney Dawes <dobey@wayofthemonkey.com>

Reviewed by Jon Honeycutt.

Update setContainingWindow() calls to pass a GtkWidget.

  • webkit/webkitwebframe.cpp: (webkit_web_frame_new): (webkit_web_frame_init_with_web_view):
06:47 Changeset [31122] by darin@apple.com

JavaScriptCore:

2008-03-17 Darin Adler <darin@apple.com>

Reviewed by Maciej.

JavaScriptCore changes to support a WebCore speedup.

  • JavaScriptCore.exp: Export the UString::Rep::computeHash function.
  • wtf/HashSet.h: Added a find and contains function that take a translator, like the add function.

WebCore:

2008-03-17 Darin Adler <darin@apple.com>

Reviewed by Maciej.

  • speed up document property fetching (eliminate the AtomicString objects made during document property lookup)

3% speedup for Acid3 test 26

  • bindings/js/JSDOMWindowBase.cpp: (WebCore::JSDOMWindowBase::getOwnPropertySlot): Use AtomicString::find to locate the AtomicString, only if already present. Also call the new faster versions of the hasNamedItem and hasElementWithId functions that don't ref/deref the AtomicStringImpl, get inlined, etc.
  • bindings/js/JSHTMLDocumentCustom.cpp: (WebCore::JSHTMLDocument::canGetItemsForName): Ditto. (WebCore::writeHelper): Use a Vector instead of a String to build up the string to avoid the bad performance of string append.
  • dom/Document.cpp: Tweaked code and comments a bit. Nothing substantive.
  • dom/Document.h: Added new hasElementWithId function that's faster than getElementById because it doesn't ref/deref the AtomicStringImpl*, gets inlined, doesn't have to handle the 0 case, and doesn't try to return the element pointer (just a boolean).
  • html/HTMLAppletElement.cpp: (WebCore::HTMLAppletElement::parseMappedAttribute): Use AtomicString consistently. Also renamed the data member for clarity. (WebCore::HTMLAppletElement::insertedIntoDocument): Ditto. (WebCore::HTMLAppletElement::removedFromDocument): Ditto.
  • html/HTMLAppletElement.h: Ditto.
  • html/HTMLDocument.cpp: (WebCore::addItemToMap): Use AtomicString instead of String. (WebCore::removeItemFromMap): Ditto. (WebCore::HTMLDocument::addNamedItem): Updated for member name change. (WebCore::HTMLDocument::removeNamedItem): Ditto. (WebCore::HTMLDocument::addExtraNamedItem): Ditto. (WebCore::HTMLDocument::removeExtraNamedItem): Ditto. (WebCore::HTMLDocument::clear): Added. Moved code here from the JavaScript bindings. If we're going to have an empty placeholder function, there's no reason to have it in the bindings instead of here.
  • html/HTMLDocument.h: Added clear. Changed the named item function arguments to AtomicString insted of String. Changed the NameCountMap to use AtomicStringImpl* instead of StringImpl*. Renamed the data members to add a m_ prefix and remove the needless doc prefix. Added hasNamedItem and hasExtraNamedItem functions that are inlined and faster than the old idiom because they doesn't ref/deref the AtomicStringImpl*, get inlined, and don't have to handle the 0 case.
  • html/HTMLDocument.idl: Removed the [Custom] attribute on clear and took it out of the JavaScript-specific section.
  • html/HTMLEmbedElement.cpp: (WebCore::HTMLEmbedElement::parseMappedAttribute): Use AtomicString consistently. Also renamed the data member for clarity. (WebCore::HTMLEmbedElement::insertedIntoDocument): Ditto. (WebCore::HTMLEmbedElement::removedFromDocument): Ditto.
  • html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::insertedIntoDocument): Ditto. (WebCore::HTMLFormElement::removedFromDocument): Ditto. (WebCore::HTMLFormElement::parseMappedAttribute): Ditto.
  • html/HTMLFormElement.h: Ditto.
  • html/HTMLFrameElementBase.cpp: (WebCore::HTMLFrameElementBase::openURL): Renamed m_name to m_frameName for clarity, since the frame name is not the same as the name attribute. (WebCore::HTMLFrameElementBase::parseMappedAttribute): Ditto. (WebCore::HTMLFrameElementBase::setNameAndOpenURL): Ditto.
  • html/HTMLFrameElementBase.h: Ditto.
  • html/HTMLIFrameElement.cpp: (WebCore::HTMLIFrameElement::parseMappedAttribute): Use AtomicString consistently. Also renamed the data member for clarity. (WebCore::HTMLIFrameElement::insertedIntoDocument): Ditto. (WebCore::HTMLIFrameElement::removedFromDocument): Ditto.
  • html/HTMLIFrameElement.h: Ditto.
  • html/HTMLImageElement.cpp: (WebCore::HTMLImageElement::parseMappedAttribute): Ditto. (WebCore::HTMLImageElement::insertedIntoDocument): Ditto. (WebCore::HTMLImageElement::removedFromDocument): Ditto.
  • html/HTMLImageElement.h: Ditto.
  • html/HTMLObjectElement.cpp: (WebCore::HTMLObjectElement::parseMappedAttribute): Ditto. (WebCore::HTMLObjectElement::insertedIntoDocument): Ditto. (WebCore::HTMLObjectElement::removedFromDocument): Ditto. (WebCore::HTMLObjectElement::updateDocNamedItem): Ditto.
  • html/HTMLObjectElement.h: Ditto.
  • html/HTMLParamElement.cpp: (WebCore::HTMLParamElement::isURLAttribute): Use equalIgnoringCase instead of callling lower().
  • html/HTMLPlugInElement.h: Changed the type of m_name. The code that uses this is in HTMLAppletElement, HTMLEmbedElement, and HTMLObjectElement.
  • platform/text/AtomicString.cpp: (WebCore::equal): Moved to an inline so we can share this code between a few different functions. It could move to a header too if we want to use it elsewhere. (WebCore::UCharBufferTranslator::equal): Change to use inline. (WebCore::HashAndCharactersTranslator::hash): Added. (WebCore::HashAndCharactersTranslator::equal): Added. (WebCore::HashAndCharactersTranslator::translate): Added. (WebCore::AtomicString::add): Improved the Identifier and UString overloads to use the already-computed hash code instead of rehashing the string. (WebCore::AtomicString::find): Added.
  • platform/text/AtomicString.h: Added a find function so we can avoid allocating memory just to look up a string in an atomic string set or map.
  • platform/text/StringImpl.h: Added declarations needed for the AtomicString changes.
02:42 Changeset [31121] by mjs@apple.com

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

Reviewed by Oliver.


  • a few micro-optimizations for 1.2% SunSpider speedup
  • kjs/function.cpp: (KJS::FunctionImp::callAsFunction): check for Return completion before Throw, it is more likely.
  • kjs/object.cpp: (KJS::JSObject::put): When walking prototype chain, instead of checking isObject (a virtual call), compare to jsNull (compare to a constant) since null is the only non-object that can be in a prototype chain.

03/17/08:

23:12 Changeset [31120] by timothy@apple.com

2008-03-17 Timothy Hatcher <timothy@apple.com>

Reviewed by Mark Rowe.

Bug 17908: Various bugs in the Console completion code
http://bugs.webkit.org/show_bug.cgi?id=17908

  • page/inspector/ConsolePanel.js: (WebInspector.ConsolePanel.complete): Moved the code that checked for the caret being at the end of the prompt into the _caretAtEndOfPrompt helper function. (WebInspector.ConsolePanel.messagesSelectStart): Clear and redo the auto complete when the selection changes. (WebInspector.ConsolePanel._caretInsidePrompt): Fixed a logic error that always caused a false result. (WebInspector.ConsolePanel._caretAtEndOfPrompt): Added. Tests if the selection is a caret at the end of the prompt. (WebInspector.ConsolePanel._moveCaretToEndOfPrompt): Changed the offset to use the childNodes length. This makes sure the caret is at the end when there are multiple text nodes in the prompt.
22:36 Changeset [31119] by oliver@apple.com

Optimise multi-scope function call resolution

Reviewed by Geoff

Refactor multiscope variable resolution and use to add
optimised FunctionCallResolveNode subclasses.

2.6% gain in sunspider performance, *25%* gain in controlflow-recursive

22:03 Changeset [31118] by eric@webkit.org

Reviewed by Dan Bernstein.

Fix bogus argCount check breaking plugin test.

  • DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.cpp:
21:36 Changeset [31117] by mitz@apple.com

2008-03-17 Dan Bernstein <mitz@apple.com>

Rubber-stamped by Dave Hyatt.

  • FloatingObject cleanup

Renamed FloatingObject's data members as follows: node -> m_renderer,
startY -> m_top, endY -> m_bottom, left -> m_left, width -> m_width,
and noPaint -> !m_shouldPaint, reversing the meaning of the flag.

Also addressed the FIXME in RenderBlock::containsFloat().

  • rendering/RenderBlock.cpp: (WebCore::RenderBlock::repaintOverhangingFloats): (WebCore::RenderBlock::paintFloats): (WebCore::RenderBlock::insertFloatingObject): (WebCore::RenderBlock::removeFloatingObject): (WebCore::RenderBlock::positionNewFloats): (WebCore::RenderBlock::leftRelOffset): (WebCore::RenderBlock::rightRelOffset): (WebCore::RenderBlock::nextFloatBottomBelow): (WebCore::RenderBlock::floatBottom): (WebCore::RenderBlock::floatRect): (WebCore::RenderBlock::lowestPosition): (WebCore::RenderBlock::rightmostPosition): (WebCore::RenderBlock::leftmostPosition): (WebCore::RenderBlock::leftBottom): (WebCore::RenderBlock::rightBottom): (WebCore::RenderBlock::clearFloats): (WebCore::RenderBlock::addOverhangingFloats): (WebCore::RenderBlock::addIntrudingFloats): (WebCore::RenderBlock::containsFloat): Changed to return false if the floats lists exists but is empty, since line layout code no longer relies on the buggy behavior. (WebCore::RenderBlock::nodeAtPoint): (WebCore::RenderBlock::adjustForBorderFit):
  • rendering/RenderBlock.h: (WebCore::RenderBlock::containsFloats): (WebCore::RenderBlock::FloatingObject::FloatingObject):
  • rendering/bidi.cpp: (WebCore::RenderBlock::layoutInlineChildren): (WebCore::RenderBlock::matchedEndLine):
21:04 Changeset [31116] by mitz@apple.com

WebCore:

2008-03-17 Dan Bernstein <mitz@apple.com>

Reviewed by Dave Hyatt.

  • allow incremental relayout of blocks that contain floats

Tests: fast/repaint/line-flow-with-floats-[1-9].html

  • rendering/RenderBlock.cpp: (WebCore::RenderBlock::clearFloatsIfNeeded): Cleaned up by moving most of the function body out of an if statement which was replaced with an early return. (WebCore::RenderBlock::insertFloatingObject): Cleaned up by moving most of the function body out of an if statement and moving the ASSERT, which is a crash in release builds, to the beginning. Made this function set the m_isDescendant flag of floating objects it creates. (WebCore::RenderBlock::removeFloatingObject): Added a call to markLinesDirtyInVerticalRange() when removing a float from a block with inline children. (WebCore::RenderBlock::markLinesDirtyInVerticalRange): Added. Marks the lines in the given range as dirty. (WebCore::RenderBlock::clearFloats): Added code to detect changes to the geometry of floats intruding into this block from other blocks and mark any lines whose available width has changed as a result as dirty.
  • rendering/RenderBlock.h: (WebCore::RenderBlock::FloatWithRect::FloatWithRect): Added a structure to cache a float with its position and size. (WebCore::RenderBlock::FloatingObject::FloatingObject): Added an m_isDescendant flag, used by clearFloats() to distinguish between floats entering the block from outside and floats internal to the block.
  • rendering/RootInlineBox.h: (WebCore::RootInlineBox::floats): Added. (WebCore::RootInlineBox::floatsPtr): Added. (WebCore::RootInlineBox::Overflow::Overflow): Added a data member to hold the floats originating on the line.
  • rendering/bidi.cpp: (WebCore::RenderBlock::layoutInlineChildren): Made the existence of floats not force a full layout. Changed to cache the geometry of floats in the block and detect changes to it. If a float's size or position changes, all lines from that point on are treated as dirty. An exception is a change in the dimensions of a float on an otherwise-clean line, which only dirties lines potentially affected by the change (see determineStartPosition()). Added code to update each RootInlineBox's set of floats as lines are laid out. Added code to shift floats belonging to clean lines in the end along with the lines. (WebCore::RenderBlock::determineStartPosition): Made this function look for changes to floats' dimensions and mark lines as dirty accordingly. Also look for new floats and if found, cause a full layout. Added code to re-add floats belonging to clean lines. (WebCore::RenderBlock::matchedEndLine): Added checking that the clean lines in the end can be shifted vertically as needed, i.e. that the available width along the way is uniform.

LayoutTests:

2008-03-17 Dan Bernstein <mitz@apple.com>

Reviewed by Dave Hyatt.

  • test incremental relayout of blocks that contain floats
  • fast/repaint/line-flow-with-floats-1.html: Added.
  • fast/repaint/line-flow-with-floats-2.html: Added.
  • fast/repaint/line-flow-with-floats-3.html: Added.
  • fast/repaint/line-flow-with-floats-4.html: Added.
  • fast/repaint/line-flow-with-floats-5.html: Added.
  • fast/repaint/line-flow-with-floats-6.html: Added.
  • fast/repaint/line-flow-with-floats-7.html: Added.
  • fast/repaint/line-flow-with-floats-8.html: Added.
  • fast/repaint/line-flow-with-floats-9.html: Added.
  • fast/repaint/resources/line-flow-with-floats.html: Added.
  • fast/repaint/resources/line-flow-with-floats.js: Added.
  • platform/mac/fast/repaint/line-flow-with-floats-1-expected.checksum: Added.
  • platform/mac/fast/repaint/line-flow-with-floats-1-expected.png: Added.
  • platform/mac/fast/repaint/line-flow-with-floats-1-expected.txt: Added.
  • platform/mac/fast/repaint/line-flow-with-floats-2-expected.checksum: Added.
  • platform/mac/fast/repaint/line-flow-with-floats-2-expected.png: Added.
  • platform/mac/fast/repaint/line-flow-with-floats-2-expected.txt: Added.
  • platform/mac/fast/repaint/line-flow-with-floats-3-expected.checksum: Added.
  • platform/mac/fast/repaint/line-flow-with-floats-3-expected.png: Added.
  • platform/mac/fast/repaint/line-flow-with-floats-3-expected.txt: Added.
  • platform/mac/fast/repaint/line-flow-with-floats-4-expected.checksum: Added.
  • platform/mac/fast/repaint/line-flow-with-floats-4-expected.png: Added.
  • platform/mac/fast/repaint/line-flow-with-floats-4-expected.txt: Added.
  • platform/mac/fast/repaint/line-flow-with-floats-5-expected.checksum: Added.
  • platform/mac/fast/repaint/line-flow-with-floats-5-expected.png: Added.
  • platform/mac/fast/repaint/line-flow-with-floats-5-expected.txt: Added.
  • platform/mac/fast/repaint/line-flow-with-floats-6-expected.checksum: Added.
  • platform/mac/fast/repaint/line-flow-with-floats-6-expected.png: Added.
  • platform/mac/fast/repaint/line-flow-with-floats-6-expected.txt: Added.
  • platform/mac/fast/repaint/line-flow-with-floats-7-expected.checksum: Added.
  • platform/mac/fast/repaint/line-flow-with-floats-7-expected.png: Added.
  • platform/mac/fast/repaint/line-flow-with-floats-7-expected.txt: Added.
  • platform/mac/fast/repaint/line-flow-with-floats-8-expected.checksum: Added.
  • platform/mac/fast/repaint/line-flow-with-floats-8-expected.png: Added.
  • platform/mac/fast/repaint/line-flow-with-floats-8-expected.txt: Added.
  • platform/mac/fast/repaint/line-flow-with-floats-9-expected.checksum: Added.
  • platform/mac/fast/repaint/line-flow-with-floats-9-expected.png: Added.
  • platform/mac/fast/repaint/line-flow-with-floats-9-expected.txt: Added.
19:36 Google Summer of Code 2008 edited by eric@webkit.org
(diff)
19:34 Google Summer of Code 2008 edited by eric@webkit.org
(diff)
19:33 Google Summer of Code 2008 edited by eric@webkit.org
(diff)
19:32 Google Summer of Code 2008 edited by eric@webkit.org
(diff)
19:32 Google Summer of Code 2008 edited by eric@webkit.org
(diff)
19:31 Google Summer of Code 2008 edited by eric@webkit.org
(diff)
18:54 Changeset [31115] by ddkilzer@apple.com

Don't define PLATFORM(MIDDLE_ENDIAN) on little endian ARM.

Reviewed by Darin.

See <http://bugs.webkit.org/show_bug.cgi?id=15416#c13>.

  • wtf/Platform.h: Added check for !defined(ARMEL) when defining PLATFORM(MIDDLE_ENDIAN).
16:33 Changeset [31114] by oliver@apple.com

Add fast multi-level scope lookup

Reviewed by Geoff, Darin and Weinig

Add logic and AST nodes to provide rapid variable resolution across
static scope boundaries. This also adds logic that allows us to skip
any static scopes that do not contain the variable to be resolved.

This results in a ~2.5% speedup in SunSpider, and gives a 25-30% speedup
in some simple and ad hoc closure and global variable access tests.

16:22 Google Summer of Code 2008 edited by eric@webkit.org
(diff)
16:08 Changeset [31113] by mitz@apple.com

2008-03-17 Dan Bernstein <mitz@apple.com>

Reviewed by Sam Weinig.

  • link "backtrace" to the page that explains how to get one
  • quality/bugwriting.html:
14:47 Changeset [31112] by eric@webkit.org

Reviewed by darin.

Fix _NPN_IntFromIdentifier (and export the symbol for use!)

Test: plugins/netscape-identifier-conversion.html

  • WebCore.NPAPI.exp:
  • bridge/npruntime.cpp: (_NPN_IntFromIdentifier):
14:38 Changeset [31111] by weinig@apple.com

WebCore:

2008-03-17 Sam Weinig <sam@webkit.org>

Reviewed by Dan Bernstein.

Add HTMLCollection constructor to the Window object. (Omission noticed by Harri Porten)

  • page/DOMWindow.idl:

LayoutTests:

2008-03-17 Sam Weinig <sam@webkit.org>

Reviewed by Dan Bernstein.

Add HTMLCollection constructor to the Window object. (Omission noticed by Harri Porten)

  • fast/dom/Window/window-properties-expected.txt:
14:34 Changeset [31110] by zecke@webkit.org

2008-03-17 Holger Hans Peter Freyther <zecke@selfish.org>

Unreviewed Gtk+ build fix.

  • platform/ScrollView.h: make it public
  • platform/gtk/ScrollViewGtk.cpp: remove const
14:33 Changeset [31109] by zecke@webkit.org

2008-03-17 Julien Chaffraix <julien.chaffraix@gmail.com>

Reviewed by Holger.

<http://bugs.webkit.org/show_bug.cgi?id=17754>

  • Implement ResourceHandle::loadResourceSynchronously to dispatch synchronous requests.
  • Implement WebCoreSynchronousLoader, the ResourceHandleClient which holds the network data, response and error for us during the transfert.
  • platform/network/ResourceHandleInternal.h: Remove trailing white space.
  • platform/network/curl/ResourceHandleCurl.cpp: Add WebCoreSynchronousLoader (WebCore::WebCoreSynchronousLoader::resourceResponse): (WebCore::WebCoreSynchronousLoader::resourceError): (WebCore::WebCoreSynchronousLoader::data): (WebCore::WebCoreSynchronousLoader::WebCoreSynchronousLoader): (WebCore::WebCoreSynchronousLoader::didReceiveResponse): (WebCore::WebCoreSynchronousLoader::didReceiveData): (WebCore::WebCoreSynchronousLoader::didFinishLoading): (WebCore::WebCoreSynchronousLoader::didFail): (WebCore::ResourceHandle::loadResourceSynchronously): Implement method using WebCoreSynchronousLoader.
  • platform/network/curl/ResourceHandleManager.cpp: (WebCore::ResourceHandleManager::dispatchSynchronousJob): (WebCore::ResourceHandleManager::startJob): (WebCore::ResourceHandleManager::initializeHandle): Handle initialization method used both for synchronous and asynchronous job.
  • platform/network/curl/ResourceHandleManager.h:
14:27 Changeset [31108] by darin@apple.com

2008-03-17 Darin Adler <darin@apple.com>

  • try to fix GTK build
  • platform/ScrollView.h: Make setGtkAdjustments adjustment. And non-virtual (why was it virtual?).
13:35 Changeset [31107] by mrowe@apple.com

Versioning.

13:34 Changeset [31106] by aroben@apple.com

2008-03-17 Rodney Dawes <dobey@wayofthemonkey.com>

Fix Bug 17898: Split PluginMessageThrottlerWin into its own files

<http://bugs.webkit.org/show_bug.cgi?id=17898>

Move the PluginMessageThrottlerWin class into its own files, in
preparation for refactoring PluginView code to be shared.

Reviewed and tweaked by Adam Roben.

  • WebCore.vcproj/WebCore.vcproj:
  • plugins/PluginView.h:
  • plugins/win/PluginMessageThrottlerWin.cpp: Added.
  • plugins/win/PluginMessageThrottlerWin.h: Added.
  • plugins/win/PluginViewWin.cpp:
13:33 Changeset [31105] by mrowe@apple.com

New tag.

13:21 Changeset [31104] by aroben@apple.com

More Windows build fixes after r31098

  • platform/ScrollView.h: Make some more methods public.
13:18 Changeset [31103] by aroben@apple.com

Windows and Qt build fixes after r31098

  • platform/ScrollView.h: Mark methods public that still need to be so.
12:28 Changeset [31102] by mrowe@apple.com

Merge r31069.

11:58 Changeset [31101] by timothy@apple.com

2008-03-16 Timothy Hatcher <timothy@apple.com>

Reviewed by Darin Adler.

Bug 17883: Console completion should support bracket notation
http://bugs.webkit.org/show_bug.cgi?id=17883

Also fixes a bug where the Inspector's window object was used instead of the
inspected window object.

  • page/inspector/ConsolePanel.js: (WebInspector.ConsolePanel.complete): Add a comment about the _backwardsRange call. (WebInspector.ConsolePanel.completions): Add a comment about the _backwardsRange call. Check the last character of the expression for a dot or bracket. Fallback to the InspectorController.inspectedWindow() instead of window, this was a bad bug. If the expression caused an exception, just consider the prefix a window property. When bracket notation is used remember what quote was used and compared property names with that quote surrounding it. Also escape the property name for the quote and backslash.
11:01 Changeset [31100] by darin@apple.com

WebCore:

2008-03-17 Robert Blaut <webkit@blaut.biz>

Reviewed by Darin.

Fix for bug http://bugs.webkit.org/show_bug.cgi?id=17696
Set default margin-bottom for form element in quirk mode
and be compatible with Gecko.

Tests: fast/css/margin-bottom-form-element-quirk.html

fast/css/margin-bottom-form-element-strict.html

  • css/html4.css:
  • css/quirks.css:

LayoutTests:

2008-03-17 Robert Blaut <webkit@blaut.biz>

Reviewed by Darin.

Fix for bug http://bugs.webkit.org/show_bug.cgi?id=17696
Set default margin-bottom for form element in quirk mode
and be compatible with Gecko.

  • fast/css/margin-bottom-form-element-quirk.html: Added.
  • fast/css/margin-bottom-form-element-strict.html: Added.
  • fast/frames/viewsource-empty-attribute-value-expected.txt:
  • platform/mac/fast/block/margin-collapse/103-expected.checksum:
  • platform/mac/fast/block/margin-collapse/103-expected.png:
  • platform/mac/fast/block/margin-collapse/103-expected.txt:
  • platform/mac/fast/css/margin-bottom-form-element-quirk-expected.checksum: Added.
  • platform/mac/fast/css/margin-bottom-form-element-quirk-expected.png: Added.
  • platform/mac/fast/css/margin-bottom-form-element-quirk-expected.txt: Added.
  • platform/mac/fast/css/margin-bottom-form-element-strict-expected.checksum: Added.
  • platform/mac/fast/css/margin-bottom-form-element-strict-expected.png: Added.
  • platform/mac/fast/css/margin-bottom-form-element-strict-expected.txt: Added.
  • platform/mac/tables/mozilla/bugs/bug44505-expected.checksum:
  • platform/mac/tables/mozilla/bugs/bug44505-expected.png:
  • platform/mac/tables/mozilla/bugs/bug44505-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug51727-expected.checksum:
  • platform/mac/tables/mozilla/bugs/bug51727-expected.png:
  • platform/mac/tables/mozilla/bugs/bug51727-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug52505-expected.checksum:
  • platform/mac/tables/mozilla/bugs/bug52505-expected.png:
  • platform/mac/tables/mozilla/bugs/bug52505-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug52506-expected.checksum:
  • platform/mac/tables/mozilla/bugs/bug52506-expected.png:
  • platform/mac/tables/mozilla/bugs/bug52506-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/bugs/bug2479-2-expected.checksum:
  • platform/mac/tables/mozilla_expected_failures/bugs/bug2479-2-expected.png:
  • platform/mac/tables/mozilla_expected_failures/bugs/bug2479-2-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/bugs/bug56024-expected.checksum:
  • platform/mac/tables/mozilla_expected_failures/bugs/bug56024-expected.png:
  • platform/mac/tables/mozilla_expected_failures/bugs/bug56024-expected.txt:
  • platform/qt/fast/block/margin-collapse/103-expected.txt: Removed.
  • platform/qt/tables/mozilla/bugs/bug44505-expected.txt: Removed.
  • platform/qt/tables/mozilla/bugs/bug51727-expected.txt: Removed.
  • platform/qt/tables/mozilla/bugs/bug52505-expected.txt: Removed.
  • platform/qt/tables/mozilla/bugs/bug52506-expected.txt: Removed.
  • platform/qt/tables/mozilla_expected_failures/bugs/bug2479-2-expected.txt: Removed.
  • platform/qt/tables/mozilla_expected_failures/bugs/bug56024-expected.txt: Removed.
10:38 Changeset [31099] by antti@apple.com

2008-03-17 Antti Koivisto <antti@apple.com>

Reviewed by Darin.

Speculative fix for http://bugs.webkit.org/show_bug.cgi?id=17878
Bug 17878: REGRESSION: Acid3 sometimes crashes Webkit under WebCore::Loader::Host::cancelRequests


I can't reproduce the crash or make a test case for this one but I'm pretty sure this
is the problem. Essentially the same bug as http://bugs.webkit.org/show_bug.cgi?id=17862
except in didFail() instead of didFinishLoading().

  • loader/loader.cpp: (WebCore::Loader::Host::didFail):
09:56 Changeset [31098] by darin@apple.com

2008-03-17 Jan Michael Alonzo <jmalonzo@unpluggable.com>

Reviewed and tweaked by Darin.

http://bugs.webkit.org/show_bug.cgi?id=17172
Refactor platform checks in ScrollView.h

  • platform/ScrollView.h: Change #ifs around.
09:43 Changeset [31097] by darin@apple.com

WebCore:

2008-03-17 Yuzhu Shen <yuzhu.shen@gmail.com>

Reviewed by Darin.

Fix the bug: http://bugs.webkit.org/show_bug.cgi?id=17760
It is necessary to load the image even when src="".

Test: fast/images/load-img-with-empty-src.html

  • html/HTMLImageLoader.cpp: (WebCore::HTMLImageLoader::updateFromElement): isNull rather than isEmpty.

LayoutTests:

2008-03-17 Yuzhu Shen <yuzhu.shen@gmail.com>

Reviewed by Darin.

Bug: http://bugs.webkit.org/show_bug.cgi?id=17760
Test whether <img> tries to load image with empty src attribute.

  • fast/images/load-img-with-empty-src-expected.txt: Added.
  • fast/images/load-img-with-empty-src.html: Added.
  • fast/images/resources/test-load.jpg: Added.
08:27 Changeset [31096] by aroben@apple.com

2008-03-17 Rodney Dawes <dobey@wayofthemonkey.com>

Fix GTK+ build from r31094.

  • plugins/gtk/PluginDatabaseGtk.cpp: (PluginDatabase::getPluginsInPaths):
08:25 Changeset [31095] by aroben@apple.com

Fix Bug 17876: REGRESSION (r31060): Attempting to visit Ofcom page causes crash

WebCore:

Fix Bug 17876: REGRESSION (r31060): Attempting to visit Ofcom page causes crash

<http://bugs.webkit.org/show_bug.cgi?id=17876>

Reviewed by John.

Test: fast/dom/remove-named-attribute-crash.html

  • dom/NamedAttrMap.cpp: (WebCore::NamedAttrMap::removeAttribute): Store the Attribute we're going to remove from the m_attributes Vector in a RefPtr so it doesn't get deleted when it is removed from the Vector.

LayoutTests:

Test for Bug 17876: REGRESSION (r31060): Attempting to visit Ofcom page causes crash

<http://bugs.webkit.org/show_bug.cgi?id=17876>

Reviewed by John.

  • fast/dom/remove-named-attribute-crash-expected.txt: Added.
  • fast/dom/remove-named-attribute-crash.html: Added.
07:51 Changeset [31094] by aroben@apple.com

2008-03-17 Rodney Dawes <dobey@wayofthemonkey.com>

Reviewed by Adam Roben.

Implement PluginDatabase for GTK+ with PluginDatabaseGtk.cpp.
Remove implemented methods from TemporaryLinkStubs.

  • GNUmakefile.am:
  • plugins/gtk:
  • plugins/gtk/PluginDatabaseGtk.cpp:
  • platform/gtk/TemporaryLinkStubs.cpp:
02:47 WebKit Team edited by zecke2@selfish.org
Correct my information. I'm not employed by Trolltech (and wasn't) (diff)
01:27 Changeset [31093] by hausmann@webkit.org

Fix the Qt build.

03/16/08:

21:05 Changeset [31092] by mjs@apple.com

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

Not reviewed, just fixing an incomplete comment from the last commit.

  • dom/Range.cpp: (WebCore::Range::surroundContents):
20:59 Changeset [31091] by kevino@webkit.org

wx build fix. Make sure we link png/jpeg libraries before wx libraries to get the right symbols.

20:50 Changeset [31090] by mjs@apple.com

WebCore:

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

Reviewed by Darin.


This gets us to 92/100

  • dom/Range.cpp: (WebCore::Range::surroundContents): Check for HIERARCHY_REQUEST_ERR before BAD_BOUNDARYPOINTS_ERR, since Acid3 expects exceptional conditions to be tested in the order that the spec lists them. Also, adjust the HIERARCHY_REQUEST_ERR check. If the start point of the range is in a comment node, the node that would be the parent of a partial replacement is actually the comment node's parent (since comment nodes have character indices), so we should do the HIERARCHY_REQUEST_ERR check based on the parent of the comment node, as for text nodes, even though it will fail later with a different exception because it is not allowed to surround a partially selected non-text node.

LayoutTests:

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

Reviewed by Darin.


  • fast/dom/Range/acid3-surround-contents-expected.txt: Added.
  • fast/dom/Range/acid3-surround-contents.html: Added.
20:47 Changeset [31089] by darin@apple.com

WebCore:

2008-03-16 Marvin Decker <marv.decker@gmail.com>

Reviewed by Darin.

Fix bug 15119: URL query characters that are unencodable in the
request's character set should be converted to XML entities with
non-alphanumeric characters escaped.

Test: http/tests/uri/escaped-entity.html

  • html/FormDataList.cpp: (WebCore::FormDataList::appendString):
  • html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::formData):
  • platform/KURL.cpp: (WebCore::encodeRelativeString):
  • platform/text/String.cpp: (WebCore::String::latin1): (WebCore::String::utf8):
  • platform/text/TextCodec.cpp: (WebCore::TextCodec::unencodableCharReplacement):
  • platform/text/TextCodec.h: (WebCore::):
  • platform/text/TextCodecICU.cpp: (WebCore::urlEscapedEntityCallback): (WebCore::gbkUrlEscapedEntityCallack): (WebCore::TextCodecICU::encode):
  • platform/text/TextCodecICU.h: (WebCore::TextCodecICU::setNeedsGBKFallbacks):
  • platform/text/TextCodecLatin1.cpp: (WebCore::encodeComplexWindowsLatin1): (WebCore::TextCodecLatin1::encode):
  • platform/text/TextCodecLatin1.h:
  • platform/text/TextCodecUTF16.cpp: (WebCore::TextCodecUTF16::encode):
  • platform/text/TextCodecUTF16.h:
  • platform/text/TextCodecUserDefined.cpp: (WebCore::encodeComplexUserDefined): (WebCore::TextCodecUserDefined::encode):
  • platform/text/TextCodecUserDefined.h:
  • platform/text/TextEncoding.cpp: (WebCore::TextEncoding::encode):
  • platform/text/TextEncoding.h:
  • platform/text/mac/TextCodecMac.cpp: (WebCore::TextCodecMac::encode):
  • platform/text/mac/TextCodecMac.h:
  • xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::send):

LayoutTests:

2008-03-16 Marvin Decker <marv.decker@gmail.com>

Reviewed by Darin.

Fix bug 15119, unencodable characters in URLs should be entity-escaped.

  • http/tests/uri/escaped-entity-expected.txt: Added.
  • http/tests/uri/escaped-entity.html: Added.
20:26 Changeset [31088] by darin@apple.com

2008-03-16 weihongzeng <weihong.zeng@hotmail.com>


Reviewed by Darin Adler.


http://bugs.webkit.org/show_bug.cgi?id=15416
Add support for mixed-endian processors


  • kjs/dtoa.cpp: Add IEEE_ARM, triggered by PLATFORM(MIDDLE_ENDIAN).
18:29 Changeset [31087] by kevino@webkit.org

Rubber stamped by Darin.

Add set-webkit-configuration support for wx port, and centralize build dir location setting.

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

15:21 Changeset [31086] by darin@apple.com

WebCore:

2008-03-16 Darin Adler <darin@apple.com>

Reviewed by Mark Rowe.

Tests: fast/forms/textarea-default-value-leading-newline.html

fast/forms/textarea-linewrap-dynamic.html

  • html/HTMLTextAreaElement.cpp: (WebCore::HTMLTextAreaElement::HTMLTextAreaElement): Tweaked names/ (WebCore::HTMLTextAreaElement::selectionStart): Ditto, also use early return and check for < 0 rather than -1 specifically. (WebCore::HTMLTextAreaElement::selectionEnd): Ditto. (WebCore::HTMLTextAreaElement::setSelectionStart): Early return. (WebCore::HTMLTextAreaElement::setSelectionEnd): Ditto. (WebCore::HTMLTextAreaElement::select): Ditto. (WebCore::HTMLTextAreaElement::setSelectionRange): Ditto. (WebCore::HTMLTextAreaElement::parseMappedAttribute): Changed value parsing to treat unknown values as meaning "default" rather than "leave value as-is". Only call setNeedsLayoutAndPrefWidthsRecalc when mode changed. (WebCore::HTMLTextAreaElement::createRenderer): Removed name of unused argument. (WebCore::HTMLTextAreaElement::appendFormData): Updated for name changes. (WebCore::HTMLTextAreaElement::isKeyboardFocusable): Got rid of unnneeded explicit class name in isFocusable call. (WebCore::HTMLTextAreaElement::isMouseFocusable): Ditto. (WebCore::HTMLTextAreaElement::updateFocusAppearance): Tweaked formatting. (WebCore::HTMLTextAreaElement::defaultEventHandler): Ditto. (WebCore::HTMLTextAreaElement::updateValue): Early return. (WebCore::HTMLTextAreaElement::setValue): Got rid of intermediate value to eliminate on small refcount churn. (WebCore::HTMLTextAreaElement::defaultValue): Got rid of unneeded redundant string length checks, since String already checks all indexing and returns 0. (WebCore::HTMLTextAreaElement::setDefaultValue): Added code to normalize line endings and add a leading line ending to fix cases where the first character is a newline. (WebCore::HTMLTextAreaElement::accessKeyAction): Removed name of unused arg. (WebCore::HTMLTextAreaElement::accessKey): Changed return value to avoid refcount churn. (WebCore::HTMLTextAreaElement::selection): Updated names and use < 0 instead of -1 specifically.
  • html/HTMLTextAreaElement.h: Replaced wrap function with more-specific shouldWrapText one. Changed return value of accessKey. Made WrapMethod enum provate and renamed the values. Renamed cachedSelStart and cachedSelEnd to m_cachedSelectionStart and m_cachedSelectionEnd.
  • rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::createInnerTextStyle): Updated for change to HTMLTextAreaElement wrap function.

LayoutTests:

2008-03-16 Darin Adler <darin@apple.com>

Reviewed by Mark Rowe.

  • fast/forms/textarea-default-value-leading-newline-expected.txt: Added.
  • fast/forms/textarea-default-value-leading-newline.html: Copied from fast/forms/textarea-crlf.html.
  • fast/forms/textarea-hard-linewrap-expected.txt: Updated.
  • fast/forms/textarea-hard-linewrap.html: Cleaned up a bit.
  • fast/forms/textarea-linewrap-dynamic-expected.txt: Added.
  • fast/forms/textarea-linewrap-dynamic.html: Copied from fast/forms/textarea-hard-linewrap.html.
14:47 Changeset [31085] by antti@apple.com

Reviewed by Mitz.

Fix http/tests/security/frame-loading-via-document-write.html
which was broken by the preload patch.


Don't print error message when preload fails local file security check.
Some minor refactoring.

  • html/PreloadScanner.cpp: (WebCore::PreloadScanner::emitTag): (WebCore::PreloadScanner::emitCSSRule):
  • loader/Cache.cpp: (WebCore::Cache::requestResource):
  • loader/Cache.h:
  • loader/DocLoader.cpp: (WebCore::DocLoader::requestResource): (WebCore::DocLoader::preload): (WebCore::DocLoader::printPreloadStats):
  • loader/DocLoader.h:
13:53 Changeset [31084] by antti@apple.com

WebCore:

Reviewed by Darin.


Fix http://bugs.webkit.org/show_bug.cgi?id=17862
REGRESSION (r31038): Reproducible crash under DocLoader::checkForReload() at marware.com


This was a memory smasher introduced by the preloading patch.
If a script resource was marked uncacheable, early deletion of the
Request object would cause deletion of the CachedResource too if
it was referred more than once in a single document.

Test: http/tests/misc/uncacheable-script-repeated.html

  • loader/loader.cpp: (WebCore::Loader::Host::servePendingRequests): (WebCore::Loader::Host::didFinishLoading):

LayoutTests:

Reviewed by Darin.


Test for http://bugs.webkit.org/show_bug.cgi?id=17862
REGRESSION (r31038): Reproducible crash under DocLoader::checkForReload() at marware.com

  • http/tests/misc/resources/uncacheable-script.cgi: Added.
  • http/tests/misc/uncacheable-script-repeated-expected.txt: Added.
  • http/tests/misc/uncacheable-script-repeated.html: Added.
13:35 Changeset [31083] by darin@apple.com

WebCore:

2008-03-16 Yuzhu Shen <yuzhu.shen@gmail.com>

Reviewed by Darin.

Fix bug http://bugs.webkit.org/show_bug.cgi?id=17714
<img href="#"> should go to top of the page.

Test: fast/html/empty-fragment-id-goto-top.html

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

LayoutTests:

2008-03-16 Yuzhu Shen <yuzhu.shen@gmail.com>

Reviewed by Darin.

Bug: http://bugs.webkit.org/show_bug.cgi?id=17714
Test whether clicking <img href="#"> goes to top of the page.

  • fast/html/empty-fragment-id-goto-top-expected.txt: Added.
  • fast/html/empty-fragment-id-goto-top.html: Added.
13:25 Changeset [31082] by darin@apple.com

WebCore:

2008-03-16 Thiago Macieira <thiago.macieira@trolltech.com>

Reviewed by Darin.

Don't use RefPtr in classes you haven't seen the implementation of.

Forward-declaration and declaration of RefPtr<Foo> is ok. But you
cannot *use* said objects until Foo is defined. This is true even for
initialisation with a 0.

Seems the HP aCC compiler is more strict here than gcc.

  • editing/SplitTextNodeCommand.h:
  • page/FrameTree.h:
  • xml/XPathExpressionNode.h:

WebKit/qt:

2008-03-16 Thiago Macieira <thiago.macieira@trolltech.com>

Reviewed by Simon.

Don't use RefPtr in classes you haven't seen the implementation of.


Forward-declaration and declaration of RefPtr<Foo> is ok. But you
cannot *use* said objects until Foo is defined. This is true even for
initialisation with a 0.


Seems the HP aCC compiler is more strict here than gcc.

  • Api/qwebframe_p.h:
13:17 Changeset [31081] by darin@apple.com

WebCore:

2008-03-16 Darin Adler <darin@apple.com>

Reviewed by Mitz.

Test: fast/forms/textarea-trailing-newline.html

  • rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::finishText): Added code to strip the trailing newline. It's possible there are some obscure cases where this is not wanted, but I couldn't find any. If someone finds a case where this is bad, we can make the code conditional.

LayoutTests:

2008-03-16 Darin Adler <darin@apple.com>

Reviewed by Mitz.

  • fast/forms/textarea-paste-newline.html: Updated test to expect correct behavior instead of expecting the bug.
  • fast/forms/textarea-trailing-newline-expected.txt: Added.
  • fast/forms/textarea-trailing-newline.html: Added.
13:15 Changeset [31080] by darin@apple.com

2008-03-16 Darin Adler <darin@apple.com>

Reviewed by Mitz.

This is causing intermittent crashes on some existing test cases on the buildbot
too; I don't have a 100% test case right now, but it should be easy to add one later
and this does fix a crash in a test we already have.

  • dom/CharacterData.cpp: (WebCore::CharacterData::CharacterData): Initialize m_data to the empty string, not the null string. The class assumes the string can never being null. (WebCore::CharacterData::setData): If asked to set the data to the null string, set it to the empty string instead. This matches what the (non-empty) constructor has always done.
Note: See TracTimeline for information about the timeline view.