1. 20 Apr, 2009 18 commits
    • darin@apple.com's avatar
      WebKitTools: · acb629d7
      darin@apple.com authored
      2009-04-20  Darin Adler  <darin@apple.com>
      
              Reviewed by Sam Weinig.
      
              * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: Added PlainTextController.h
              and PlainTextController.mm.
      
              * DumpRenderTree/mac/FrameLoadDelegate.mm:
              (-[FrameLoadDelegate webView:didClearWindowObject:forFrame:]): Added PlainTextController
              as "window.plainText".
      
              * DumpRenderTree/mac/PlainTextController.h: Added.
              * DumpRenderTree/mac/PlainTextController.mm: Added.
      
      LayoutTests:
      
      2009-04-20  Darin Adler  <darin@apple.com>
      
              Reviewed by Sam Weinig.
      
              * fast/dom/Window/window-properties.html: Added a new DumpRenderTree window
              object property, plainText.
      
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@42681 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      acb629d7
    • sfalken@apple.com's avatar
      JavaScriptCore: · 063c9d0b
      sfalken@apple.com authored
      2009-04-20  Steve Falkenburg  <sfalken@apple.com>
      
              Separate JavaScriptCore.dll from WebKit.dll.
              Slight performance improvement or no change on benchmarks.
              
              Allows us to break a circular dependency between CFNetwork and WebKit on Windows,
              and simplifies standalone JavaScriptCore builds.
      
              Reviewed by Oliver Hunt.
      
              * API/JSBase.h: Export symbols with JS_EXPORT when using MSVC.
              * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
              * JavaScriptCore.vcproj/WTF/WTF.vcproj: Build JavaScriptCore as a DLL instead of a static library.
              * config.h: Specify __declspec(dllexport/dllimport) appropriately when exporting data.
              * runtime/InternalFunction.h: Specify JS_EXPORTDATA on exported data.
              * runtime/JSArray.h: Specify JS_EXPORTDATA on exported data.
              * runtime/JSFunction.h: Specify JS_EXPORTDATA on exported data.
              * runtime/StringObject.h: Specify JS_EXPORTDATA on exported data.
              * runtime/UString.h: Specify JS_EXPORTDATA on exported data.
      
      WebCore:
      
      2009-04-20  Steve Falkenburg  <sfalken@apple.com>
      
              Separate JavaScriptCore.dll from WebKit.dll.
              Slight performance improvement or no change on benchmarks.
              
              Allows us to break a circular dependency between CFNetwork and WebKit on Windows,
              and simplifies standalone JavaScriptCore builds.
      
              Reviewed by Oliver Hunt.
      
              * config.h: Specify __declspec(dllexport/dllimport) appropriately when exporting data.
      
      WebKit/cf:
      
      2009-04-20  Steve Falkenburg  <sfalken@apple.com>
      
              Separate JavaScriptCore.dll from WebKit.dll.
              Slight performance improvement or no change on benchmarks.
              
              Allows us to break a circular dependency between CFNetwork and WebKit on Windows,
              and simplifies standalone JavaScriptCore builds.
              
              Reviewed by Oliver Hunt.
      
              * WebCoreSupport/WebInspectorClientCF.cpp: Workaround for lack of config.h in shared WebKit file (WebKit/win uses config.h from WebCore).
      
      WebKit/win:
      
      2009-04-20  Steve Falkenburg  <sfalken@apple.com>
      
              Separate JavaScriptCore.dll from WebKit.dll.
              Slight performance improvement or no change on benchmarks.
              
              Allows us to break a circular dependency between CFNetwork and WebKit on Windows,
              and simplifies standalone JavaScriptCore builds.
      
              Reviewed by Oliver Hunt.
      
              * WebKit.vcproj/WebKit.def: Mark JavaScriptCore re-exports as deprecated.
              * WebKit.vcproj/WebKit.vcproj: Link against JavaScriptCore.dll
              * WebKit.vcproj/WebKit_debug.def: Mark JavaScriptCore re-exports as deprecated.
      
      WebKitLibraries:
      
      2009-04-20  Steve Falkenburg  <sfalken@apple.com>
      
              Separate JavaScriptCore.dll from WebKit.dll.
              Slight performance improvement or no change on benchmarks.
              
              Allows us to break a circular dependency between CFNetwork and WebKit on Windows,
              and simplifies standalone JavaScriptCore builds.
      
              Reviewed by Oliver Hunt.
      
              * win/tools/vsprops/common.vsprops: Add BUILDING_{project} preprocessor define.
      
      WebKitTools:
      
      2009-04-20  Steve Falkenburg  <sfalken@apple.com>
      
              Separate JavaScriptCore.dll from WebKit.dll.
              Slight performance improvement or no change on benchmarks.
              
              Allows us to break a circular dependency between CFNetwork and WebKit on Windows,
              and simplifies standalone JavaScriptCore builds.
      
              Reviewed by Oliver Hunt.
      
              * DumpRenderTree/config.h: Specify JS, WebKit exported data as __declspec(dllimport)
              * DumpRenderTree/win/DumpRenderTree.vcproj: Link against JavaScriptCore.dll
      
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@42680 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      063c9d0b
    • andersca@apple.com's avatar
      WebCore: · 22d1c4e1
      andersca@apple.com authored
      2009-04-20  Anders Carlsson  <andersca@apple.com>
      
              Reviewed by Sam Weinig.
      
              <rdar://problem/6722845> In the Cocoa event model, NPWindow's window field should be null
      
              * bridge/npapi.h:
              (_NPCocoaEvent::):
              Add a CGContextRef member to the draw struct. Add an NPCoordinateSpace enum.
              
              * plugins/npfunctions.h:
              Add a prototype for NPN_ConvertPoint.
      
      WebKit/mac:
      
      2009-04-17  Anders Carlsson  <andersca@apple.com>
      
              Reviewed by Sam Weinig.
      
              <rdar://problem/6722845>
              In the Cocoa event model, NPWindow's window field should be null
              
              * Plugins/Hosted/NetscapePluginHostProxy.mm:
              (WKPCConvertPoint):
              Get the instance proxy and call it's convertPoint function.
              
              * Plugins/Hosted/NetscapePluginInstanceProxy.h:
              * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
              (WebKit::NetscapePluginInstanceProxy::convertPoint):
              Call convertPoint on the plug-in view.
              
              * Plugins/Hosted/WebKitPluginClient.defs:
              Add PCConvertPoint.
              
              * Plugins/WebBaseNetscapePluginView.h:
              Add a declaration for convertFromX:andY:space:toX:andY:space:.
              
              * Plugins/WebBaseNetscapePluginView.mm:
              (-[WebBaseNetscapePluginView convertFromX:andY:space:toX:andY:space:]):
              Convert a point from one coordinate system to another.
              
              * Plugins/WebNetscapePluginEventHandler.h:
              * Plugins/WebNetscapePluginEventHandlerCarbon.h:
              * Plugins/WebNetscapePluginEventHandlerCarbon.mm:
              (WebNetscapePluginEventHandlerCarbon::drawRect):
              * Plugins/WebNetscapePluginEventHandlerCocoa.h:
              Add CGContextRef to drawRect.
      
              * Plugins/WebNetscapePluginEventHandlerCocoa.mm:
              (WebNetscapePluginEventHandlerCocoa::drawRect):
              Set the passed in context.
              
              * Plugins/WebNetscapePluginPackage.mm:
              (-[WebNetscapePluginPackage _tryLoad]):
              Add NPN_ConvertPoint to the browserFuncs vtable.
              
              * Plugins/WebNetscapePluginView.mm:
              (-[WebNetscapePluginView saveAndSetNewPortStateForUpdate:]):
              Only set the window for the Carbon event model.
              
              (-[WebNetscapePluginView restorePortState:]):
              It's OK for the window context to be null.
              
              (-[WebNetscapePluginView sendDrawRectEvent:]):
              Pass the CGContextRef to drawRect.
      
              * Plugins/npapi.mm:
              (NPN_ConvertPoint):
              Call the plug-in view method.
      
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@42679 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      22d1c4e1
    • eric@webkit.org's avatar
      Reviewed by Dan Bernstein. · a7f69d10
      eric@webkit.org authored
              Make textarea and text input metrics more closely match IEs.
              https://bugs.webkit.org/show_bug.cgi?id=15312
      
              This involves:
              -set text input width to size*avgCharWidth + maxCharWidth - avgCharWidth
              -set textarea width to cols*avgCharWidth
              -Make default CSS match IEs
              -Correctly initializing m_avgCharWidth and m_maxCharWidth for each platform and SVG.
      
              Those values for textarea and inputs were derived by doing a ton of manual
              testing of IE's width values for various textareas and fonts.
      
              To get the average and max character width of a font, we do the following
              for each platform:
              -Win: TextMetrics expose avgCharWidth and maxCharWidth
              -SVG: avgCharWidth = width of an '0', fallback on width of a space glyph, then m_xHeight
                  maxCharWidth = width of a 'W' for roman fonts, fallback on m_ascent
              -Linux: avgCharWidth = width of an '0', fallback on m_xHeight
                  maxCharWidth = max of avgCharWidth and m_ascent
              -Mac: look in the OS/2 table for avgCharWidth and grab the maxCharWidth off the font.
                  If either one is not there, then calculate the value using the Linux approach.
      
              Linux ports could probably dig into the OS/2 table as well, but I'll leave
              that up to them to implement.
      
              Tests: fast/forms/text-control-intrinsic-widths.html
                     fast/forms/textarea-metrics.html
                     svg/custom/svg-fonts-in-text-controls.html
      
              * css/html4.css:
              * css/themeWin.css:
              * platform/graphics/SimpleFontData.cpp:
              (WebCore::SimpleFontData::SimpleFontData):
              (WebCore::SimpleFontData::initCharWidths):
              * platform/graphics/SimpleFontData.h:
              (WebCore::SimpleFontData::maxCharWidth):
              (WebCore::SimpleFontData::avgCharWidth):
              * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
              (WebCore::SimpleFontData::platformCharWidthInit):
              * platform/graphics/chromium/SimpleFontDataLinux.cpp:
              (WebCore::SimpleFontData::platformCharWidthInit):
              * platform/graphics/gtk/SimpleFontDataGtk.cpp:
              (WebCore::SimpleFontData::platformCharWidthInit):
              * platform/graphics/gtk/SimpleFontDataPango.cpp:
              (WebCore::SimpleFontData::platformCharWidthInit):
              * platform/graphics/mac/SimpleFontDataMac.mm:
              (WebCore::SimpleFontData::platformCharWidthInit):
              * platform/graphics/qt/SimpleFontDataQt.cpp:
              (WebCore::SimpleFontData::platformCharWidthInit):
              * platform/graphics/win/SimpleFontDataCGWin.cpp:
              (WebCore::SimpleFontData::platformCharWidthInit):
              * platform/graphics/win/SimpleFontDataCairoWin.cpp:
              (WebCore::SimpleFontData::platformInit):
              (WebCore::SimpleFontData::platformCharWidthInit):
              * platform/graphics/win/SimpleFontDataWin.cpp:
              (WebCore::SimpleFontData::initGDIFont):
              * platform/graphics/wx/SimpleFontDataWx.cpp:
              (WebCore::SimpleFontData::platformCharWidthInit):
              * rendering/RenderTextControl.cpp:
              (WebCore::RenderTextControl::calcPrefWidths):
              * rendering/RenderTextControlMultiLine.cpp:
              (WebCore::RenderTextControlMultiLine::createInnerTextStyle):
              * rendering/RenderTextControlSingleLine.cpp:
              (WebCore::RenderTextControlSingleLine::preferredContentWidth):
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@42678 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      a7f69d10
    • eric@webkit.org's avatar
      Reviewed by Simon Fraser. · b0c92154
      eric@webkit.org authored
              Remove m_absoluteBounds hack from SVG renderers and move outlineBoundsForRepaint into RenderSVGModelObject
              https://bugs.webkit.org/show_bug.cgi?id=25276
      
              This also exposed a buggy paint check in RenderSVGContainer::layout()
              we should repaint if we are self painting OR if our kids changed, not AND.
      
              Writing real outlineBoundsForRepaint required writing a mapLocalToContainer() function
      
              No functional changes, thus no tests.
      
              * rendering/RenderPath.cpp:
              (WebCore::RenderPath::localToParentTransform):
              (WebCore::RenderPath::layout):
              * rendering/RenderPath.h:
              * rendering/RenderSVGContainer.cpp:
              (WebCore::RenderSVGContainer::layout):
              * rendering/RenderSVGContainer.h:
              * rendering/RenderSVGModelObject.cpp:
              (WebCore::RenderSVGModelObject::mapLocalToContainer):
              (WebCore::RenderSVGModelObject::outlineBoundsForRepaint):
              * rendering/RenderSVGModelObject.h:
              * rendering/RenderSVGRoot.cpp:
              (WebCore::RenderSVGRoot::layout):
              (WebCore::RenderSVGRoot::paint):
              (WebCore::RenderSVGRoot::localToParentTransformWithoutCSSParentOffset):
              (WebCore::RenderSVGRoot::localToParentTransform):
              (WebCore::RenderSVGRoot::computeRectForRepaint):
              * rendering/RenderSVGRoot.h:
              * rendering/RenderSVGViewportContainer.cpp:
              (WebCore::RenderSVGViewportContainer::layout):
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@42677 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      b0c92154
    • weinig@apple.com's avatar
      2009-04-20 Sam Weinig <sam@webkit.org> · dfd546b9
      weinig@apple.com authored
              Reviewed by Kevin McCullough.
      
              Always tag mmaped memory on darwin and clean up #defines
              now that they are a little bigger.
      
              * interpreter/RegisterFile.h:
              (JSC::RegisterFile::RegisterFile):
              * jit/ExecutableAllocatorFixedVMPool.cpp:
              (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
              * jit/ExecutableAllocatorPosix.cpp:
              (JSC::ExecutablePool::systemAlloc):
              * runtime/Collector.cpp:
              (JSC::allocateBlock):
      
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@42676 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      dfd546b9
    • simon.fraser@apple.com's avatar
      2009-04-20 Simon Fraser <simon.fraser@apple.com> · 7d70e0f9
      simon.fraser@apple.com authored
              Reviewed by Eric Seidel
      
              https://bugs.webkit.org/show_bug.cgi?id=25282
      
              outlineBoundsForRepaint() should compute a quad relative to the
              repaintContainer. This fixes the repaint issues originally fixed in
              https://bugs.webkit.org/show_bug.cgi?id=12885 for elements in compositing layers.
              Failure was only apparent when building with ACCELERATED_COMPOSITING enabled.
      
              Tests: compositing/repaint/content-into-overflow.html
                     compositing/repaint/overflow-into-content.html
      
              * rendering/RenderBox.cpp:
              (WebCore::RenderBox::outlineBoundsForRepaint):
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@42675 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      7d70e0f9
    • weinig@apple.com's avatar
      JavaScriptCore: · 0049c5b0
      weinig@apple.com authored
      2009-04-20  Sam Weinig  <sam@webkit.org>
      
              Rubber-stamped by Tim Hatcher.
      
              Add licenses for xcconfig files.
      
              * Configurations/Base.xcconfig:
              * Configurations/DebugRelease.xcconfig:
              * Configurations/FeatureDefines.xcconfig:
              * Configurations/JavaScriptCore.xcconfig:
              * Configurations/Version.xcconfig:
      
      JavaScriptGlue:
      
      2009-04-20  Sam Weinig  <sam@webkit.org>
      
              Rubber-stamped by Tim Hatcher.
      
              Add licenses for xcconfig files.
      
              * Configurations/Base.xcconfig:
              * Configurations/DebugRelease.xcconfig:
              * Configurations/JavaScriptGlue.xcconfig:
              * Configurations/Version.xcconfig:
      
      WebCore:
      
      2009-04-20  Sam Weinig  <sam@webkit.org>
      
              Rubber-stamped by Tim Hatcher.
      
              Add licenses for xcconfig files.
      
              * Configurations/Base.xcconfig:
              * Configurations/DebugRelease.xcconfig:
              * Configurations/FeatureDefines.xcconfig:
              * Configurations/Version.xcconfig:
              * Configurations/WebCore.xcconfig:
      
      WebKit/mac:
      
      2009-04-20  Sam Weinig  <sam@webkit.org>
      
              Rubber-stamped by Tim Hatcher.
      
              Add licenses for xcconfig files.
              
              * Configurations/Base.xcconfig:
              * Configurations/DebugRelease.xcconfig:
              * Configurations/FeatureDefines.xcconfig:
              * Configurations/Version.xcconfig:
              * Configurations/WebKit.xcconfig:
      
      WebKitTools:
      
      2009-04-20  Sam Weinig  <sam@webkit.org>
      
              Rubber-stamped by Tim Hatcher.
      
              Add licenses for xcconfig files.
      
              * DumpRenderTree/mac/Configurations/Base.xcconfig:
              * DumpRenderTree/mac/Configurations/DebugRelease.xcconfig:
              * DumpRenderTree/mac/Configurations/DumpRenderTree.xcconfig:
              * DumpRenderTree/mac/Configurations/ImageDiff.xcconfig:
              * DumpRenderTree/mac/Configurations/TestNetscapePlugIn.xcconfig:
      
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@42674 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      0049c5b0
    • andersca@apple.com's avatar
      2009-04-20 Anders Carlsson <andersca@apple.com> · b54d0ee2
      andersca@apple.com authored
              Reviewed by Dan Bernstein.
      
              WebKit side of <rdar://problem/6781302>
              
              * Plugins/Hosted/NetscapePluginInstanceProxy.h:
              * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
              (WebKit::NetscapePluginInstanceProxy::keyEvent):
              Pass the event keyChar.
              
              (WebKit::NetscapePluginInstanceProxy::syntheticKeyDownWithCommandModifier):
              Ditto.
              
              (WebKit::NetscapePluginInstanceProxy::flagsChanged):
              Pass a 0 keyChar.
              
              * Plugins/Hosted/WebHostedNetscapePluginView.mm:
              (-[WebHostedNetscapePluginView flagsChanged:]):
              Call NetscapePluginInstanceProxy::flagsChanged.
              
              * Plugins/Hosted/WebKitPluginHost.defs:
              Add a keyChar argument.
      
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@42673 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      b54d0ee2
    • kov@webkit.org's avatar
      2009-04-20 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> · 94215776
      kov@webkit.org authored
              Reviewed by Xan Lopez.
      
              https://bugs.webkit.org/show_bug.cgi?id=24786
              WebKitDownload sometimes suggests peculiar filenames
      
              Remove query and ref from the URI that is to be downloaded when
              using it to provide a file name suggestion.
      
              * webkit/webkitdownload.cpp:
              (_WebKitDownloadPrivate::webkit_download_set_property):
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@42672 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      94215776
    • dglazkov@chromium.org's avatar
      2009-04-20 Eric Roman <eroman@chromium.org> · 57629f74
      dglazkov@chromium.org authored
              Reviewed by Dimitri Glazkov.
      
              https://bugs.webkit.org/show_bug.cgi?id=25261
              Implement the V8 binding for DOMWindow.event similarly to JSC, by using
              the custom getter boilerplate from the IDL file.
              Also, stub out DOMWindow.crypto which is defined by the idl.
      
              * bindings/v8/V8AbstractEventListener.cpp:
              (WebCore::V8AbstractEventListener::invokeEventHandler):
              * bindings/v8/custom/V8DOMWindowCustom.cpp:
              (WebCore::ACCESSOR_GETTER):
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@42671 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      57629f74
    • kov@webkit.org's avatar
      WebCore · 2ca1398e
      kov@webkit.org authored
      2009-04-20  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
      
              Reviewed by Xan Lopez.
      
              https://bugs.webkit.org/show_bug.cgi?id=25243
              Crash when data:// loads are cancelled
      
              Properly handle cancellation of the load for data:// loads. This
              fixes crashing in the followin test:
      
              plugins/return-error-from-new-stream-callback-in-full-frame-plugin.html
      
              * platform/network/soup/ResourceHandleSoup.cpp:
              (WebCore::parseDataUrl):
      
      WebKit/gtk
      
      2009-04-20  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
      
              Reviewed by Xan Lopez.
      
              Handle the case when the plugin view is destroyed during
              didReceiveResponse, to avoid crashing.
      
              * WebCoreSupport/FrameLoaderClientGtk.cpp:
              (WebKit::FrameLoaderClient::committedLoad):
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@42670 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      2ca1398e
    • ariya@webkit.org's avatar
      2009-04-20 Ariya Hidayat <ariya.hidayat@nokia.com> · 317a50ee
      ariya@webkit.org authored
              Build fix for Qt port (after r42646). Not reviewed.
      
              * wtf/unicode/qt4/UnicodeQt4.h: Added U16_PREV.
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@42669 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      317a50ee
    • adele@apple.com's avatar
      2009-04-19 Adele Peterson <adele@apple.com> · 28d2a9c3
      adele@apple.com authored
              Reviewed by Darin Adler.
      
              Fix for <rdar://problem/6804809> REGRESSION: In Mail, Home and End do not scroll message
      
              If no scrolling occurs, call tryToPerform on the next responder.  Then our WebResponderChainSink
              will correctly detect if no responders handle the selector.
      
              * WebView/WebFrameView.mm:
              (-[WebFrameView _scrollToBeginningOfDocument]):
              (-[WebFrameView _scrollToEndOfDocument]):
              (-[WebFrameView scrollToBeginningOfDocument:]):
              (-[WebFrameView scrollToEndOfDocument:]):
              (-[WebFrameView scrollLineUp:]):
              (-[WebFrameView scrollLineDown:]):
      
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@42668 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      28d2a9c3
    • mitz@apple.com's avatar
      - maybe fix release builds · 6f490278
      mitz@apple.com authored
              * dom/ScriptElement.cpp:
              (WebCore::ScriptElementData::notifyFinished):
      
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@42667 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      6f490278
    • mitz@apple.com's avatar
      - fix release builds · 64d1f789
      mitz@apple.com authored
              * dom/Document.cpp:
              (WebCore::Document::executeScriptSoonTimerFired):
      
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@42666 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      64d1f789
    • mitz@apple.com's avatar
      WebCore: · 72b9d35f
      mitz@apple.com authored
              Reviewed by Mark Rowe.
      
              - fix <rdar://problem/6734365> REGRESSION eBay "Save this search" link
                does nothing the second time search results are opened
      
              Test: fast/dom/HTMLScriptElement/nested-execution.html
      
              Instead of executing scripts as soon as they finish loading, which may
              happen synchronously during execution of another script, defer their
              execution until the next run loop iteration, using a queue that is
              similar to the HTML5 notion of the "list of scripts that will execute as
              soon as possible", and in my testing was consistent with how Firefox
              behaved.
      
              * dom/Document.cpp:
              (WebCore::Document::Document): Initialize m_executeScriptSoonTimer.
              (WebCore::Document::~Document): deref() script elements in
              m_scriptsToExecuteSoon.
              (WebCore::Document::executeScriptSoonTimerFired): Added. Executes the
              scripts in m_scriptsToExecuteSoon and deref()s them.
              (WebCore::Document::executeScriptSoon): Added. Appends to
              m_scriptsToExecuteSoon and ref()s the script element, which keeps the
              ScriptElementData alive as well.
              * dom/Document.h:
              * dom/ScriptElement.cpp:
              (WebCore::ScriptElementData::ScriptElementData): Initialize m_requested.
              (WebCore::ScriptElementData::requestScript): Set m_requested to true, to
              prevent further load requests.
              (WebCore::ScriptElementData::execute): Added. Moved the code from
              notifyFinished() which should not execute synchronously here, to be
              called by the Document on a 0-interval timer.
              (WebCore::ScriptElementData::notifyFinished): Moved the code to
              dispatch events and evaluate the script, which should not execute
              synchronously, out of here.
              (WebCore::ScriptElementData::ignoresLoadRequest): Changed to test for
              m_requested instead of m_cachedScript, because the latter is cleared
              before the script is evaluated.
              * dom/ScriptElement.h:
      
      LayoutTests:
      
              Reviewed by Mark Rowe.
      
              - test and updated tests for <rdar://problem/6734365> eBay "Save this
                search" link does nothing the second time search results are opened
      
              * fast/dom/HTMLScriptElement/nested-execution-expected.txt: Added.
              * fast/dom/HTMLScriptElement/nested-execution.html: Added.
              * fast/dom/HTMLScriptElement/resources/nested-execution.js: Added.
              * fast/dom/HTMLScriptElement/script-reexecution.html:
              * fast/dom/HTMLScriptElement/script-set-src.html:
              * fast/dom/script-element-gc.html:
              * fast/loader/local-JavaScript-from-local.html:
              * svg/dom/SVGScriptElement/script-reexecution.svg:
              * svg/dom/SVGScriptElement/script-set-href.svg:
      
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@42665 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      72b9d35f
    • oliver@apple.com's avatar
      <rdar://problem/6127705> Excessive memory consumption on image load failure · b54df599
      oliver@apple.com authored
      Reviewed by Antti Koivisto and Darin Adler
      
      When we fail to decode an image we clear most of the image data, but not the
      input data itself, which can be backed by a CFData object that itself holds onto
      a few hundred Kbs of memory.  This patch merely ensures that this buffer gets
      cleared.
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@42664 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      b54df599
  2. 19 Apr, 2009 19 commits
    • darin@apple.com's avatar
      2009-04-19 Darin Adler <darin@apple.com> · 4b36a66d
      darin@apple.com authored
              * StringsNotToBeLocalized.txt: Updated for recent changes.
      
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@42663 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      4b36a66d
    • weinig@apple.com's avatar
      2009-04-19 Sam Weinig <sam@webkit.org> · 16ccab9f
      weinig@apple.com authored
              Reviewed by Darin Adler.
      
              Better fix for JSStringCreateWithCFString hardening.
      
              * API/JSStringRefCF.cpp:
              (JSStringCreateWithCFString):
      
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@42662 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      16ccab9f
    • darin@apple.com's avatar
      ooo · 2ff8a023
      darin@apple.com authored
      git-svn-id: svn://svn.chromium.org/blink/trunk@42661 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      2ff8a023
    • darin@apple.com's avatar
      2009-04-19 Darin Adler <darin@apple.com> · c0cf1979
      darin@apple.com authored
              Reviewed by Sam Weinig.
      
              Add hoooks so sudden termination will not cause loss of icons or local storage.
              rdar://problem/5951701
      
              * loader/icon/IconDatabase.cpp: Marked various constants static to give them
              internal linkage.
              (WebCore::IconDatabase::IconDatabase): Added initial value for m_syncTimer.
              Removed unneeded initial value for m_defaultIconRecord. Changed assertion to
              work cross-platform.
              (WebCore::IconDatabase::wakeSyncThread): Added disableSuddenTermination, so
              we won't terminate until the sync thread has done its thing.
              (WebCore::IconDatabase::scheduleOrDeferSyncTimer): Added disableSuddenTermination,
              so we won't terminate if we have an outstanding sync timer.
              (WebCore::IconDatabase::syncTimerFired): Added enableSuddenTermination, to
              balance the one in scheduleOrDeferSyncTimer.
              (WebCore::IconDatabase::syncThreadMainLoop): Added enableSuddenTermination, to
              balance the one in wakeSyncThread.
              (WebCore::IconDatabase::deleteAllPreparedStatements): Use clear() instead of set(0).
      
              * loader/icon/IconDatabase.h: Use a Timer instead of an OwnPtr<Timer>.
      
              * storage/LocalStorageArea.cpp:
              (WebCore::LocalStorageArea::scheduleFinalSync): Added disableSuddenTermination.
              (WebCore::LocalStorageArea::scheduleItemForSync): Ditto.
              (WebCore::LocalStorageArea::scheduleClear): Ditto.
              (WebCore::LocalStorageArea::syncTimerFired): Added a disableSuddenTermination if
              we schedule a performSync callback for later and an unconditional
              enableSuddenTermination to balance the ones in the schedule calls above.
              (WebCore::LocalStorageArea::sync): Factored out the work of the sync function so it
              can continue to use early return idiom.
              (WebCore::LocalStorageArea::performSync): Added a call to enableSuddenTermination.
      
              * storage/LocalStorageArea.h: Added declaration of the sync function.
      
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@42660 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      c0cf1979
    • weinig@apple.com's avatar
      2009-04-19 Sam Weinig <sam@webkit.org> · 6378da9c
      weinig@apple.com authored
              Reviewed by Dan Bernstein.
      
              Fix for <rdar://problem/5860954>
              Harden JSStringCreateWithCFString against malformed CFStringRefs.
      
              * API/JSStringRefCF.cpp:
              (JSStringCreateWithCFString):
      
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@42659 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      6378da9c
    • ddkilzer@apple.com's avatar
      Make FEATURE_DEFINES completely dynamic · be917321
      ddkilzer@apple.com authored
              Reviewed by Darin Adler.
      
              Make FEATURE_DEFINES depend on individual ENABLE_FEATURE_NAME
              variables for each feature, making it possible to remove all
              knowledge of FEATURE_DEFINES from build-webkit.
      
      JavaScriptCore:
      
              * Configurations/FeatureDefines.xcconfig: Extract a variable
              from FEATURE_DEFINES for each feature setting.
      
      WebCore:
      
              * Configurations/FeatureDefines.xcconfig: Extract a variable
              from FEATURE_DEFINES for each feature setting.
      
      WebKit/mac:
      
              * Configurations/FeatureDefines.xcconfig: Extract a variable
              from FEATURE_DEFINES for each feature setting.
      
      WebKitTools:
      
              * Scripts/build-webkit: Define individual ENABLE_FEATURE_NAME
              variables instead of the whole FEATURE_DEFINES string when
              building with Xcode.  Miscellaneous clean up:
              - Reordered/sorted command-line switch variables.
              - Reordered/sorted command-line switches in $usage.
              - Reordered/sorted command-line switches in GetOptions().
              - Defined $svgSupport to true if any --svg-feature switch is
                set in order to match "Implies SVG Support" claim.
              - Build JavaScriptGlue after JavaScriptCore again!
              - Fixed --[no-]geolocation for GTK+ port and sorted GTK+
                command-line switches.
              - Added "exit 0" statement at the end of the script.
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@42658 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      be917321
    • ggaren@apple.com's avatar
      2009-04-18 Geoffrey Garen <ggaren@apple.com> · c4682ceb
      ggaren@apple.com authored
              Reviewed by Alexey Proskuryakov.
      
              More fix for https://bugs.webkit.org/show_bug.cgi?id=21260
              Unbounded memory growth when churning elements with anonymous event handler functions
              
              Removed a little more complexity from event handler creation and destruction.
              
              Removed the jsProtectedEventListeners, jsProtectedInlineEventListeners,
              and jsInlineEventListeners maps, and all the code for managing them.
              
              ProtectedEventListeners don't exist anymore, so they're easy to nix.
              
              Inline EventListeners do still exist, but there's no reason to track
              them in a map. The map exists to enable 'removeEventListener' to associate
              a unique JSEventListener with a given JavaScript function. But the
              'removeEventListener' API only works with non-inline event listeners!
              
              * bindings/js/JSDOMGlobalObject.cpp:
              (WebCore::JSDOMGlobalObject::~JSDOMGlobalObject):
              (WebCore::JSDOMGlobalObject::findJSEventListener):
              (WebCore::JSDOMGlobalObject::findOrCreateJSEventListener):
              (WebCore::JSDOMGlobalObject::createJSInlineEventListener):
              * bindings/js/JSDOMGlobalObject.h:
              * bindings/js/JSEventListener.cpp:
              (WebCore::JSEventListener::JSEventListener):
              (WebCore::JSEventListener::clearJSFunctionInline):
              * bindings/js/JSLazyEventListener.cpp:
              (WebCore::JSLazyEventListener::~JSLazyEventListener):
              (WebCore::JSLazyEventListener::parseCode):
              * bindings/scripts/CodeGeneratorJS.pm:
      
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@42657 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      c4682ceb
    • weinig@apple.com's avatar
      2009-04-18 Sam Weinig <sam@webkit.org> · dd8e16be
      weinig@apple.com authored
              Reviewed by Dan Bernstein.
      
              Fix typo.  s/VM_MEMORY_JAVASCRIPT_JIT_REGISTER_FILE/VM_MEMORY_JAVASCRIPT_CORE/
      
              * runtime/Collector.cpp:
              (JSC::allocateBlock): Fix bozo typo.
      
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@42656 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      dd8e16be
    • mitz@apple.com's avatar
      - try to fix the Windows build · 275fd0da
      mitz@apple.com authored
              * editing/VisiblePosition.cpp:
              (WebCore::VisiblePosition::characterAfter):
      
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@42655 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      275fd0da
    • mitz@apple.com's avatar
      - revert the previous change, which was to a file that the Windows · 3547b204
      mitz@apple.com authored
                port does not even use
      
              * icu/unicode/utf16.h:
      
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@42654 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      3547b204
    • simon.fraser@apple.com's avatar
      Fix the dates in my Changelog entries · 7d38a105
      simon.fraser@apple.com authored
      git-svn-id: svn://svn.chromium.org/blink/trunk@42653 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      7d38a105
    • mitz@apple.com's avatar
      Reviewed by Geoffrey Garen. · 57ba61fc
      mitz@apple.com authored
              - try to fix the Windows build
      
              * icu/unicode/utf16.h:
      
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@42652 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      57ba61fc
    • simon.fraser@apple.com's avatar
      2009-04-17 Simon Fraser <simon.fraser@apple.com> · 8a119a1a
      simon.fraser@apple.com authored
              Reviewed by Antti Koivisto.
      
              https://bugs.webkit.org/show_bug.cgi?id=25066
      
              When a <video> element gained a RenderLayer via opacity, reflection etc., the
              layer hierarchy was not correctly updated because RenderMedia skipped a level
              when asked for its children; it skipped m_controlsShadowRoot's renderer, which
              actually has a layer.
      
              Test: fast/layers/video-layer.html
      
              * rendering/MediaControlElements.cpp:
              (WebCore::MediaControlShadowRootElement::MediaControlShadowRootElement):
              Don't manually call setParent() on the renderer. It will happen later
              as a result of addChild().
      
              * rendering/RenderMedia.cpp:
              (WebCore::RenderMedia::createControlsShadowRoot):
              Add m_controlsShadowRoot's renderer as a child.
      
              * rendering/RenderMedia.h:
              (WebCore::RenderMedia::children):
              Now maintain a RenderObjectChildList, m_children, and remove the unneeded
              removeChild() method. Make the two children() methods inline.
      
              * rendering/RenderObject.cpp:
              (WebCore::RenderObject::moveLayers):
              Assert if moveLayers() is called with an oldParent that is not the
              layer's actual parent (which would have revealed this bug).
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@42651 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      8a119a1a
    • ggaren@apple.com's avatar
      2009-04-18 Geoffrey Garen <ggaren@apple.com> · c915a7e4
      ggaren@apple.com authored
              Reviewed by Cameron Zwarich.
      
              Fixed a layout test failure, caused by my last check-in
              (fast/dom/script-element-gc.html).
      
              * bindings/js/JSDOMBinding.cpp:
              (WebCore::isObservableThroughDOM):
              * html/HTMLScriptElement.h:
              (WebCore::HTMLScriptElement::haveFiredLoadEvent): Treat script elements
              just like image elements: if a script element is loading, mark its JS
              wrapper, even if the element is not in the document.
      
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@42650 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      c915a7e4
    • weinig@apple.com's avatar
      2009-04-18 Sam Weinig <sam@webkit.org> · 475ebe22
      weinig@apple.com authored
              Reviewed by Anders Carlsson.
      
              Fix for <rdar://problem/6801555> Tag JavaScript memory on SnowLeopard
      
              * interpreter/RegisterFile.h:
              (JSC::RegisterFile::RegisterFile):
              * jit/ExecutableAllocatorFixedVMPool.cpp:
              (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
              * jit/ExecutableAllocatorPosix.cpp:
              (JSC::ExecutablePool::systemAlloc):
              * runtime/Collector.cpp:
              (JSC::allocateBlock):
      
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@42649 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      475ebe22
    • dimich@chromium.org's avatar
      2009-04-18 Jian Li <jianli@chromium.org> · efd5bd44
      dimich@chromium.org authored
              Reviewed by Dimitri Glazkov.
      
              https://bugs.webkit.org/show_bug.cgi?id=25170
              Upstream V8WorkerCustom.cpp and V8WorkerContextCustom.cpp for V8 bindings.
      
              * bindings/v8/WorkerContextExecutionProxy.cpp:
              (WebCore::WorkerContextExecutionProxy::findOrCreateEventListener):
              * bindings/v8/WorkerContextExecutionProxy.h:
              * bindings/v8/custom/V8WorkerContextCustom.cpp: Added.
              * bindings/v8/custom/V8WorkerCustom.cpp: Added.
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@42648 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      efd5bd44
    • dimich@chromium.org's avatar
      2009-04-18 Jian Li <jianli@chromium.org> · 21f88447
      dimich@chromium.org authored
              Reviewed by Dimitri Glazkov.
      
              https://bugs.webkit.org/post_bug.cg://bugs.webkit.org/show_bug.cgi?id=25167
              Change createHiddenXHRDependency and removeHiddenXHRDependency so that they can be used by other custom code in V8 bindings.
      
              * bindings/v8/V8Utilities.cpp: Renamed from WebCore/bindings/v8/V8XMLHttpRequestUtilities.cpp.
              (WebCore::createHiddenDependency):
              (WebCore::removeHiddenDependency):
              * bindings/v8/V8Utilities.h: Renamed from WebCore/bindings/v8/V8XMLHttpRequestUtilities.h.
              * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
              (WebCore::ACCESSOR_SETTER):
              (WebCore::CALLBACK_FUNC_DECL):
              * bindings/v8/custom/V8XMLHttpRequestUploadCustom.cpp:
              (WebCore::ACCESSOR_SETTER):
              (WebCore::CALLBACK_FUNC_DECL):
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@42647 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      21f88447
    • ddkilzer@apple.com's avatar
      2009-04-18 Drew Wilson <amw@apple.com> · 80b63307
      ddkilzer@apple.com authored
              <rdar://problem/6781407> VisiblePosition.characterAfter should return UChar32
      
              Reviewed by Dan Bernstein.
      
      JavaScriptCore:
      
              * wtf/unicode/icu/UnicodeIcu.h:
              (WTF::Unicode::hasLineBreakingPropertyComplexContextOrIdeographic): Added.
      
      WebCore:
      
              No test case since there is no change in behavior.
      
              * editing/VisiblePosition.cpp:
              (WebCore::VisiblePosition::characterAfter): Now handles surrogate
              pairs correctly and returns a UChar32.
              * editing/VisiblePosition.h:
              (WebCore::VisiblePosition::characterBefore): Now returns a UChar32.
              * editing/visible_units.cpp:
              (WebCore::endOfFirstWordBoundaryContext): Renamed
              firstNonComplexContextLineBreak() to this. Changed it to use the
              generic requiresContextForWordBoundary() instead of
              hasLineBreakingPropertyComplexContext().
              (WebCore::startOfLastWordBoundaryContext): Replaces
              lastNonComplexContextLineBreak(), but returns the offset of
              the character after the last character that does not require
              context for word breaking. Also changed to use
              requiresContextForWordBoundary().
              (WebCore::previousBoundary): Updated for the above changes in
              names and semantics, and changed to use
              requiresContextForWordBoundary().
              (WebCore::nextBoundary): Ditto.
              (WebCore::startWordBoundary): Ditto.
              (WebCore::endWordBoundary): Ditto.
              (WebCore::previousWordPositionBoundary): Ditto.
              (WebCore::nextWordPositionBoundary): Ditto.
              * platform/text/TextBoundaries.h:
              (WebCore::requiresContextForWordBoundary): Added.
              * platform/text/mac/TextBoundaries.mm:
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@42646 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      80b63307
    • ggaren@apple.com's avatar
      WebCore: · 81f12a8d
      ggaren@apple.com authored
      2009-04-18  Geoffrey Garen  <ggaren@apple.com>
      
              Reviewed by Cameron Zwarich.
      
              Fixed <rdar://problem/6797442> | https://bugs.webkit.org/show_bug.cgi?id=25285
              REGRESSION (r42569): Profiles cannot be selected in inspector profiler
              
              EventListeners are shared; RegisteredEventListeners are not. Therefore,
              when a node wrapper needs to invalidate the node's JS event listeners,
              it should invalidate its RegisteredEventListeners, not its EventListeners.
              Otherwise, it might invalidate an EventListener shared by another node.
      
              * dom/RegisteredEventListener.h:
              (WebCore::invalidateEventListeners): ditto
      
      LayoutTests:
      
      2009-04-18  Geoffrey Garen  <ggaren@apple.com>
      
              Reviewed by Cameron Zwarich.
              
              Test for <rdar://problem/6797442> | https://bugs.webkit.org/show_bug.cgi?id=25285
              REGRESSION (r42569): Profiles cannot be selected in inspector profiler
      
              * fast/events/event-listener-sharing-expected.txt: Added.
              * fast/events/event-listener-sharing.html: Added.
              * fast/events/resources/event-listener-sharing.js: Added.
              (gc):
              (clickHandler):
      
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@42645 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      81f12a8d
  3. 18 Apr, 2009 3 commits